Comment accélérer l'évolution de votre application mobile avec React Native?

React Native

Votre application mobile ne convient plus à vos besoins et à ceux de vos utilisateurs et vous souhaitez mettre en place un projet de développement pour la rendre plus performante et améliorer l’expérience utilisateur ? Vous hésitez entre une refonte totale ou partielle ? Ou encore sur la technologie à utiliser ? Entre application native, application multi-plateformes et progressive web-app (PWA), il est parfois difficile de s’y retrouver. Dans cet article, nous vous donnons les clefs pour faire évoluer votre application mobile et accélérer son développement.

Contexte d’évolution de votre application mobile

Création

Le démarrage d’une application est un moment clef de son cycle de vie. Vous allez devoir définir l’architecture de votre projet que vous garderez probablement durant toute la durée de vie de votre application puisque c’est le moment où vous allez définir l’architecture de votre projet et les technologies que vous allez utiliser pour coder votre application. Ces premiers choix sont donc cruciaux mais il est très souvent difficile, voire impossible, d’anticiper ce que sera votre app dans plusieurs mois et les besoins que vous allez avoir.

Refonte totale de votre application

Malheureusement, malgré tout le sérieux et l’implication que l’on peut mettre dans le choix des technologies au départ de l’application, il arrive souvent un moment où une entreprise doit faire évoluer la technologie de son app pour différentes raisons business :

  • Le design de l’app est vieillissant et ne correspond plus à l’image de marque ;
  • L’entreprise développe une nouvelle activité et l’application ne correspond plus aux besoins business ;
  • Les utilisateurs souhaitent de nouvelles fonctionnalités clefs qui ne sont pas permises par la technologie actuelle, etc.

Par exemple, Snapchat a récemment communiqué début 2019 sur la refonte totale de son application Android. La raison ? Les utilisateurs Android ont du mal à utiliser l’app car elle s’avère très lente et la qualité des photos est amoindrie par rapport à la qualité de leur appareil photo. La conséquence est que Snapchat a eu une bien moins bonne rétention sur Android que sur iOS et souhaite aujourd’hui résoudre ce problème avec sa refonte.  

Lorsqu’une entreprise se lance dans une refonte totale, elle espère une mise à disposition rapide d’une nouvelle application plus fonctionnelle et devenue évolutive. Mais la refonte totale d’une application est un vaste chantier qui s’avère souvent plus compliqué que ce que l’on avait espéré et implique des semaines voire des mois de développement. Pendant ce temps, les utilisateurs ne vont pas avoir accès à des nouvelles fonctionnalités, ce qui peut affecter l’expérience client, notamment sur un marché où les fonctionnalités évoluent vite.

Evolution progressive de votre application

Faire évoluer son application de manière progressive est souvent un bon compromis à la refonte totale. C’est en effet un choix plus pragmatique, qui permet d’effectuer la refonte tout en continuant de développer votre application mobile et d’offrir aux utilisateurs des nouvelles fonctionnalités. Elle offre donc 3 avantages principaux :

  • Réduire le time-to-market pour lancer les nouvelles fonctionnalités en repartant d'une base existante ;
  • Maîtriser les coûts en ayant un seule application à maintenir ;
  • Minimiser le risque d'avoir des utilisateurs insatisfaits du fait de changements trop brutaux.

Quelles sont les solutions pour faire évoluer progressivement votre application mobile ?

React-native-1-1

Lancer une Progressive Web App (PWA) en complément de votre app

La Progressive Web App est un site web développé pour s’adapter aux navigateurs mobiles. La PWA présente les avantages d’être développée avec les outils du web, principalement HTLM5/CSS et Javascript, tout en s’adaptant au format du mobile.

Une PWA ne remplacera pas votre app classique puisqu’elle ne se trouvera pas sur les stores et sera uniquement accessible via un navigateur web. En revanche, elle présente l’avantage de pouvoir faire de l’acquisition rapidement puisqu’elle n’oblige pas un téléchargement sur les stores qui nécessite une mémoire pas toujours disponible sur les smartphones des utilisateurs. Si votre besoin business est de tester vite de nouvelles fonctionnalités et d’atteindre rapidement un certains nombres d’utilisateurs, alors la PWA peut être un choix pragmatique intéressant.  

Pour les développeurs habitués à ces langages de programmation, cela peut être un avantage indéniable de confort et de rapidité, et cela permet également des coûts de développement moindres. Les récentes avancées technologiques pour la PWA lui permettent d’être ajoutée à l’écran d’accueil comme une app (cependant peu d’utilisateurs le savent), d’être utilisée en offline pour effectuer certaines fonctionnalités et d’appeler certaines fonctionnalités du téléphone (GPS, Notifications, etc.). Avec ces récentes avancées, la PWA a le vent en poupe, notamment car elle présente aussi l’avantage de ne pas à avoir à passer par les stores classiques (Google Play Store, App Store, etc.).

En revanche, si vous ne souhaitez pas quelque chose de simple et souhaitez au contraire faire évoluer votre application pour lui permettre d’aller plus loin et d’ajouter des fonctionnalités complexes, la PWA n’est peut-être pas la meilleure option car vous serez probablement limités techniquement. De plus, il ne s’agit pas d’une application à proprement dit puisqu’elle n’est pas sur les stores, ce qui peut être perturbant pour vos utilisateurs s’ils sont habitués à voir votre app sur les stores.

