Après nous être précédemment consacrés aux PWA (Progressive Web App) puis à Phonegap et Adobe Air, nous ne pouvions poursuivre ce tour d’horizon des outils et technologies dédiés au développement d’applications mobiles sans consacrer ce nouvel article à Ionic, le framework dont la prochaine conférence annuelle se tiendra le 23 juin prochain.
Ionic est une plateforme de développement d’applications mobiles qui tire ses origines de Cordova
C’est en 2012 que le duo constitué d’un développeur, Max Lynch et d’un designer Ben Sperry fonde la société Drifty Co (future Ionic). Le framework du même nom voit le jour en 2013. C’est une plateforme de développement mobile hybride qui s’appuie sur Apache Cordova et donc par capillarité sur feu PhoneGap.
À l’instar de ses deux prédécesseurs, Ionic pioche dans les langages de programmation du web (HTML, CSS et JavaScript) pour générer des pages qui vont ensuite être exécutées par le biais d’une WebView au sein du Wrapper de chaque application native. Pour faire simple, Ionic créé des pages web qui sont ensuite « encapsulées » dans chaque application native. Ionic ne se contente pas de fournir des outils pour développer des apps.
À l’instar de React Native, Xamarin et Flutter (et d’autres que nous aurons l’occasion de vous présenter prochainement), Ionic affirme sa position de leader des frameworks multiplateformes. Il est donc théoriquement possible de l’utiliser pour créer des applications mobiles, des applications desktop voire des PWA (Progressive Web App).
Parmi les points forts d’Ionic, citons l’existence d’une bibliothèque de plus de 100 composants UI dûment pensés pour la mise au point d’applications mobiles. Ionic offre également la possibilité d’exploiter les plug-ins offerts par Cordova. Le framework d’Apache en propose plus de 3000 sur son site. Force est de constater que n’importe quel développeur web devrait trouver son bonheur.
Ionic revendique plus de 5 millions d’utilisateurs à travers le monde dans plus de 200 pays …ce qui fait tout de même trois pays de plus que la liste officiellement reconnue par l’ONU 😉 Toujours selon Ionic, la plateforme aurait servi à la mise au point d’environ 20% de toutes les applications mobiles présentes au sein des stores. Un pourcentage sur lequel il est naturel de s’interroger mais il faut reconnaître qu’il a le mérite d’impressionner. Sur son site, la société arbore fièrement des cas clients tels qu’Electronic Arts ou Airbus Helicopters (McDonald, BMW, la BBC, Adidas sont également présentés comme clients).
Une plateforme de développement d’applications mobiles qui se revendique ouvertement à destination des développeurs web
Les deux fondateurs d’Ionic n’ont jamais caché leur ambition de créer une plateforme avant tout dédiée aux développeurs web dans la perspective de leur ouvrir les portes du développement d’applications mobiles iOS et Android.
Si Ionic est ouvertement conçu pour faciliter le travail des développeurs web, il montrera naturellement ses limites entre les mains de spécialistes du développement d’applications natives. En effet, à l’instar par exemple de Flutter ou de Cordova, Ionic ne tient pas compte des spécificités UX (User eXperience) de chaque OS. Vous pourrez donc choisir le framework JavaScript que vous préférez (React.js, Vue.js ou Angular2) mais l’application mobile que vous réaliserez avec Ionic proposera la même interface pour vos apps iOS et Android.
Bien sûr, ce parti pris technologique s’apprécie à l’aulne des objectifs de chaque projet. Du point de vue de la mutualisation et des gains associés (code source partagé, une seule compétence pour développer une app iOS et une app iOS), le choix d’Ionic mérite réflexion. À contrario, si l’on considère plutôt la performance, la personnalisation et, en substance, la qualité de l’expérience utilisateur, le développement via des langages natifs (Swift (iOS) et Kotlin (Android)) conserve une longueur d’avance.
Une histoire compliquée à cause de dépendances avec AngularJS, Cordova et PhoneGap
La première version d’Ionic avait pour particularité de s’appuyer sur AngularJS, le très populaire framework JavaScript open-source mis au point chez Google. À l’instar malheureusement de nombreux projets et technologies lancés par les équipes de Mountain view, après 10 ans de bons et loyaux services (pas tant que ça quand même…) Google a décidé de mettre fin au support de son framework JavaScript (2020).
L’équipe d’Ionic planche dès 2016 sur la mise au point d’une deuxième version de sa plateforme de développement d’app mais cette fois-ci sur base d’Angular2 ; impossible d’affirmer si cette décision repose sur une foi aveugle dans les technologies proposées par Google ou bien s’il s’agit d’une direction contrainte par des impératifs techniques. Dans tous les cas, les équipes d’Ionic ont eu la bonne idée de ne plus mettre tous leurs œufs dans le même panier puisque depuis sa version 4, Ionic s’est ouverte à d’autres frameworks JavaScript comme Vue.js et React.js
Outre la mésaventure AngularJS et la migration vers d’autres frameworks JavaScript, Ionic a également été contraint de migrer vers Ionic Appflow lorsque la disparition de PhoneGap a entrainé la fin de PhoneGap Build.
Pour déployer une application conçue avec Ionic, il est possible d’utiliser Capacitor ou Cordova. Comme nous avons pu le voir au sein de l’article consacré à ce dernier, le framework de la Fondation Apache s’est longtemps appuyé sur UIWebView, un composant déprécié par Apple dont l’usage faisait planer le risque d’être retoqué de l’App store. Par effet de bord, le même risque planait sur les développeurs Ionic qui avait fait le choix de Cordova.
Conclusion : quel futur pour Ionic ?
Il n’y aucune ambiguïté, le framework de développement d’applications mobiles Ionic a été conçu par des passionnés du web pour des développeurs web. Si vous êtes l’un d’entre eux et que vous souhaitez vous initier à la création d’applications mobiles via le framework JavaScript de votre choix, Ionic pourrait bien retenir votre attention. Mais ça devrait également être le cas de React Native, un framework open-source plus récent, conçu, éprouvé et popularisé par les équipes de Facebook (Facebook, Instagram, Tesla, UberEats, Walmart…). À l’inverse, si vous souhaitez tirer le meilleur parti d’une application mobile fondamentale pour votre business model (performance, personnalisation, UX optimisée), là encore, le développement natif devrait l’emporter. L’organisation de la deuxième Ioniconf (la première à eu lieu en 2020) témoigne à sa manière de la volonté de son organisateur de ne pas être relégué au ban des frameworks de deuxième division. Pourtant, rien n’est moins certain compte tenu de la concurrence que se livrent des frameworks hybrides toujours plus nombreux.