Le React native, la panacée ?

Auteur : Membres de la B-Com Devices Mobiles Business Consulting

 

Depuis sa naissance en 2015 lors d’un hackaton organisé par Facebook, le framework React native est sur toutes les lèvres dans le monde du mobile ; chaque chef de projet cherchant à mettre en place la refonte technique de son application en React native. Alors le React native est-ce vraiment la panacée ?

Voici un retour d’expérience sur une mission au cours de laquelle Beijaflore a accompagné un ses clients, un grand compte bancaire, sur la refonte d’une application mobile immobilière en React native.

 

Le React native, qu’est-ce que c’est ?

React native est un framework, en français un cadre de travail, permettant aux développeurs de ne pas repartir de zéro à chacun de leur projet mais de s’appuyer sur une architecture prédéfinie comme point de départ de leurs développements.

Habituellement, lorsqu’on développe une application, on utilise des langages de programmation adaptés aux OS ciblés : Swift pour iOS ou Java, Kotlin pour Android pour n’en citer que quelques-uns. Le React native permet de développer en un seul langage sans (trop !) se soucier du système d’exploitation et de proposer avec un seul développement une application opérationnelle pour tous les smartphones.

 

Ses avantages sont nombreux

  • Gains de temps / coûts de développement

Le premier point fort lors du passage d’une application en React native sera bien sûr l’optimisation des développements. En effet, plus besoin d’avoir recours à un développeur Swift ou Objective C pour iOS et un développeur Java ou Kotlin pour Android : avec un code commun iOS et Android, les temps de développement sur les lots sont plus courts (compter un gain d’environ 20 à 30% sur cette expérience). L’équipe peut donc être réduite et le temps passé sur le développement et la recette sera moindre.

 

  • Facilité de livraison des applications

Ensuite, le React native facilite la livraison de nouvelles versions : dans le cas de corrections (on exclut ici la livraison de nouvelles fonctionnalités) : au lieu de passer par un serveur privé et d’y déposer l’app et d’avoir à re-signer le code pour iOS, les développeurs profitent d’un système « code push » qui permet une livraison automatique sans avoir à republier. D’un point de vue MOA, lorsqu’on travaille avec un métier pour lequel les demandes de correction doivent être prises très rapidement en compte car le planning est serré, ce fonctionnement est crucial.

 

  • Fluidité d’interface

Enfin, l’architecture des applications React native permet une fluidité d’interface forte, permise notamment par un système de cache, et ce, dès la première ouverture et pas seulement dans le cas de perte temporaire d’Internet.

 

Mais les risques doivent être correctement maîtrisés  

  • Conduite du changement

Une évidence importante à rappeler ! Le produit étant relativement jeune, il faut déjà s’assurer que les équipes sont prêtes à entamer un projet en React native ou, si ce n’est pas le cas, prendre en compte une montée en compétence de deux à trois semaines.

De plus, les montées de version régulières de React native nécessitent impérativement un suivi des évolutions et une adaptation constante.

 

  • Volatilité des objets mis à disposition

Enfin, pour construire son application, on doit piocher dans des librairies, développées sur un principe OpenSource collaboratif. Malheureusement, l’absence de processus de validation nous expose à des évolutions de librairies sans possibilité de les anticiper. Cette instabilité dans le comportement rend imprévisible l’utilisation de ces outils. Là repose toute la complexité du React native !

En effet, pour exemple, lors de notre mission de refonte, nous avions sélectionné une librairie permettant de référencer les favoris de l’utilisateur mais celle-ci a évolué pendant l’intégration et ne correspondait plus aux attentes initiales.

 

  • Intégration React native ready ?

Si l’application dialogue avec des composants, il faut s’assurer que ceux-ci soient disponibles eux aussi en React native, ou adaptables à ce framework. Pour prendre un exemple concret, sur l’application étudiée (application « campus connecté »), le client souhaite que les utilisateurs puissent accéder au plan des bâtiments, plans très détaillés affichant les structures extérieures et intérieures de ceux-ci ; le niveau de détail allant jusqu’aux assises des bureaux ! Aussi, l’application permet aux utilisateurs d’utiliser leur Bluetooth et d’afficher leur position sur ces mêmes plans grâce à des balises de géolocalisation.

Pendant la refonte en React native, l’intégration des plans et de la géolocalisation s’est avérée être un calvaire ; les SDK (kit de développement logiciel) des applications n’étant pas encore à niveau. Même scénario pour l’intégration de push notifications, qui a nécessité le développement d’un outil maison par les développeurs pour adapter BATCH (plateforme de gestion des push notifications) au framework.

 

Une option de développement à préparer en amont

La refonte d’une application ou la création d’une application en React native peut donc être particulièrement intéressante en termes de gains de développement futur mais les travaux en amont pour s’assurer que l’ensemble des outils soient compatibles sont primordiaux.

Beijaflore Business Consulting accompagne ses clients dans la mise en place de cette solution framework en les aidant à identifier en amont les différents chantiers nécessaires à la bonne utilisation du React native et en les conseillant sur les points clés organisationnels liés à cette solution.

 

Sources :

https://facebook.github.io/react-native/

https://www.1min30.com/dictionnaire-du-web/framework