
ã€ãªã³ãã¬ãŒã ã¯ãŒã¯ã¯ãæãåºãè°è«ãããŠãããã¬ãŒã ã¯ãŒã¯ã®1ã€ã§ãã å
¬åŒãŠã§ããµã€ãã«ãããšãIonicã¯ãã€ããªããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãAngularJSãSASSãApache Cordovaã«åºã¥ãCSSããã³JSã³ã³ããŒãã³ãã®ã»ãããäœæããããã®SDKã§ãã
å·çæç¹ã§ãIonicãªããžããªã«ã¯15,300åã®æãããã補åãIonicã§ããDriftyãžã®æè³ã¯ãã§ã«370äžãã«ã«
éããŠããŸãã
Ionicãéçºè
ã«æäŸããè峿·±ããã®ãèŠãŠã¿ãŸãããã
ãªããã¯ã¯ãª
å®éãããã¯è¿œå æ©èœãæäŸãã
Cordova CLIã®ã©ãããŒã§ãã
- ãã³ãã¬ãŒããéžæããŠåºæ¬çãªã¢ããªã±ãŒã·ã§ã³ãäœæããïŒããšãã°ããµã€ãã¡ãã¥ãŒã®ããã¢ããªã±ãŒã·ã§ã³ãã¿ãã®ããã¢ããªã±ãŒã·ã§ã³ãGoogleãããã空ã®ã¢ããªã±ãŒã·ã§ã³ïŒã
- ãšãã¥ã¬ãŒã¿ãŒãå®ããã€ã¹ããã©ãŠã¶ãŒã§ã®ã¢ã»ã³ããªãšèµ·åã
- ãã©ãŠã¶ãšããã€ã¹ã§ã®ã©ã€ããªããŒã
- ã¢ã€ã³ã³ãã¹ãã©ãã·ã¥ç»é¢ãªã©ã®çæ
Ionic CLIã䜿çšããå¿
èŠã¯ãŸã£ãããããŸããããã¢ããªã±ãŒã·ã§ã³ã®éçºãã¯ããã«ç°¡åã«ãªããŸãã ç§ãã¡ã®æèŠã§ã¯ãæãéèŠãªæ©äŒïŒ
$ ionic resources
ãã®ã³ãã³ãã
䜿çšãããš ããœãŒã¹ãã¡ã€ã«ïŒ.psdã.pngã.aiïŒãããã¹ãŠã®ãµã€ãºã®ã¢ã€ã³ã³ãã¿ãŒã²ãããã©ãããã©ãŒã ã®ã¹ãã©ãã·ã¥ã¹ã¯ãªãŒã³
ãçæ
ã§ããŸã ã ãããè¡ãã«ã¯ãå
ã®ã¢ã€ã³ã³ã®ãµã€ãºãå°ãªããšã192Ã192pxã§ãã¹ãã©ãã·ã¥ã¹ã¯ãªãŒã³ã®å
ã®ç»åãç¹å¥ãª
PSDãã³ãã¬ãŒãã«åŸã£ãŠæºåãããå°ãªããšã2208Ã2208pxã®ãµã€ãºã§ååã§ãã
$ ionic serve --lab
iOSããã³Androidãã©ãããã©ãŒã ã®ãã©ãŠã¶ãŒã§ã¢ããªã±ãŒã·ã§ã³ãåæã«è¡šç€ºããŸã

ãã®ãªãã·ã§ã³ã¯ãã©ã€ããªããŒãããµããŒãããŠããŸãã
$ ionic upload
ãã®ã³ãã³ãã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãŠãã«ã¢ããããŒãããŠã
Ionicãã¥ãŒã§ããã«ãã¹ãããããšãã§ããŸãã ããã§ã¯ãããã«è©³çŽ°ã«æ»åšããå¿
èŠããããŸãã

