狠狠撸

狠狠撸Share a Scribd company logo
スキスキ滨辞苍颈肠 
Introduction to Ionic 
@konpyu 
Piece of cake, Inc
自己紹介 
? KON Yuichi (@konpyu)! 
? Software Engineer! 
? DeNAに2011年新卒入社 
→ Piece of Cake, Inc! 
? 散歩とパクチーが好き
note.mu
AngularJS製 
note.mu
Agenda 
? Ionic + Cordovaとは 
? 試してみよう、Ionic 
? 落穂ひろい
I have a dream 
私には夢がある それは、いつの日かいつもの 
web技術でNative Appを書けるという夢である
Ionic
Ionic 
Create hybrid mobile apps with the web technologies you love
Cordova + Ionic 
?Ionicはモバイルに最適化されたUIをHTML5の技術 
でコンポーネント化したUI層 
?カメラ、GPS、Push通知など、端末の機能へのアク 
セスはCordovaのAPIを通じて行う 
?Ionic, cordovaはそれぞれ単体でも動作する
Powered by Angular 
?UIのコンポーネントはDirective, Serviceでラップさ 
れている 
?なんとなく使うだけなら、深いAngularの知識は不 
要(だと思う) 
?ui-routerの使い方は知っておく必要あり
PROS/CONS 
pros 
?webの技術が使えるため開発効率が良い 
?クロスプラットフォーム 
?angularjsのライブラリが流用可能 
! 
cons 
?パフォーマンス 
?細かい制御や実装が実現出来ない 
?起動時間が長い(webviewの限界) 
?見た目でIonic製だとバレる(Ionicに限った話じゃないけど)
まだ時期尚早? 
?IOS8 - WKWebview 
?Android 4.4 - Chronium 
?Android 4.3< - Andorid標準ブラウザ 
?UI層の動作はWebviewの性能によるところが大きい 
?近年、iOS, AndroidともにWebviewに大きな改善 
?詳しくは後述
Try it!
Install 
$ npm install -g cordova ionic
Create Project 
$ ionic start MyProject 
or 
$ ionic start MyProject blank 
$ ionic start MyProject tabs 
$ ionic start MyProject sidemenu 
# if you don't need cordova 
$ ionic start MyProject ?no-cordova
or use yo 
?diegonetto/generator-ionic 
?karma, jslint, ripple などがgrunt経由で提供
ブラウザで確認 
$ cd MyProject 
$ ionic serve 
http://localhost:8100 
! 
デザイン、UIの変更は 
ブラウザで完結 
! 
Live ReloadもデフォルトでON 
(by using gulp) 
!
见た目をいじってみる
UI Components 
?AngularのDirective + Serviceで提供されている 
! 
例えば、タブは<ion-tabs>
UI Components 
popupの管理は$ionicPopup 
サービスを顿滨して行える
kitchen tink 
http://stegrams.github.io/ionic-demo/
Codepen 
http://codepen.io/ionic/public-list/ 
一旦、Kitchen thikや 
codepenを見て何が出来るかを確 
認しておくことをオススメします
スマホ特有の機能を叩く 
カメラ、コンパス、GPS、プッシュ通知、連絡帳、 
水平器…
スキスキ滨辞苍颈肠
ng-cordova 
?Cordova API integrated Angular 
?AngularのService経由でCordovaのAPIが呼べる 
?Ionic Teamが開発 
?CordovaのAPIリファレンスも合わせて参照してお 
くと良い 
?Kitchen thikで雰囲気を掴んでおくとよい(後述)
ex) Camera 
$cordovaCamera
! 
app.controller('HogeCtrl', function($scope, $cordovaCamera){! 
}); 
ServiceをDI 
ex) Camera
ex) Camera 
! 
app.controller('HogeCtrl', function($scope, $cordovaCamera){! 
var options = {! 
quality: 50,! 
destinationType: Camera.DestinationType.DATA_URL,! 
sourceType: Camera.PictureSourceType.CAMERA! 
};! 
$scope.takePhoto = function() {! 
$cordovaCamera.getPicture(option).then(function(image){! 
}! 
} ! 
}); 
カメラが起動して選ん 
だ写真が返ってくる
Android - 実機で確認 
?Android SDKをインストールする 
?$ cordova platform add android 
?USBで実機をつなげる 
?$ ionic run android 
! 
[参考] 
Cordovaを用いた開発環境を構築する 
http://www.buildinsider.net/mobile/bookhtml5hybrid/0401
Kitchen Think 
?で、結局ng-cordovaでは 
何が出来るの?? 
?kitchen tinkが用意されてます 
?ざっくり確認できます 
?実機に入れてみよう 
?ソースを眺めてみよう
Kitchen Think 
! 
AndroidをUSBでつないだ状態で 
! 
$ wget https://github.com/driftyco/ng-cordova/ 
archive/master.zip 
! 
$ tar -xvf master.zip 
$ cd ng-cordova-master 
$ sh init.sh 
$ cordova platform add android 
$ cordova run android
注意 
? Cordovaは3.4からPlugin Baseの設計 
?必要なプラグインを先にインストールしておかない 
とエラーに 
?ex) $ cordova plugin add file-transfer 
?必要なプラグインを一括でinstallするshellをおいて 
おくことをオススメします
落穂ひろい
用途について所感 
?webサービスのNativeApp向けとしては微妙. 
Cordovaとwebviewがこなれてくる必要あり 
?キャンペーンアプリのような、簡単な作りで時間も 
掛けたくないような用途には向いてると思う 
ex) ng-europeの案内アプリ 
! 
?どちらかというと、エンプラ向けな気がする
WebView 
?AndroidのWebviewは4.4ではChroniumベース 
?それ以前はAndroid標準ブラウザ orz… 
?なら、webkitベースのWebviewを同梱すればいいじゃな 
い。Chrome dev toolでデバッグもできるし。
Crosswalk 
?Intelが開発するchroniumベースのwebview 
?Android, Tizen対応. apkが40MBくらいになる 
?Use Crosswalk With Ionic Framework Android Apps 
http://blog.nraboy.com/2014/10/use-crosswalk-ionic-framework-android-apps/
スキスキ滨辞苍颈肠
まとめ 
?IonicはHybrid ApplicationのUI層として動くAngularJS 
製のUIライブラリ 
?コンポーネントはDirectice,Serviceにまとめられていて 
使いやすい. Angularを触ったことがあればほとんど違和感 
なく使えるはず。 
?むしろcordovaの扱いが鬼門になりそう。 
?Webviewの限界があることを知っておく(特にAndroid 
で顕著)
Thank you!
[参考]他のUI層ライブラリ 
?TopCoat UI - adobe製 
?OnsenUI - 国産. Angularベース 
?lungo.js 
?Ratchet

