En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour vous proposer des offres adaptées à vos centres d'intérêt, recueillir des données de statistiques et permettre le partage de pages sur les réseaux sociaux.
  • Accueil
  • Blog
  • React Native : Réaliser des apps mobiles plus rapidement ?

React Native : Réaliser des apps mobiles plus rapidement ?

0%
Temps de lecture : 4 minutes

Lancé par Facebook en 2015, React Native est un framework qui permet de construire des applications mobiles multiplateformes. Cette technologie relativement nouvelle est déjà grandement appréciée par de nombreux développeurs. La présente rubrique explique brièvement les raisons de son succès.

De quoi s’agit-il?

C’est en substance un framework qui permet le développement d’applications mobiles natives sous iOS et Android en utilisant des outils basés sur la technologie Javascript et la bibliothèque React. Une application mobile native est une application spécifiquement créée pour une catégorie de système d’exploitation. Sur iOS, elle utilise le langage de dévelopement Objective-C/Swift et sur Android, Java/Kotlin. Ce type d’application est considérée comme plus rapide, plus efficace et offre une meilleure expérience utilisateur. Le développement est toutefois chronophage (autant de développeurs que de plateformes), d’où l’intérêt de se tourner vers React Native.

Applications mobiles natives?

WTF

Oui, vous avez bien lu. React Native permet de réaliser des applications mobiles natives. Dans l’ADN même du framework, Facebook a permis d’embarquer des composants natifs (contrairement à des composants web). Ce qui signifie que React Native peut discuter directement avec les API présentes de base dans les OS (iOS et Android).

En revanche, React Native n’est pas en mesure de s’interfacer avec toutes les API du système (comprenez que le framework est en réaction des derniers choix de Android et iOS concernant leur système d’exploitation). Dans la logique, cela signifierait que pour utiliser telle ou telle fonctionnalité avancée, le développeur devrait créer lui-même les modules spécifiques en Javascript pour s’y interfacer.

Il n’en est rien; React Native permet au développeur d’importer des briques de codes écrit en Java, Kotlin, Objective C ou Swift. Ce qui facilite grandement la vie.

Que promet cet outil au grand potentiel ?

Le gain de temps est la principale force de ce framework. D’abord, il évite au développeur de devoir recompiler à chaque modification, l’application se rechargeant instantanément durant la phase de développement. Ensuite, l’outil permettant de créer une seule base de code convenant à la fois à iOS et à Android, le développeur passe ainsi moins de temps à coder. Donc, un seul code à créer, un seul code à mettre à jour, par un seul développeur (sur le papier). Une application qui serait donc plus maintenable et moins couteuse.

Une application mobile conçue à l’aide de cet outil promet par ailleurs une grande qualité, une excellente performance, une bonne réactivité de l’interface, une expérience utilisateur optimisée. Qui plus est, un développeur maîtrisant bien Javascript peut construire une application mobile à l’aide de cet outil sans avoir à apprendre l’écosystème et langage propre à chaque OS. Un autre point pour le gain de temps annoncé par le framework.

En quoi se distingue-t-il d’autres frameworks?

Qu’en est-il des outils tels que Cordova et Ionic par rapport à React Native ?

Ionic ou Cordova créent des applications dites hybrides. Les applications hybrides sont développées avec les technologies standards du Web et sont encapsulées dans des composants natifs. Il s’agit donc d’une réelle surcouche au développement natif, contrairement à React Native.

Comme dit plus haut, React Native utilise des composants natifs et n’est donc pas en cela une surcouche à l’OS. Techniquement, le code écrit en Javascript est compilé (transformé) en code natif. Il n’y a donc plus de trace de Javascript au sein de l’application finale installée sur le téléphone. A contrario, l’interface graphique générée par Cordova ou Ionic est affichée au travers d’une Webview (comprenez la vue d’un site web responsive sans les barres de navigation), ce qui lui enlève de son efficacité et de sa qualité quant à l’expérience utilisateur ainsi que de la performance dans l’utilisation de fonctionnalités plus avancées.

React Native est donc bien l’el dorado des App Makers?

React Native Eldorado des developpeurs

N’allons pas si vite en besogne. Un petit récapitulatif de ce qui est écrit plus haut:

  • React Native est basé sur le langage React, lui-même une librairie Javascript, pour créer des interfaces. Il faut donc maîtriser les technologies Web comme le Javascript, HTML et même CSS pour la personnalisation des composants
  • L’utilisateur mobile reste exigeant et veut une expérience optimale. La navigation dans une app Android et dans une app iOS est très différente (déjà uniquement de par la présence d’un nombre de boutons de navigation différents entre les 2 périphériques). Ce qui implique que certains ajustements en cours de projets sont nécessaires pour adapter l’application à tel ou tel périphérique. De plus, tous les composants natifs ne sont pas disponibles et le développeur peut se retrouver à devoir développer en natif directement.
  • React Native reste une technologie très jeune. Le site officiel affiche la version 0.48 à l’heure où nous écrivons ces lignes, montrant une potentielle instabilité du framework. Le cap de la version 1 n’étant toujours pas franchis, de gros changement peuvent contraindre à réécrire complètement une application pour le support d’une nouvelle version d’OS. Des soucis de maintenabilité et d’évolution en somme.

Vous me voyez donc venir; la courbe d’apprentissage de React Native pour réaliser des applications mobiles de qualité est donc très importante. Le bon développeur d’applications mobiles en React Native doit donc non seulement maîtriser les langages natifs, mais aussi le Javascript qui présentent entre eux, des paradigmes très différents.

 

L’INTÉGRATION D’UNE LIBRAIRIE NATIVE DANS UNE APPLICATION REACT NATIVE DEMANDE PARFOIS BEAUCOUP DE CONFIGURATION

 

De plus, le déboguage d’une application construite à partir de React Native peut s’avérer complexe. En effet, les erreurs remontées par le système correspondent au code généré par React Native. A charge ensuite au développeur de retrouver comment React Native a généré ce code, et comment agir dessus.

Enfin, l’intégration d’une librairie native dans une application React Native demande parfois beaucoup de configuration. Par exemple, la mise en place d’une carte Google Maps devient ainsi un travail de longue haleine alors qu’elle ne prend qu’une minute sur une application native Android.

L’excellente maîtrise du framework React Native pour créer des applications mobiles est donc une compétence complexe à obtenir, ce qui implique qu’en tant qu’App Maker, vous aurez une dépendance plus forte au développeur qui a écrit votre code.

Laisser un commentaire