Ionic Viewã¯
iOSããã³
Android çšã®ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã§ãããããã䜿çšããŠãéçºããã¢ããªã±ãŒã·ã§ã³ã顧客ããã¹ã¿ãŒãååãšå
±æã§ããŸãã ã³ãã³ãã$ ionic uploadãã¯ãã³ã³ãã¥ãŒã¿ãŒäžã®ã¢ããªã±ãŒã·ã§ã³ããµãŒããŒãšåæãããã®åŸãé»è©±ã§èµ·åã§ããŸãã
ããã¯ãããã€ã¹äžã®Ionic Viewã®å€èгã§ã çŸåšãIonic ViewãããŒã¿çã§ããããšã¯æ³šç®ã«å€ããŸãã Androidã§äœ¿çšããéçšã§ãå¥åŠãªãã°ã«ééããããšããããããŸãã-çåœã®å
åã®ãªãçœãããŒãžã§ããã®åŸã¢ããªã±ãŒã·ã§ã³ããŸã£ããèµ·åããŸããã§ããã 倿ããããã«ãIonic Viewã®çŸåšã®ããŒãžã§ã³ã§ã¯ã
ãã¹ãŠã®Cordovaãã©ã°ã€ã³ããµããŒããããŠ
ããããã§ã¯ãããŸãã ã
ã³ãã³ãã䜿çšãã
`$ ionic share ` "" , email , .
Ionic Box

IonicBox - Vagrant Ionic. (Ubuntu 14.04) Node.js, Git, Java SDK 7, Apache Ant, Android SDK Cordova, Ionic.
:
$ vagrant init drifty/ionic-android $ vagrant up
`$ ionic share ` "" , email , .
Ionic Box
IonicBox - Vagrant Ionic. (Ubuntu 14.04) Node.js, Git, Java SDK 7, Apache Ant, Android SDK Cordova, Ionic.
:
$ vagrant init drifty/ionic-android $ vagrant up
`$ ionic share ` "" , email , .
Ionic Box
IonicBox - Vagrant Ionic. (Ubuntu 14.04) Node.js, Git, Java SDK 7, Apache Ant, Android SDK Cordova, Ionic.
:
$ vagrant init drifty/ionic-android $ vagrant up
`$ ionic share ` "" , email , .
Ionic Box
IonicBox - Vagrant Ionic. (Ubuntu 14.04) Node.js, Git, Java SDK 7, Apache Ant, Android SDK Cordova, Ionic.
:
$ vagrant init drifty/ionic-android $ vagrant up
ãã®å Žåãæ§ææžã¿ã®VagrantBoxãããŠã³ããŒããããã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã¯
/vagrant
沿ã£ãå
±æãã©ã«ããŒããå©çšå¯èœã«ãªããŸãã
Ionic Boxã䜿çšãããšãAndroidã¢ããªã±ãŒã·ã§ã³ã®ã¿ãéçºã§ããããšã«æ³šæããŠãã ããã ããã©ã«ãã§ã¯ã
$ ionic run android
ãèµ·åãããšãUSBã§æ¥ç¶ãããå®éã®ããã€ã¹ã«ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ãããŸãã
ããã§ã¯ãGenymotionã䜿çšããŠä»®æ³ããã€ã¹ã§ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããæ¹æ³ãèªãããšãã§ããŸãã
ããã§ããã³ã³ãã¥ãŒã¿ãŒã«éçºããŒã«ãã»ããã¢ããããããšããå§ãããŸãããIonic Boxã¯ã¯ã€ãã¯ã¹ã¿ãŒãã«é©ãããªãã·ã§ã³ã§ãã
ãžã§ãã¢ãŒã·ã§ã³
Ionicãšã³ã·ã¹ãã ã®äžéšã§ã¯ãããŸããããæ³šæãã䟡å€ããããŸãã
Genymotionã¯ãVirtualBoxã«åºã¥ããŠæ§ç¯ãããéåžžã«ïŒïŒïŒé«éã®Androidãšãã¥ã¬ãŒã¿ãŒã§ãã 圌ã¯éåžžã«éãã®ã§ãä»ã®ãã®ã䜿çšããããšã¯ãã¯ãã§ããŸããã 詊ããŠã¿ãŠãã ããã
Genymotion + Ionicã®å Žåãã¢ããªã±ãŒã·ã§ã³ã®èµ·åã¯ãããã«å€ãããŸãã
$ ionic emulate android
emulate
$ ionic emulate android
代ããã«
$ ionic emulate android
$ ionic run android
å¿
èŠããã
$ ionic run android
ã ãã®ãšãã¥ã¬ãŒã¿ã¯ãä»®æ³ããã€ã¹ã§ã¯ãªããå®éã®ããã€ã¹ãšããŠå®çŸ©ãããŠããŸãã
Android Studioããæã¡ã®å Žåã¯ããã€ã¢ãã°ããã¯ã¹ã§å®è¡äžã®ä»®æ³ãã·ã³ã®1ã€ãéžæããããšã§ãããããçŽæ¥Genymotionã§ãããžã§ã¯ããç°¡åã«å®è¡ã§ããŸãã ããšãã°ãç°ãªãããŒãžã§ã³ã®Androidã§4ã€ã®ä»®æ³ãã·ã³ãå®è¡ããããããã§ã¢ããªã±ãŒã·ã§ã³ããã°ããéãããšãã§ããŸã-éåžžã«äŸ¿å©ã§ãã ããã«ãAndroid Studioçšã®Genymotion
ãã©ã°ã€ã³ã«ãããä»®æ³ãã·ã³ïŒãšãã¥ã¬ãŒã¿ãŒïŒã管çã§ããŸãã
ãã€ãã¹ã®ç¹-ãã¹ãŠã®ä»®æ³ãã·ã³ãåçã«é«éã«åäœããããã§ã¯ãããŸããã ããšãã°ãNexus 5ïŒAndroid 5.0ïŒã¯äœããã®çç±ã§ãã£ãããšåäœããããšãã°Galaxy S3ïŒAndroid 4.1ïŒã¯è¶
é«éã§åäœããŸãã
å人çãªäœ¿çšã®å ŽåãGenymotionã¯ç¡æã§ãã
ãªããã¯ã¯ãªãšãŒã¿ãŒ
Ionic Creator-ç»åããæšæž¬ã§ããããã«ãããã¯ã¢ããªã±ãŒã·ã§ã³ã€ã³ã¿ãŒãã§ã€ã¹ã®ãã©ãã°ã¢ã³ããããããã«ããŒã§ãã æè¿ãå
¬éãã
ãŸãã ã
ããã§å
¥åãŸãã¯ç»é²ã§ã
ãŸã ã
Creatorã«ã¯ããããã¿ã€ãã³ã°ãç°¡çŽ åããåºæ¬çãªããŒãžãã³ãã¬ãŒããçµã¿èŸŒãŸããŠããŸãã çŸåšã次ã®ãã³ãã¬ãŒãïŒ

