{"id":10689,"date":"2016-04-23T19:13:41","date_gmt":"2016-04-23T17:13:41","guid":{"rendered":"http:\/\/flaven.fr\/?p=10689"},"modified":"2016-04-27T11:57:34","modified_gmt":"2016-04-27T09:57:34","slug":"ionicframework-angular-cordova-decouvrir-ionicframework-pour-creer-une-application-ios","status":"publish","type":"post","link":"https:\/\/flaven.fr\/2016\/04\/ionicframework-angular-cordova-decouvrir-ionicframework-pour-creer-une-application-ios\/","title":{"rendered":"Ionicframework, Angular, Cordova &#8211; D\u00e9couvrir ionicframework pour cr\u00e9er une application iOS"},"content":{"rendered":"<p>Si vous cr\u00e9ez des applications mobiles sous Android, iOS, Windows, vous avez n\u00e9cessairement d\u00fb entendre parler du projet Cordova connu aussi sous le nom de PhoneGap. L&#8217;objectif affich\u00e9 de ionicframework est de r\u00e9sorber en un framework la difficult\u00e9 \u00e0 developer pour chaque plate-forme sp\u00e9cifique. En un mot, adopter c&#8217;est d\u00e9j\u00e0 s&#8217;imposer !<br \/>\nVoil\u00e0 donc ce que propose ni plus ni moins Ionicframework \u00e0 l&#8217;aide d&#8217;Angular et de Cordova adresser grosso modo toutes les plates-formes et donc tous les usages pour cr\u00e9er des applications dans les meilleures conditions possibles de d\u00e9veloppement. Ce ph\u00e9nom\u00e8ne est \u00e0 suivre comme en son temps on devait suivre pour PHP l&#8217;\u00e9mergence des frameworks. Voil\u00e0 pour le contexte.<\/p>\n<p>Plus concr\u00e8tement, au regard de l&#8217;h\u00e9t\u00e9rog\u00e9n\u00e9it\u00e9 des environnement mobiles, c&#8217;est le r\u00eave du &#8220;product owner&#8221;, &#8220;scrum master&#8221; et de l&#8217;\u00e9quipe d\u00e9veloppement que de g\u00e9rer un m\u00eame &#8220;socle&#8221; de code pour adresser toutes les environnements donc toutes les audiences et les usages.<\/p>\n<p>Pour m\u00e9moire, un petit article de ce blog sur <a href=\"https:\/\/flaven.fr\/2012\/09\/phonegap-html5-javascript-jquery-mobile-introduction-au-framework-phonegap\/\" >PhoneGap, HTML5, JavaScript, jQuery Mobile \u2013 Introduction au framework PhoneGap<\/a><\/p>\n<h4>La magie Ionic<\/h4>\n<p>Avant de plonger dans le concret, histoire de savoir qui fait quoi et de comprendre le plus simplement possible le fonctionnement technique.<\/p>\n<ol>\n<\/ol>\n<li>Ionicframework: P\u00e9tri au HTML et \u00e0 la CSS. C&#8217;est qui s&#8217;affiche sur les \u00e9crans de l&#8217; app. Un conseil, laisser Ionic choisir lui m\u00eame la version d&#8217;Angular.<\/li>\n<li>Angular : Toute l&#8217;intelligence de l&#8217;app est en Javascript et con\u00e7u \u00e0 l&#8217;aide d&#8217;angular.<\/li>\n<li>Cordova : C&#8217;est la couche syst\u00e8me qui assure la liaison avec les syst\u00e8mes natifs (iOS, Android, Windows)<\/li>\n<p>Le b\u00e9n\u00e9fice attendu en terme de d\u00e9veloppement et donc en terme financier. C&#8217;est un bon d\u00e9veloppeur qui connait la javascript ou \u00e9ventuellement un des environnements natifs peut se d\u00e9brouiller pour adresser les 3 environnements du march\u00e9 sur la m\u00eame technologie. Ce qui peut faire un gain substantiel de temps et d&#8217;argent en terme de d\u00e9veloppement et de satisfaction client.<\/p>\n<p>La toute premi\u00e8re chose \u00e0 faire est d&#8217;installer node.js si ce n&#8217;est d\u00e9j\u00e0 fait sans oublier de mettre \u00e0 jour le runtime de Node.<\/p>\n<p>Ensuite vous pouvez installer ionic et gulp comme ce qui indiqu\u00e9 sur la page d&#8217;installation de <a href=\"http:\/\/ionicframework.com\/\" target=\"_blank\">ionicframework.com<\/a><\/p>\n<pre lang=\"bash\">npm install -g cordova ionic gulp<\/pre>\n<p>Pour information, Gulp est un \u00e9quivalent de Grunt. C&#8217;est un compiler utilis\u00e9 par Ionic pour faire du sass.<\/p>\n<p>Vous lancez ensuite la cr\u00e9ation de votre application.La notre se nomme <b>myAppMadeWithIonic<\/b><\/p>\n<pre lang=\"bash\">ionic start myAppMadeWithIonic tabs<\/pre>\n<p>Vous vous rendez dans le r\u00e9pertoire de votre application <b>myAppMadeWithIonic<\/b><\/p>\n<pre lang=\"bash\">cd myAppMadeWithIonic\/<\/pre>\n<p>Pour \u00e9viter des probl\u00e8mes de droit, vous aurez sans doute \u00e0 passer les commandes suivantes au besoin :<\/p>\n<pre lang=\"bash\">sudo chown yourusername \/Users\/yourusername\/.config\/configstore\/update-notifier-cordova.json<\/pre>\n<pre lang=\"bash\">sudo chown yourusername \/Users\/yourusername\/.config\/configstore\/bower-github.json<\/pre>\n<pre lang=\"bash\">sudo chown yourusername \/Users\/yourusername\/path\/myAppMadeWithIonic\/www\/css\/ionic.app.min.css<\/pre>\n<p>Pour \u00e9viter l&#8217;absence ou l&#8217;obsolescence, vous aurez sans doute \u00e0 passer les commandes suivantes au besoin :<\/p>\n<pre lang=\"bash\">sudo npm update<\/pre>\n<pre lang=\"bash\">sudo npm install<\/pre>\n<pre lang=\"bash\">sudo ionic setup sass<\/pre>\n<p><b>Voil\u00e0 la s\u00e9quence de commandes pour cr\u00e9er votre application une fois dans le bon r\u00e9pertoire<\/b><\/p>\n<pre lang=\"bash\">ionic platform add ios<\/pre>\n<pre lang=\"bash\">ionic build ios<\/pre>\n<pre lang=\"bash\">ionic emulate ios<\/pre>\n<p><b>Voil\u00e0 la s\u00e9quence de commandes pour modifier la css de votre application, toujours dans le bon r\u00e9pertoire<\/b><\/p>\n<pre lang=\"bash\">gulp sass<\/pre>\n<pre lang=\"bash\">ionic build ios<\/pre>\n<pre lang=\"bash\">ionic emulate ios<\/pre>\n<p>On va mettre en rouge, l&#8217;element de css nomm\u00e9<br \/>\n<code>bar-stable<\/code> dans le fichier tabs.html<\/p>\n<p>On ajoute cette ligne dans ionic.app.scss et on &#8220;rebuild&#8221;, en gros on refait pour chaque modification CSS, on refait la compilation. <\/p>\n<pre lang=\"css\">$stable:#ff0000;<\/pre>\n<p>Puis on relance la compilation avec la transformation en sass avec l&#8217;aide de gulp. <\/p>\n<pre lang=\"bash\">gulp sass<\/pre>\n<pre lang=\"bash\">ionic build ios<\/pre>\n<pre lang=\"bash\">ionic emulate ios<\/pre>\n<pre lang=\"html\" escaped=\"true\">\r\n\t    &lt;!-- &lt;link href=\"lib\/ionic\/css\/ionic.css\" rel=\"stylesheet\"&gt;\r\n\t    &lt;link href=\"css\/style.css\" rel=\"stylesheet\"&gt; --&gt;\r\n\t\t&lt;link href=\"css\/ionic.app.css\" rel=\"stylesheet\"&gt;\r\n\t    &lt;!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above --&gt;\r\n<\/pre>\n<p><b>La commande pour cr\u00e9er l&#8217;application<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2016\/04\/making_app_with_ionic_angular_cordova_3.jpg\" width=\"640\" height=\"480\" alt=\"Ionicframework, Angular, Cordova,  - D\u00e9couvrir ionicframework pour cr\u00e9er une application iOS\"><\/p>\n<p><b>Le premier \u00e9cran de notre application dans l&#8217;\u00e9mulateur \u00e0 savoir le fichier index.html<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2016\/04\/making_app_with_ionic_angular_cordova_8.jpg\" width=\"640\" height=\"480\" alt=\"Ionicframework, Angular, Cordova,  - D\u00e9couvrir ionicframework pour cr\u00e9er une application iOS\"><\/p>\n<p><b>La commande <code>gulp sass<\/code> pour d\u00e9foncer la feuille de style<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2016\/04\/making_app_with_ionic_angular_cordova_9.jpg\" width=\"640\" height=\"480\" alt=\"Ionicframework, Angular, Cordova,  - D\u00e9couvrir ionicframework pour cr\u00e9er une application iOS\"><\/p>\n<p><b>Notre \u00e9l\u00e9ment en rouge <code>$stable:#ff0000;<\/code><\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2016\/04\/making_app_with_ionic_angular_cordova_10.jpg\" width=\"640\" height=\"480\" alt=\"Ionicframework, Angular, Cordova,  - D\u00e9couvrir ionicframework pour cr\u00e9er une application iOS\"><\/p>\n<p><b>Un slide s\u00e9rieux sur l&#8217;architecture de Ionic<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2016\/04\/making_app_with_ionic_angular_cordova_schema.jpg\" width=\"640\" height=\"480\" alt=\"Ionicframework, Angular, Cordova,  - D\u00e9couvrir ionicframework pour cr\u00e9er une application iOS\"><\/p>\n<p><i>Source : Case study: integrating azure with google app engine avec le slide 11 qui explique la fonctionnement Ionic\/Cordova. <a href=\"http:\/\/fr.slideshare.net\/MiguelScotter\/case-study-integrating-azure-with-google-app-engine\" target=\"_blank\">http:\/\/fr.slideshare.net\/MiguelScotter\/case-study-integrating-azure-with-google-app-engine<\/a><\/i><\/p>\n<p>Des commandes qui vous seront sans doute utiles.<\/p>\n<pre lang=\"bash\">brew update<\/pre>\n<pre lang=\"bash\">brew upgrade node<\/pre>\n<pre lang=\"bash\">npm install -g npm<\/pre>\n<pre lang=\"bash\">npm install -g ios-sim<\/pre>\n<pre lang=\"bash\">npm install -g ios-deploy<\/pre>\n<h2>En savoir plus<\/h2>\n<ul>\n<li>Ionic Crash Course<br \/><a href=\"https:\/\/www.youtube.com\/watch?v=C-UwOWB9Io4\" target=\"_blank\">https:\/\/www.youtube.com\/watch?v=C-UwOWB9Io4<\/a><\/li>\n<li>Ionic Framework<br \/><a href=\"http:\/\/ionicframework.com\/\" target=\"_blank\">http:\/\/ionicframework.com\/<\/a><\/li>\n<li>Angular<br \/><a href=\"https:\/\/angularjs.org\/\" target=\"_blank\">https:\/\/angularjs.org\/<\/a><\/li>\n<li>Bower<br \/><a href=\"http:\/\/bower.io\/\" target=\"_blank\">http:\/\/bower.io\/<\/a><\/li>\n<li>Gulp<br \/><a href=\"http:\/\/gulpjs.com\/\" target=\"_blank\">http:\/\/gulpjs.com\/<\/a><\/li>\n<li>Yeoman<br \/><a href=\"http:\/\/yeoman.io\/\" target=\"_blank\">http:\/\/yeoman.io\/<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Si vous cr\u00e9ez des applications mobiles sous Android, iOS, Windows, vous avez n\u00e9cessairement d\u00fb entendre parler du projet Cordova connu aussi sous le nom de&hellip; <\/p>\n<p class=\"text-center\"><a href=\"https:\/\/flaven.fr\/2016\/04\/ionicframework-angular-cordova-decouvrir-ionicframework-pour-creer-une-application-ios\/\" class=\"more-link\">Continue reading &rarr; <span class=\"screen-reader-text\">Ionicframework, Angular, Cordova &#8211; D\u00e9couvrir ionicframework pour cr\u00e9er une application iOS<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":10696,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bf_ai_meta_description":"Ionicframework combine Angular et Cordova pour simplifier le d\u00e9veloppement multiplateforme. Cr\u00e9ez des applications iOS, Android et Windows.","bf_ai_og_title":"Ionicframework pour iOS","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3440,3442,3444,3448,3435],"tags":[2238,163,2331,2329,2332,2330,518,571,1871,2333],"class_list":["post-10689","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-infrastructure","category-mobile-devices","category-programming-databases","category-tools-productivity","category-web-development","tag-android","tag-application","tag-bower","tag-cordova","tag-gulp","tag-ionicframework","tag-ios","tag-node","tag-smartphone","tag-yeoman"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Vuhl-2Mp","jetpack_featured_media_url":"https:\/\/flaven.fr\/wp-content\/uploads\/2016\/04\/making_app_with_ionic_angular_cordova_b.jpg","_links":{"self":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/10689","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/comments?post=10689"}],"version-history":[{"count":3,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/10689\/revisions"}],"predecessor-version":[{"id":10700,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/10689\/revisions\/10700"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media\/10696"}],"wp:attachment":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media?parent=10689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/categories?post=10689"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/tags?post=10689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}