Bonjour, je suis Webmaster à Oullins à proximité de Lyon.
Passionné de nouvelles technologies et de Web, j'accompagne les entreprises désireuses de développer leur présence en ligne.

Développement mobile : avantages et limites de React Native

Développement mobile : avantages et limites de React Native

Dans le développement de logiciels, des choix interviennent en abondance et nous les affrontons régulièrement.

Sur quelle plateforme devriez-vous vous concentrer, quelle approche devriez-vous choisir pour passer de A à B, quelles langages, bibliothèques ou frameworks fonctionneront le mieux pour vous? Ce ne sont là que quelques-unes des nombreuses questions à choix multiples que chaque projet nous présente si somptueusement. Et avant de vous rendre compte de la véritable circonférence du problème, il y aura d'innombrables opinions qui ne feront qu'accentuer cette confusion.

Dans cet article, nous allons examiner en profondeur une alternative émergente au développement mobile natif.

Commençons

Imaginons maintenant que vous devez créer une application mobile iOS et Android pour votre entreprise ou votre client et la faire de la manière la plus rapide, la plus simple et la plus économique possible. Si vous venez du monde du développement mobile, vous opterez probablement pour le développement natif en Java (pour Android) ou Objective C / Swift (pour iOS), mais faire les deux versions exigera évidemment presque deux fois autant d'efforts. Si vous avez une expérience en développement Web et vous êtes vraiment bon avec JavaScript, mais n'avez jamais traité avec le développement mobile, vous serez probablement perplexe et ne saurez pas par où commencer.

 

Une situation comme celle-ci pourrait naturellement vous faire penser à une solution multi-plateforme ; une solution capable de combler le fossé entre votre expérience en tant que développeur JS ou un spécialiste mobile mono plateforme unique et la nécessité d'une application mobile native écrite une fois pour travailler sur une large gamme de périphériques. Il existe différents produits multi-plateformes et le choix de celle qui vous conviendra dépend d'un certain nombre de facteurs, y compris, mais sans s'y limiter, les éléments suivants:

  • Des exigences uniques qui peuvent influencer le choix de la plateforme à utiliser;
  • L'expérience du développeur avec un langage et un ensemble de compétences particulières;
  • Le devenir de l'application (nécessité de maintenir, de personnaliser et de mettre à jour le code).

Opter pour une solution multi-plateforme offre un certain nombre d'avantages pour le développeur et pose pourtant de nombreux défis. En tant que développeur mobile ayant peu d'expérience en développement Web, vous pouvez constater que la courbe d'apprentissage des outils multi-plateformes populaires est assez abrupte. En tant que développeur front-end, vous passerez également un temps considérable à absorber la nouvelle philosophie de développement, mais à la fin, vous verrez que les résultats méritaient bien autant d'efforts.

Mettons maintenant l'accent sur le thème clé de cet article - l'une des meilleures solutions de ce type disponible sur le marché aujourd'hui est appelée React Native.

React Native

Comme son nom l'indique, React Native est basée sur React, une librairie JS populaire pour le développement d'applications Web publiées en 2013 par Facebook. React Native, un très récent nouveau venu sur le marché des outils multi-plateformes, adopte la philosophie "apprendre une fois, écrire partout", car le framework vous permet d'utiliser de bons vieux JavaScript, des feuilles de style CSS et même des balises HTML familières pour créer des images natives pour iOS et Android.

Apparemment, React Native n'est pas seulement que JS, CSS et HTML - ce sont juste les ingrédients de base. Tout d'abord, il faut savoir que React est un must - React Native est essentiellement une extension de React pour le développement mobile. Cela prend généralement un mois environ pour comprendre les concepts et les flux de développement de React Native, mais une fois que vous avez terminé la formation initiale, vous serez en mesure d'écrire un code hautement réutilisable, propre et rapide à des vitesses que vous n'auriez jamais osé imaginer. Le développement professionnel dans React Native peut également nécessiter la connaissance du framework Flux et des packages comme Redux / Reflux.