ããŒãžã«è¿œå ã§ããèŠçŽ ã¯å€æ°ãããŸãïŒãã¿ã³ããã©ãŒã ãã»ãã¬ãŒã¿ãHTML / Markdownæ¿å
¥ãç»åãªã©ã ããŒãžã¯äºãã«ãªã³ã¯ããããšãã§ãããã¿ã³ã®ã¯ãªãã¯ã€ãã³ãã§ãã¢ããªã±ãŒã·ã§ã³ã®ä»ã®ããŒãžãžã®é·ç§»ãåæã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ããšã¯ã¹ããŒãããããšãå¯èœã§ãã ãªãã·ã§ã³ããããŸã-ãã
- ãŸãã¯ã¢ãŒãã«ãŠã£ã³ããŠããçŽæ¥ã³ããŒã§ããHTML
- ãŸãã¯ãã¡ã€ã«ãå«ãZIPã¢ãŒã«ã€ã
- Ionic CLIãä»ããã€ã³ã¹ããŒã«ãªãã·ã§ã³
åŸè
ã®å Žåãã€ã³ã¹ããŒã«ã¯æ¬¡ã®ããã«ãªããŸãã
$ ionic start [appName] creator:%your_unique_hash%
Creatorã§äœæããã¢ããªã±ãŒã·ã§ã³ãIonic Viewã§çŽæ¥ãã¹ãããæ©èœãèŠæ±ãããŸãã ãã ããAndroidããŒãžã§ã³ã§ã¯ãã®ãããªå¯èœæ§ã¯èŠã€ãããŸããã§ããã
ãã€ãã¹ã®ç¹-Creatorã¯Firefoxã§ããŸãæ©èœããŸãããChromeã§Creatorã䜿çšããæ¹ãè¯ãã§ãã
ããŒãã®
ãžã§ãã¬ãŒã¿ãŒã¯ ãIonicã¢ããªã±ãŒã·ã§ã³ã®åºæ¬èŠçŽ ãã©ã®ããã«èŠããããç°¡åã«ç¢ºèªã§ããã®ã§ãé¢çœããã§ãã
ã€ãªã³ã¢ã€ã³ã³
Ioniconsã¯ãIonicã«çµã¿èŸŒãŸããŠããã¢ã€ã³ã³ã®å·šå€§ãªã»ããã§ãã å€ãã®å Žåãã¢ã€ã³ã³ã¯è£å
ãããããŒã¯ãŒãã§ç®çã®ã¢ã€ã³ã³ããã°ããèŠã€ããããã®ã¯ã€ãã¯ãã£ã«ã¿ãŒæ€çŽ¢ãå®è£
ãããŸãã
ng-cordova
ng-cordovaã¯ãæã人æ°ã®ããCordovaããã³Phonegapãã©ã°ã€ã³ã®AngularJSã©ãããŒã§ãã60ãè¶
ãããã©ã°ã€ã³ã®ã»ããã§ãããããŒã³ãŒãã®ã¹ãã£ã³ããã¡ã€ã«ã®ããŠã³ããŒãããœãŒã·ã£ã«ãããã¯ãŒã¯ã§ã®äœæ¥ããžãªãã±ãŒã·ã§ã³ããããã¯ãŒã¯ã¹ããŒã¿ã¹ã®æ±ºå®ããã€ãããšé£æºããããã®APIãªã©ã®å€ãã®æ©èœãæäŸããŸããªã©ãªã©ã
ã€ãªã³ã·ã§ãŒã±ãŒã¹
Ionic Showcaseã¯ãIonicã®å°éå®¶ãªã©ã«ãã£ãŠäœæãããã¢ããªã±ãŒã·ã§ã³ã®ã³ã¬ã¯ã·ã§ã³ã§ãã ã¢ããªã±ãŒã·ã§ã³
ãéä¿¡ããããšã¯å¯èœã§ãã
Ionicããã°ã§ã¯ãIonic Showcaseã®æã人æ°ã®ããã¢ããªã®ã¬ãã¥ãŒãé »ç¹ã«æçš¿ããŠããŸãã å®éãããã¯ããã€ããªããã¢ããªã±ãŒã·ã§ã³ããã®ããããå æããæ¥éã«éçºãããŠãããå Žåã«ãã£ãŠã¯ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã«çµ¶å¯Ÿã«å£ããªããšãããã1ã€ã®ç¢ºèªã§ãã
AngularJS 2 + Ionic 2
確ãã«ããã¹ãŠã®AngularJSéçºè
ã¯AngularJS 2ã®ç»å ŽãåŸ
ã£ãŠããŸãããããŠçåãçããŸã-ãŸã ããŒãžã§ã³1.0ãæã£ãŠããªãIonicã¯ã©ããªããŸããïŒ
éçºè
ãä¿èšŒããããã«ãIonic 2ã§ã®äœæ¥ã¯ãã§ã«é²è¡äžã§ãããAngularJS 2ã®ãªãªãŒã¹åŸãIonicã¯å®å
šã«ãµããŒãããŸãã 詳现ã«ã€ããŠã¯ãå
¬åŒããã°ã®
ãã®æçš¿ãã芧ãã ããã
äžè¬ã«ãIonicããŒã ã¯AngularJSéçºè
ãšç·å¯ã«é£æºããŠãããAngularJS 2ã®æå³ã¯éåžžã«åæ°ã¥ããããŸãã å
é±ããã
Angular 2ã·ãªãŒãºã®æçš¿ãããã°ã«æ²èŒããå§ããŸãããæ°ãããã¬ãŒã ã¯ãŒã¯ã®ããŸããŸãªéšåãšæ©èœã«é¢ããçãã¡ã¢ã§ãã
ã€ãªã³ææ
Ionic Material-ã€ã³ã¿ãŒãã§ãŒã¹ãå
·äœåããããã®Ionicãã¬ãŒã ã¯ãŒã¯äžã®ã¢ããªã³ã äžåºŠèŠãã»ãããã-ã¯ãªãã¯å¯èœãªãã°ããã
ãã¢ããããŸãã
Ionic Materialã¯ãIonicãã¬ãŒã ã¯ãŒã¯ã®æšæºã¹ã¿ã€ã«ããã³ã¯ã©ã¹ãšç«¶åãããéçºè
ã«ãããšãGoogleã®ã¬ã€ãã©ã€ã³ã«å³å¯ã«åŸã£ãŠäœæãããŠããŸãã
èå³ã®ããæ©èœ
åå²ãã¥ãŒ

