Pour le lancement d’une application mobile, il est souvent de rigueur de développer de la développer sur deux plateformes, l’une sur iOS et l’autre sur Android, afin d’offrir une expérience mobile sur la plupart des devices proposés sur le marché. Cependant, cela risque de changer dans les mois à venir. En effet, un nouveau langage commence à attirer de plus en plus d’attention : le React Native.

Cette nouvelle technologie, développée dans un premier temps par Facebook, permet d’écrire un seul et unique code pour les deux plateformes. Deux applications natives sont générées, mais chacune exécute un même code partagé, rédigé en Javascript.

Contrairement à des technologies comme Phonegap, qui hébergent une webview et qui fonctionnent comme des sites web intégrés à l’application, React Native génère des composants natifs à partir du code Javascript. Il permet donc de développer une seule fois, et en un seul langage, les fonctionnalités de l’application, tout en gardant une expérience native complète et de qualité quelque soit l’interface finale, de la même manière que si l’application avait été développée uniquement sur iOS ou sur Android.

Cette spécificité promet un gain de temps considérable pour les développeurs, et donc logiquement une importante réduction de budget pour les clients. En effet, au lieu d’un développement Swift et un développement Android, un développement React Native devient suffisant.

En ce qui concerne les développeurs, il s’agit de profils différents de ceux qui sont habituellement sollicités pour ce genre de projet. En effet, il s’agit maintenant de développeurs HTML et Javascript, qui ont un profil plus web que les développeurs spécialisés (iOS ou Android). De cette manière, des développeurs web front-end sont désormais capables de développer des applications mobiles natives.

Les habitués à ReactJS ne seront pas trop dépaysés. Le framework React Native reprend la notion de composants et une structure similaire. Au delà des librairies permettant l’accès aux fonctionnalités natives, le React Native remplace les vues habituellement générées en HTML et en CSS par des ensembles de composants React qui seront substitués à l’affichage par des composants natifs.

React Native développement

React Native développement

 

Quant au style de ces composants, ils peuvent être réalisés avec des objets Stylesheet, qui, bien que différents du CSS, possèdent des noms de propriétés assez similaires. Les layouts sont d’ailleurs la plupart du temps gérés avec un équivalent de Flexbox. Tout est fait pour qu’un développeur web puisse prendre ses marques malgré les quelques différences.

React Native développement

Toutefois, comme en web et même s’il gère le pont avec les technologies natives, le React Native ne s’occupe que de l’aspect “vue”. Pour gérer les données de larges applications, il faudra rapidement se tourner vers des méthodes déjà utilisées avec ReactJS, telles que Flux ou Redux. Ces frameworks gèrent et centralisent les données affichées par les vues, simplifiant les mises à jour de ces dernières en cas de changements.

Les équipes Tapptic ont, d’ores et déjà, lancé plusieurs projets en React Native et le résultat a été très concluant.

Cependant, nous devons mettre en lumière quelques petits bémols qui peuvent venir entraver l’enthousiasme général. En effet, pour développer certaines spécificités allant au delà de ce qu’offre le framework de React Native ou les plugins déjà existants, il sera nécessaire de faire appel à du code natif (soit iOS, soit Android). Dans ce cas, des modules natifs devront être développés et intégrés pour permettre à l’application d’être utilisée sur les deux plateformes et de manière à ce que le résultat global soit harmonisé.

D’autre part, cette technologie reste jeune et même si elle semble encore stable, elle entraîne forcément une dépendance externe qui n’a pas lieu avec les développements natifs. Dépendre d’un framework externe suppose de suivre l‘évolution et les potentiels changements importants dans la structure de celui-ci. Il faut aussi prévoir un certain temps d’adaptation entre les mises à jour des OS natifs et la mise à niveau de React Native.

Autre point à souligner, ce n’est pas la première fois que l’on annonce qu’une nouvelle technologie peut drastiquement changer le quotidien des développeurs. Or cela n’a pas toujours été vrai, à voir les cas de PhoneGap, Cordova, Ionic où le succès escompté n’avait pas été au rendez-vous.

Quoiqu’il en soit, il est certain que le React Native risque de modifier l’approche du développement mobile, en baissant considérablement le coût d’une application tout du moins au niveau des caractéristiques basiques de celle-ci.

 

Caroline Lomba

Développeur React Native @ Tapptic