More Related Content

What's hot (20)

PPTX
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
?
PDF
Angular2
Kenichi Kanai
?
PDF
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
Shinichiro Yoshida
?
PPTX
Angular js開発事例
Shun Takeyama
?
PDF
イベント駆動AngularJS / 今から書くAngular 2.0
Okuno Kentaro
?
PDF
Angular jsの継続的なハ?ーシ?ョンアッフ?
Kazuyoshi Tsuchiya
?
PDF
开発ライフサイクルから见た础苍驳耻濒补谤闯厂
Mizuho Sakamaki
?
PPTX
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
?
PDF
STORES.jp x AngularJS
Keisuke Makino
?
PDF
クリエイティブの視点から探るAngular 2の可能性
Yasunobu Ikeda
?
PDF
Angular 4か?やってくる!? 新機能タ?イシ?ェスト
Masahiko Asai
?
PPTX
最新UIフレームワーク Onsen UI2で カッコイイWordPress連携アプリを作る方法
アシアル株式会社
?
PDF
今后の奥别产开発の未来を考えて补苍驳耻濒补谤闯厂にしました
Mitsuru Ogawa
?
PDF
Enterprise x AngularJS
Kenichi Kanai
?
PDF
础苍驳耻濒补谤闯厂で业务システム鲍滨部品化
Toshio Ehara
?
PPTX
Onsen UIが目指すもの
アシアル株式会社
?
PDF
Onsen UI 2.0とUIライブラリの未来
アシアル株式会社
?
PDF
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
?
PDF
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
?
PDF
超初心者て?も大丈夫!础苍驳耻濒补谤闯厂て?フォームヘ?ーシ?をちょっとリッチに改造してみよう
Horiguchi Seito
?
TechFeedのつくりかた - Angular2/Webpack/Ionic2/Cordova実践入門
Shumpei Shiraishi
?
Angular2
Kenichi Kanai
?
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
Shinichiro Yoshida
?
Angular js開発事例
Shun Takeyama
?
イベント駆動AngularJS / 今から書くAngular 2.0
Okuno Kentaro
?
Angular jsの継続的なハ?ーシ?ョンアッフ?
Kazuyoshi Tsuchiya
?
开発ライフサイクルから见た础苍驳耻濒补谤闯厂
Mizuho Sakamaki
?
Cordova を使って本気で商用ハイブリッドアプリ開発をやってみた
Shin Ogata
?
STORES.jp x AngularJS
Keisuke Makino
?
クリエイティブの視点から探るAngular 2の可能性
Yasunobu Ikeda
?
Angular 4か?やってくる!? 新機能タ?イシ?ェスト
Masahiko Asai
?
最新UIフレームワーク Onsen UI2で カッコイイWordPress連携アプリを作る方法
アシアル株式会社
?
今后の奥别产开発の未来を考えて补苍驳耻濒补谤闯厂にしました
Mitsuru Ogawa
?
Enterprise x AngularJS
Kenichi Kanai
?
础苍驳耻濒补谤闯厂で业务システム鲍滨部品化
Toshio Ehara
?
Onsen UIが目指すもの
アシアル株式会社
?
Onsen UI 2.0とUIライブラリの未来
アシアル株式会社
?
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
Mitsuru Ogawa
?
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
?
超初心者て?も大丈夫!础苍驳耻濒补谤闯厂て?フォームヘ?ーシ?をちょっとリッチに改造してみよう
Horiguchi Seito
?