åå²ãã¥ãŒã¯ãç¹å®ã®ç»é¢å¹
ã«éãããšãã«ãéããŠããªããµã€ãã¡ãã¥ãŒã§ããŒãžã衚瀺ããæ©èœã§ãã
ãã®æ©èœã远å ããã«ã¯ããµã€ãã¡ãã¥ãŒã¿ã°ã«
expose-aside-when
Whenãã£ã¬ã¯ãã£ããèšè¿°ããã ãã§ãã
<ion-side-menus> <ion-side-menu-content> </ion-side-menu-content> <ion-side-menu expose-aside-when="large"> </ion-side-menu> </ion-side-menus>
ä»»æã®å¹
ãæå®ããã®ãç°¡åã§ãïŒ
<ion-side-menu expose-aside-when="(min-width:750px) and (max-width:1200px)"
æšªææ©éã®çµ±å
Crosswalkã¯ãAndroidã®å€ãããŒãžã§ã³ïŒ4.0-4.3ïŒã§Chrome WebViewã䜿çšã§ãããªãŒãã³ãœãŒã¹è£œåã§ãããChrome WebViewã¯å¿
èŠãªããŒãžã§ã³ã瀺ããŸãã
Crosswalkã®ååšã«ãããHTML / CSSã®ã¬ã³ããªã³ã°é床ãæå€§10åã«åäžããJavascriptã®ããã©ãŒãã³ã¹ãåäžãããšåæã«ãã¢ããªã±ãŒã·ã§ã³ã®ãµã€ãºã10ã15 MBå¢å ããŸãã
ãŸããéçºè
ã¯Chrome DevToolsã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ããããã°ããæ©äŒããããŸãã
次ã®ã³ãã³ãã䜿çšããŠãIonicã¢ããªã±ãŒã·ã§ã³ã«Crosswalkã远å ã§ããŸãã
$ ionic browser add crosswalk $ ionic run android
ç¹å®ã®ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããããšãã§ããŸãã
$ ionic browser add crosswalk@11.40.277.7
ãã«ããŠãªãã¬ãã·ã¥