L’application Native pour un projet à haute complexité

Contrairement à la PWA, l’application native vous permettra de faire absolument tout ce qui est possible. Une application native signifie qu’elle est codée dans les technologies propres des fabricants de smartphones. Les “apps” sont directement téléchargeables depuis les stores en propre des principaux fabricants : Apple, Google (Android) et Windows. Sur un iPhone, qui fonctionne avec iOS, le langage natif sera obj-c ou Swift. Sur un Samsung, un Pixel ou un Huawei, qui fonctionnent tous avec Android, le langage sera Java ou Kotlin.

Vous voyez sûrement venir la complexité, qui est que si vous voulez que votre application soit sur l’App Store et sur Google Play, il faudra coder deux applications différentes, avec deux langages différents. Vous ne serez pas limités dans vos possibilités avec l’application, mais cela sera cependant bien plus coûteux en termes de développement.   

Si votre app nécessite une expérience utilisateur maximisée par des fonctionnalités très complexes, impliquant notamment le recours à des fonctionnalités natives du téléphones, alors l’application native fait sens. Par exemple, pour une application comme Pokemon GO qui utilise l’appareil photo des utilisateurs pour faire de la réalité augmentée, une application native s’impose.

Evoluer vers une app “cross-platform” pour être plus rapide tout en conservant un haut niveau de qualité

L’application “cross platform” est très intéressante si vous avez besoin de tester rapidement votre produit tout en ayant une expérience utilisateur (UX) performante. Le principe de l’application cross-platform est d’utiliser un même langage pour coder une base de code commune à des applications à destination des différents stores. Ce partage de code entre les applications iOS et Android est un réel atout de l’application cross-platform car il permet de réduire considérablement le coût du développement et le time-to-market.

De plus, l’application cross-platform permet de conserver un look & feel natif et donc de conserver un très bon niveau d’expérience utilisateur. Si l’app cross-platform ne sera probablement pas aussi rapide qu’une app native, elle pourra en revanche accéder à toutes les fonctionnalités natives du téléphone.

L’application cross-platform est donc un choix très pragmatique pour le développement d’une application mobile.

Booster le développement de votre application avec React Native

React-native-2-1

React Native est un framework qui permet de coder des applications cross-platform. Il vous permettra de faire évoluer rapidement votre application et de tester rapidement un premier proof of concept car il peut s’intégrer directement dans votre code d’application existant. Ainsi, vous pouvez commencer à coder certaines fonctionnalités en React Native tout en conservant l’usage normal de votre app.

Développé par Facebook, il permet de créer des apps iOS et Android à partir de code écrit JavaScript, de manière accélérée, simple et multi-plateforme. JavaScript étant un langage web, il permet également aux développeurs Web de rapidement se familiariser avec le développement d’une app mobile. Il possède trois avantages principaux.

L’usage de composants pour améliorer le développement de votre application mobile

L’avantage de React Native est d’être aussi souple que les applications web en utilisant des composants. Les composants permettent de s’émanciper de la contrainte des contenants et peuvent être réutilisés à l’infini, indépendamment des changements de contenu.

L’autre avantage majeur est de pouvoir reprendre les composants natifs des bibliothèques iOS et Android. En plus des SDK natifs, vous pouvez utiliser tout composant ayant été créé par la communauté React Native ou JS. Ainsi, nul besoin de réinventer la roue, vous pouvez directement piocher dans la multitude de designs déjà disponibles dans ces librairies et qui donnent à votre application un look & feel natif, ce qui est très important pour l’expérience utilisateur. Les composants permettent donc de rendre le code plus réutilisables, testables et maintenables.

Multi-plateformes

L’avantage du code React Native est également d’être multi-plateforme. C’est-à-dire que la même base de code peut servir pour développer une application Android et une application iOS, alors même que les langages natifs de ces deux supports sont très différents. Le gain de temps est donc considérable puisqu’on ne repart à zéro à chaque fois pour coder la même fonctionnalité sur une nouvelle plateforme.

De plus, le code utilisé par React Native est Javascript, ce qui permet d’embarquer des équipes de développeurs Web sur un projet de développement mobile sans difficulté.

Compatible avec les langages natifs (Android / IOS)

React Native est compatible avec les langages natifs d’Android et d’iOS. C’est-à-dire que certaines fonctionnalités peuvent être codées en React Native (qui utilisent Javascript) et d’autres en Swift ou Kotlin, les langages d’Android et iOS.

C’est un point très intéressant car cela permet une refonte partielle de votre application avec React Native et d’éviter les risques d’une refonte totale évoqués plus haut. Par exemple, Instagram a commencé à tester React Native en 2016 en codant les Push Notifications dans ce framework, puis ils ont recodé de nombreuses autres fonctionnalités avec React Native.

Conclusion

React Native permet donc de diviser les temps de développement. Le framework permet ainsi de réduire le time-to-market et d’avoir un produit disponible plus rapidement sur le marché en France. Enfin, React Native permet de conserver un look & feel similaire au natif et de garder un champ des possibles totalement ouvert en termes de fonctionnalités. Ses perspectives d'avenir ne sont plus à démontrer.

Télécharger notre ebook react native