Les deux systèmes d’exploitation mobiles les plus répandus aujourd’hui sont Android et iOS. Le Play Store et l’Apple Store regorgent par conséquent d’une multitude d’applications allant des plus utiles aux plus insolites.
Les ressources humaines et parfois financières amènent les équipes de développement à opter pour la technologie hybride. Elle permet de développer l’application une fois, pour qu’elle soit compatible avec plusieurs plateformes. La variété de Frameworks ne facilite toutefois pas forcément le choix des outils adéquats.
Ça tombe bien, nous avons choisi de vous faire un comparatif de ces technologies dévolues à l’édition d’applications cross-plateforme.
Cordova, l’Apache du développement hybride
Le Framework Apache Cordova
Il ne s’agit ni d’un bombardier, ni d’un hélicoptère, mais d’un Framework qui vous donnera gain de cause dans vos projets de développement d’applications mobiles. Développé par la fondation Apache, Cordova est un Framework open source qui permet de créer des applications mobiles. Apache Cordova permet d’exploiter les standards Web que sont JavaScript, HTML et CSS.
Le fonctionnement d’Apache Cordova
Les applications cross-plateformes développées avec Apache Cordova s’exécutent dans des wrappers définis pour chacune des plateformes concernées. Elles se basent sur des API qui donnent accès aux données, à l’état du réseau ainsi qu’aux capteurs des appareils. Apache Cordova agit comme une surcouche qui évite ainsi aux éditeurs d’applications de redévelopper les fonctionnalités natives du téléphone. Il permet en effet à l’application développée de les utiliser aisément. La géolocalisation, la caméra, l’accéléromètre, le répertoire, la barre de statut, la vibration, les fichiers et bien d’autres sont autant de fonctionnalités natives que vous trouverez sur un téléphone. En pratique, Apache Cordova génère une fenêtre qui s’exécute dans le navigateur web : la WebView. Cette dernière va se charger de faire l’interprétation de ses scripts. C’est d’ailleurs la WebView qui appelle les fonctionnalités natives du téléphone à travers les API.
Pourquoi choisir Cordova pour le développement hybride ?
La communauté d’utilisateurs du Framework Apache Cordova est en constante progression. Vous aurez donc plus aisément des solutions pour déboguer vos applications au cours du développement. Les éditeurs qui n’ont pas la maîtrise des langages de développement mobile optent par ailleurs pour cette solution pour l’édition de leurs applications cross-plateforme. Optez pour cette solution si vous voulez créer des applications ayant une petite ou une taille moyenne ou nécessitant peu de ressources, pour garder de la fluidité.
Ionic, pour un développement CLInique
Ionic, un Framework élaboré avec Angular et Apache Cordova
Conçu par Drifty, Ionic est également un Framework open source. Il peut être utilisé pour la création de puissantes applications hybrides. Cordova et Ionic ne sont pas foncièrement des concurrents. Ionic est même élaboré avec Apache Cordova ainsi qu’Angular. La conception d’application cross-plateforme avec Ionic se fait avec les mêmes standards Web qu’avec Cordova.
Un Framework complet
Ionic possède autant la panoplie d’outils front-end que celle back-end. Il s’appuie sur le Framework AngularJs pour le développement du volet application web. Comme de nombreux autres Frameworks, Ionic marche sur un modèle MVC (Modèle de Vue/Contrôleur). En pratique, l’utilisation de Ionic sera relativement aisée pour vous si vous avez déjà fait du développement Web. Encore plus si vous connaissez Angular. Avec des components (composants) disponibles dans sa documentation, il suffit de copier le bout de code correspondant et de l’implémenter dans votre application. Ces composants s’adaptent d’ailleurs automatiquement à la plateforme concernée (iOS ou Android). Le Framework Ionic marche en outre avec Node et son packet manager « NPM ». Vous avez donc accès à un nombre impressionnant de plug-ins existants ou créés par les communautés. À défaut de les doper au café, vous pouvez en outre augmenter la productivité des membres votre équipe de développement avec Ionic Studio.
Ionic ou pas Ionic, telle est la question !
Le Framework Ionic est assez performant. Sa documentation en ligne est très détaillée et regorge de nombreuses ressources déjà disponibles. Il suffit de faire un copier-coller pour les rendre fonctionnelles. La compilation des applications est aisée avec l’interface en ligne de commande du terminal (CLI). L’utilisation des fonctions natives du téléphone, grâce à Node et Cordova, se résume par ailleurs à des saisies de commandes dans le terminal. La documentation détaillée sera une fois encore votre « précieux ». Si vous faites partie de cette race d’éditeurs à qui le code donne de l’urticaire, l’équipe de Ionic a également pensé à un mode graphique : Ionic Creator. D’un simple glisser-déposer, vous aurez votre application cross-plateforme.
Les utilisateurs aguerris pourront toutefois se rendre compte que votre application développée avec Ionic est davantage basée sur le web que le mobile. Il est par ailleurs parfois compliqué de satisfaire toutes les requêtes spécifiques de clients avec Ionic. Les développeurs tiers fournissent en outre la majorité de leurs SDK pour iOS et Android.
Utilisez enfin Ionic pour l’édition de vos applications quand vous avez une équipe de développeurs qui connaissent le web ou Angular, ou quand l’appli fait essentiellement de l’affichage.
React Native, le Framework qui milite pour le natif
React Native, le Framework de Facebook
Créé par le géant américain Facebook, React Native utilise les langages ReactJS et JavaScript. Si les deux Frameworks cross-plateforme présentés précédemment utilisent des composants web, React Native lui utilise plutôt des composants mobiles natifs. La première version du Framework open source a été publiée en 2015. Le projet expérimental, sorti d’un Hackathon, devient donc véritablement un Framework stable pour le développement d’applications iOS et Android.
React Native pour des applications natives
Les approches pour le développement d’application multiplateformes sont nombreuses. Dans le cas de React Native, il faut utiliser JSX pour écrire des composants pouvant être compilés en composants natifs. Ainsi lorsqu’une vue est définie sur React Native, l’application Android affiche une android.view.view tandis que celle d’iOS en fait de même pour une UIView ; des composants natifs. Il en est de même pour tous les éléments graphiques tels que les boutons, listes ou textes. React Native possède par ailleurs une CLI, et un livereload pour le test instantané des applications, comme Ionic.
Pour le développement hybride, React Native a le vent en poupe
L’accroissement de la renommée du Framework React Native a été fulgurant. Elle est essentiellement due à la grande communauté qui s’est construite autour du projet. React est en outre open source et gratuit. Le joujou de Facebook est bien évidemment porté par ce dernier. Ayez pour preuve l’application mobile Facebook, qui est développée avec React Native.
Certains problèmes de réalisations peuvent toutefois parfois obliger les développeurs à trouver des solutions de contournement avec React Native. Il faut donc avoir quelques compétences en natif pour réussir certaines prouesses de développement avec React. Si vous voulez développer une application mobile qui fait fortement appel aux fonctionnalités natives, optez plutôt pour le Framework de Facebook.
Flutter, le Framework qui fait déjà « battre » les cœurs
Flutter, un nouveau venu aux dents longues
La première version du projet open source développée par Google date de mai 2017. En décembre 2018, sort sa version stable. Le langage de programmation de Flutter est Dart. Lancé depuis 2011, il ne pique pas, mais reste très efficace. Le but principal de Flutter est de proposer avec ses applications, une expérience utilisateur comparable à celle d’une application native.
Flutter et Dart, pour une réussite « daredare »
L’ambition du projet de Google est de mettre à disposition des éditeurs, des Framework permettant aux développeurs d’applications de développer des applis compatibles avec toutes les plateformes. En lançant Flutter, le géant américain a profité pour mettre en lumière son langage de programmation Dart. Tout un art, non ?!
Très similaire à JavaScript et à Java, il ne devrait toutefois pas donner des sueurs froides aux développeurs. Pour créer Flutter, les ingénieurs de Google se sont inspirés de l’industrie du jeu vidéo, qui a la même problématique qu’est l’adaptation des jeux sur plusieurs plateformes. Les jeux vidéo multiplateformes ne sont en effet pas développés pour chaque console de jeu, mais un moteur graphique rend le code compatible sur chaque plateforme. Le même principe est utilisé pour l’affichage de petits composants servant à construire une interface d’application mobile sur Flutter : les widgets.
Flutter permet par ailleurs le rechargement automatique du code. Très pratique, car simplifie le débogage. La fonctionnalité Hot Reload de Dart réduit quant à elle, le temps de compilation et rend le build des applications plus rapides.
Flutter, un Framework qui donne déjà des ailes à ses utilisateurs ?
Avec Flutter, l’interaction avec les composants du système d’exploitation du téléphone se fait sans passerelle. Le moteur Skia permet par ailleurs d’apporter une solution à de nombreux problèmes. Les interactions avec le matériel de l’appareil sont davantage minimisées. Flutter n’utilise toutefois pas que Dart, elle adjoint en complément le langage C++, ceci pour une des performances comparables à celle des applications natives.
L’immaturité du Framework reste néanmoins son principal talon d’Achille. Plusieurs services ne le prennent pas encore en charge et de nombreux outils restent encore en cours de développement. Malgré sa jeunesse, le Framework gagne pourtant en popularité. L’application mobile d’Alibaba, Xianyu est d’ailleurs développée avec Flutter. 2020 sera peut-être l’année du Framework de Google avec le développement hybride. Il a déjà montré ses preuves pour les applications simples, pourquoi pas les applications mobiles hybrides ?
Choisir la bonne technologie hybride pour votre projet dépend de beaucoup de facteurs. Si besoin, écrivez-nous ou appelez nous au 04 26 70 03 51 , un expert Kreactive vous conseillera dans votre choix.