Similar to スキスキ滨辞苍颈肠 (20)

PPTX
Capacitor
Masayuki KaToH
?
PPTX
ionic - cross platform mobile app 開発
Seunghun Lee
?
PPTX
颁辞谤诲辞惫补で础苍驳耻濒补谤闯厂アプリ开発
アシアル株式会社
?
PPTX
Angular でもっとAPIファースト?もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
?
KEY
20120413 nestakabaneworkshop
Yoichiro Sakurai
?
PDF
笔丑辞苍别骋补辫で奥别产アプリをスマホアプリ化
Takashi Okamoto
?
PDF
颁辞谤诲辞惫补の特徴と开発手法概要
アシアル株式会社
?
KEY
笔丑辞苍别骋补辫の始め方
akabana
?
PDF
kintone 連携スマホアプリの開発?配布体験
アシアル株式会社
?
PDF
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
Developers Summit
?
PDF
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
takuma mori
?
KEY
ニコニコ動画iOSアプリの UX?マネタイズ?技術の話
Kentaro Matsumae
?
PPTX
惭辞苍补肠补でつくるハイブリッドアプリ
Monaca
?
PDF
Xcode and iTC submission topics
Syo Ikeda
?
PPTX
JavaScript(AngularJS?React.js)で作る iOS?Androidアプリハンズオン
Kazuhiro Yoshimoto
?
PDF
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Sunao Komuro
?
PPTX
嗚呼、素晴らしき哉 MonoTouch
hIDDENxv
?
PPTX
9th nov2012 kof2012
Kensaku Komatsu
?
PPTX
kintone連携スマホアプリの開発?配布体験_生形 可奈子氏
kintone papers
?
PPTX
奥别产滨苍迟别苍迟蝉により拓かれる次の奥别产
Kensaku Komatsu
?
Capacitor
Masayuki KaToH
?
ionic - cross platform mobile app 開発
Seunghun Lee
?
颁辞谤诲辞惫补で础苍驳耻濒补谤闯厂アプリ开発
アシアル株式会社
?
Angular でもっとAPIファースト?もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
?
20120413 nestakabaneworkshop
Yoichiro Sakurai
?
笔丑辞苍别骋补辫で奥别产アプリをスマホアプリ化
Takashi Okamoto
?
颁辞谤诲辞惫补の特徴と开発手法概要
アシアル株式会社
?
笔丑辞苍别骋补辫の始め方
akabana
?
kintone 連携スマホアプリの開発?配布体験
アシアル株式会社
?
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
Developers Summit
?
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
takuma mori
?
ニコニコ動画iOSアプリの UX?マネタイズ?技術の話
Kentaro Matsumae
?
惭辞苍补肠补でつくるハイブリッドアプリ
Monaca
?
Xcode and iTC submission topics
Syo Ikeda
?
JavaScript(AngularJS?React.js)で作る iOS?Androidアプリハンズオン
Kazuhiro Yoshimoto
?
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Sunao Komuro
?
嗚呼、素晴らしき哉 MonoTouch
hIDDENxv
?
9th nov2012 kof2012
Kensaku Komatsu
?
kintone連携スマホアプリの開発?配布体験_生形 可奈子氏
kintone papers
?
奥别产滨苍迟别苍迟蝉により拓かれる次の奥别产
Kensaku Komatsu
?
Ad

スキスキ滨辞苍颈肠