Fin janvier, Facebook présentait React Native, une solution open source pour construire des applications iOS et Android natives avec JavaScript et React.
Jusqu’à présent les développeurs web qui souhaitaient réaliser une application mobile se tournaient de préférence vers PhoneGap. Cette approche hybride, qui consiste à encapsuler une application web dans une application native et à effectuer le rendu au moyen d’une webview, génère une expérience utilisateur moins fluide et moins réactive qu’un développement natif. De l’aveu même de Mark Zuckerberg, fondateur et CEO de Facebook, « parier sur HTML5 était une erreur ».
Avec React Native, l’équipe de Facebook qui porte le projet souhaite changer de paradigme. Au lieu de « Write once, run everywhere », React Native propose « Learn once, write everywhere ». Le principe : grâce à un moteur JavaScript exécuté en asynchrone sur un thread séparé, le développeur pilote une UI native avec un code JavaScript. La techno évite ainsi les compromis habituels des applications natives, tout en produisant une expérience utilisateur optimale, puisque native.
En ce sens, cette initiative se rapproche de la démarche d’Appcelerator Titanium, qui propose de produire des applications natives sur la base d’un développement en JavaScript (voir à ce sujet la réaction d’Appcelerator).
Outre les atouts inhérents à React.js, qui permettent au développeur web une prise en main rapide, c’est une véritable application native qui est ainsi développée, prête à être publiée sur les stores. Le développeur, sans compilation, pilote ses vues natives et constate les modifications au runtime. A titre d’exemple des possibilités offertes, Facebook a ainsi publié son application Facebook Groups sur iOS.
C’est une technologie très prometteuse que nous propose Facebook avec React Native. A ce stade seuls quelques privilégiés, présents à la dernière React.js Conf, ont eu accès au GitHub du projet. Ses qualités restent donc à prouver en contexte réel.