Ionicã䜿çšããã¹ã¯ã€ãã§ã³ã³ãã³ããæŽæ°ããæ©èœã远å ãããšã7ã10åããããããŸããã å®éã®ã¢ããªã±ãŒã·ã§ã³ã®äŸã次ã«ç€ºããŸã-ã¿ã¹ã¯ãªã¹ãã«ãã«ããŒãªãã¬ãã·ã¥æ©èœã远å ããå¿
èŠããããŸãã ãŸããæ¢åã®ã³ãŒãã«
<ion-refresher>
ã¿ã°ã远å ããŠãHTMLã倿Žããå¿
èŠããããŸãã
<ion-content class="has-header"> <ion-refresher pulling-text="Pull to refresh..." on-refresh="refresh()"></ion-refresher> <ion-list class="todos" show-delete="false" can-swipe="true"> ... ... </ion-list> </ion-content>
ã³ãŒããããäžã«ã¹ã¯ã€ããããšãçŸåšã®ã³ã³ãããŒã©ãŒã®refreshïŒïŒé¢æ°ãåŒã³åºãããããšãçè§£ããã®ã¯ç°¡åã§ãã æžããŸãããïŒ
$scope.refresh = function() { Task.get().then(function (tasks) { $scope.tasks = tasks; }) .finally(function() {
ãã¹ãŠå®äºããŸããã
ããã§ã³ãŒãã詊ããŠã¿ãããšãã§ã
ãŸã ã
æåŸã«ãIonicã§èªãã§èŠãããšãã§ãããã®
Ionicã§æãæŽ»çºã§è峿·±ãããã°ã®1ã€ïŒ