Dans React Native, ses composants et vues JavaScript correspondent strictement à leurs équivalents IOS / Android, offrant la même fonctionnalité que vous obtiendriez avec les composants natifs. Et quand la fonctionnalité que vous développez est vraiment critique, vous pouvez toujours utiliser des composants natifs - ils s'intègrent bien dans toute application React Native et peuvent être utilisés avec son code JS. Finalement, React Native est développée très activement et les nouvelles versions dévoilent régulièrement de nouveaux homologues JS pour une pile en baisse des composants natifs restants. Dans un avenir prévisible, React Native promet de devenir une alternative complète aux plateformes de développement natives, à quelques exceptions près.

 

React Native VS le développement natif

Nous allons comparer le développement d'applications avec un développement natif et React Native selon un certain nombre de critères:

 

Facilité d'apprentissage

React Native : Vous devez déjà bien maîtrisé JavaScript et développement Web en général et avoir besoin d'avoir une certaine expérience React pour comprendre ses concepts clés et la philosophie globale. En outre, la connaissance de JSX, Flux ou Redux sera très pratique et permettra d'accélérer considérablement le processus de développement. En général, il faudra à un développeur moyen environ 1 mois pour prendre en main React Native et commencer à écrire des applications.

Développement natif : la courbe d'apprentissage varie et peut ne pas être la même pour les deux plateformes. Si vous voulez être le Mac Gyver du développement mobile et composer pour iOS et Android, cela pourrait être un immense défi qui pourrait prendre des années. Par conséquent, si vous avez besoin de développer des applications natives pour mener un projet, vous pourriez avoir besoin de deux personnes pour faire le travail.

 

Applicabilité

React Native : cette technologie est parfaite pour le prototypage rapide et la création d'applications qui ne sont pas critiques en terme de performance. La chose est, en raison de la nature de JS, que React Native n'a qu'un thread d'exécution à sa disposition, donc quand il s'agit de composants à forte intensité de calcul, ce fait devient instantanément un goulot d'étranglement, sinon un élément bloquant. La solution consiste à utiliser des composants natifs mélangés avec ceux de React Native (ce qui est totalement possible), pour tirer parti du multi-threading et de l'exécution plus rapide du code natif.

Développement natif : par définition, le développement natif convient à toutes sortes d'applications sans restrictions.

 

Réutilisation du code

React Native : base de code entièrement réutilisable qui fonctionne sur iOS et Android sans limitations. Pas besoin de modifier la version de deux applications et de créer de nouvelles versions - tout est fait simultanément.

Développement natif : Code natif pour les versions correspondantes de vos applications.

 

Vitesse de développement

React Native : quand vous travaillez avec un code multi-plateforme, le temps de développement est considérablement réduit ; vous pouvez créer deux versions de votre application en deux fois moins de temps que pour développer deux versions natives.

Développement natif : pour correspondre à React Native en terme de délais, vous aurez besoin de deux développeurs natifs expérimentés (iOS et Android) ou d'un compromis sur la durée du projet et le faire vous-même, étant donné que vous êtes familier avec les deux plate-formes. 

Coût

React Native : la bibliothèque est pleine de ressources libres et gratuites, donc vos dépenses seront limitées à l'électricité et au café.

Développement natif : certaines licences ou compléments pour les IDE natifs peuvent ne pas être libres, donc le coût sera plus élevé.

 


En conclusion

Le résultat est que React Native est une technologie très prometteuse avec un énorme potentiel, qui a déjà été dûment appréciée par des géants comme Airbnb, Baidu, Discovery, Instagram et d'autres . Constamment améliorée et mise à jour par ses fondateurs, elle est à deux pas de devenir une alternative à part entière à Objective C, Swift et Java, en particulier sur des projets qui ne sont pas critiques. Si vous êtes un développeur JavaScript expérimenté, React Native est l'itinéraire le plus court pour explorer le domaine mobile en exploitant votre expertise JS en développement web.

Version AMP de l'article