Aujourd’hui, tout le monde possède un smartphone. Et rare sont les personnes qui n’y dédient pas du temps. Avec autant d’utilisateurs, il fait donc sens pour n’importe quelle société d’être présent sur ce marché. Plusieurs centaines de milliers d’applications mobiles sont téléchargées chaque jour. Mais quelle technologie utiliser ? Avec qui travailler ? Nous vous apportons ici notre point de vue.
Une application dite native est une application qui est construite spécifiquement pour une plateforme, Apple ou Android. Elle est conçue avec un langage qui lui est dédié, et des outils spécifiques. Il est impossible de la transposer sur une autre plateforme, il faudra la redévelopper entièrement. Son avantage principal est sa rapidité d’exécution, qui surpasse une application cross-plateforme qui elle doit faire un pont entre le langage de développement et les fonctionnalités natives du système.
A l’inverse, l’application cross-plateforme est développée une fois pour toutes les plateformes, elle est même portable sur Windows ou Mac OS. Grâce au travail des librairies qui permettent un tel pont, les fonctionnalités natives comme l’appareil photo ou le bluetooth sont également accessibles. Une seule base de code, donc une seule équipe de développement, un seul projet, la production est autant de fois plus rapide qu’il y a de plateforme cible et le coût divisé d’autant.
Avec la puissance des smartphones aujourd’hui, on remarque difficilement la différence de performance entre l’application native et la cross-plateforme ; vous pouvez en juger sur des applications comme Microsoft Office, Shopify, Discord ou encore Coinbase. C’est pourquoi chez Maespirit, notre choix se porte sur cette dernière.
Il existe beaucoup de solutions pour travailler sur des applications cross-plateforme. Parmis celles-ci, les plus populaires sont React Native (Facebook) et Flutter (Google). Flutter se base sur le langage Dart de Google, tandis que React Native se base sur Javascript avec JSX. D’autre part, Dart est un langage statique typé, ce qui apporte une couche de qualité et de confort non négligeable. Cette différence est rendue nulle par l’utilisation de Typescript en surcouche de React Native. Enfin, les applications Flutter pèsent plus que les applications Javascript, ayant pour conséquence de prendre plus d’espace disque sur le périphérique.
Chez Maespirit, nous choisissons donc React Native, principalement parce que nous sommes des experts React, et il n’y a donc qu’un pas pour développer en React Native. Nous pouvons même parfois porter des composants développés pour le web, vers une application mobile.
Etant l’un des frameworks open source les plus répandus, la communauté est de ce fait gigantesque. Nous pouvons échanger au sujet de problématiques avec cette dernière. Techniquement, le projet est développé en Javascript, l’un des langages les plus répandus dans le monde. Les éléments d’UI seront ensuite transformés par le framework en éléments natifs qui peuvent même utiliser le GPU ! D’un point de vue des stores, un autre énorme avantage est le fait de pouvoir envoyer de petits correctifs sans avoir à attendre leur approbation, la mise à jour se faisant automatiquement chez nos utilisateurs.
En somme, un projet plus rapide à développer, moins coûteux, qui bénéficie d’une bien plus forte évolutivité et maintenabilité.
Des exemples d’applications mobiles développées avec React Native
React Native est basé sur le langage de programmation le plus utilisé au monde : JavaScript. Il bénéficie en partie pour cela d'une communauté massive de développeurs. Grâce à cette technologie, nous pouvons accélérer le processus de développement, tout en obtenant une performance très proche d'une application native.