React Native : le framework JavaScript de Facebook au crible

Comme React, React Native a été créé par Facebook. A la différence de son grand frère qui cible les interfaces web, ce moteur de rendu est taillé, lui, pour les apps natives.

On ne présente plus React : ce moteur de rendu web, open source, créé par Facebook, et dont la popularité ne cesse de croître. React Native est une déclinaison de React adaptée, elle, au développement d'apps natives. Également sous licence BSD, React Native repose sur la même API que son grand frère, sans offrir pour autant la même librairie JavaScript. On peut ainsi qualifier React Native de moteur de rendu... natif.

Un moteur de rendu dont la popularité explose

La popularité de React Native n'a cessé de progresser ces derniers mois, comme le montre la courbe bleue du graphique ci-dessous (elle illustre l'évolution de l'intérêt pour la requête "React Native" dans Google comparé à celle de la requête "React JS"). Selon Facebook, pas moins de 500 entreprises à travers le monde utiliseraient cette librairie pour programmer des applications iOS, et 200 des apps Android. Le groupe estime par ailleurs à 250 000 le nombre de développeurs ayant installé les outils React ou React Native.

La courbe de popularité de React Native dans Google décolle en 2015, environ un an après celle de React.© Capture JDN

React Native disponible pour iOS, Android et Windows

Initialement taillé pour bâtir les interfaces graphiques des apps natives iOS et Android, React Native a été récemment étendu à Windows par les équipes de Microsoft, via la déclinaison ReactWindows. Concrètement, elle permet d'intégrer des composants graphiques en React Native au cœur des applications Windows "universelles", et ainsi d'en assurer le portage sur tout type de terminal Windows 10 : PC, tablette, smartphone ou Xbox One (lire le post officiel de cette annonce). Il existait déjà une extension React Native pour l'environnement de développement de Microsoft (Visual Studio). 

Un SDK Facebook
pour React Native

Last but not least, React Native est aussi disponible pour Tizen (l'OS soutenu par Samsung)

Facebook investit beaucoup dans React Native. Le groupe de Mark Zuckerberg propose d'ailleurs un kit de développement pour le framework JavaScript. Ce SDK doit permettre de faciliter l'intégration des fonctionnalités de son réseau social (Login, partage, Analytics, accès aux API du Graph...) aux applications en React Native.

Comment développer des interfaces natives... en JavaScript

Quelle différence entre React Native et l'outil de développement multiplateforme Apache Cordova ? Ce dernier permet de créer des apps mobiles avec un accès aux API natives des terminaux (et donc à leurs possibilités matérielles, comme la caméra ou l'accéléromètre). Côté interface graphique, les développements Cordova reposent sur la notion de WebView, ce qui veut dire que leurs écrans sont à base de HTML/CSS/JS. Leur rendu n'est donc pas natif. De son côté, React Native se limite à la couche de rendu, et ne recouvre donc pas la logique applicative et la gestion des fonctionnalités matérielles - comme Cordova peut le faire. Mais au lieu d'exécuter des WebView, ses librairies JavaScript vont pouvoir invoquer et orchestrer des composants UI natifs  (UITabBar sur iOS ou encore Drawer sur Android, par exemple).

Le principal intérêt : les développeurs web habitués à JavaScript pourront, grâce à React Native, s'orienter vers des projets d'app native sans avoir à tout réapprendre. C'est d'ailleurs bien dans cette logique que Facebook a initialement mis au point React Native. L'objectif était ainsi de permettre à ses développeurs web de s'adosser au même langage (JavaScript) pour mettre au point, également, des apps natives.

Facebook / Framework