Framework d'applications mobiles

React Native

Le framework de Meta qui produit l'application iPhone et l'application Android en JavaScript, avec les composants propres à chaque téléphone. Ses atouts, ses contraintes, et les applications pour lesquelles le choisir.

Publié en
2015
Éditeur
Meta (ex-Facebook)
Langage
JavaScript, TypeScript
Licence
Libre (MIT)

React Native est un framework créé par Facebook, aujourd'hui Meta, pour développer des applications mobiles en JavaScript. Publié en open source en mars 2015, il reprend les principes de React, la bibliothèque qui sert à construire une grande partie des interfaces web actuelles : le même code produit l'application iPhone et l'application Android.

Contrairement à Flutter, React Native s'appuie sur les composants natifs du téléphone : un bouton reste un bouton iOS sur iPhone et un bouton Android sur Android. Meta s'en sert dans ses propres applications, et des outils comme Expo simplifient le développement, les tests et la publication sur les stores.

Ce que React Native fait bien, et moins bien

Points forts

  • Deux applications pour le prix d'une. Le même code JavaScript donne l'application iPhone et l'application Android, maintenues ensemble.
  • L'aspect natif de chaque téléphone. Les composants d'iOS et d'Android sont utilisés tels quels : l'application paraît familière à chacun.
  • Le langage le plus répandu. JavaScript est connu de très nombreux développeurs : le projet se reprend facilement.
  • Des corrections sans attendre les stores. Avec des outils comme Expo, certaines mises à jour se déploient directement, dans les limites fixées par Apple et Google.

Points faibles

  • Des bibliothèques d'une qualité inégale. Beaucoup de fonctions passent par des modules tiers, plus ou moins bien maintenus.
  • Des montées de version à préparer. Le framework évolue vite : rester à jour demande un suivi régulier.
  • Des écarts entre iPhone et Android. Composants natifs obligent, le rendu diffère un peu d'un système à l'autre : chaque écran se teste sur les deux.
  • Les animations complexes demandent plus de travail. Les interfaces très animées sont possibles, mais plus coûteuses qu'avec Flutter.

Pour quels projets choisir React Native ?

L'application qui suit les codes du téléphone

Une application qui doit paraître familière aux utilisateurs d'iPhone comme d'Android.

Le projet lié au web

Un site ou un outil déjà construit en JavaScript, dont l'application peut partager une partie du code.

L'application qui évolue souvent

Des corrections et des contenus mis à jour rapidement, sans toujours repasser par la validation des stores.

Quand préférer autre chose

  • Vous voulez une interface très travaillée, identique sur tous les téléphones : Flutter. Découvrir Flutter →
  • L'outil ne sert qu'occasionnellement, ou surtout depuis un ordinateur : une application web suffit, sans installation ni validation par les stores. Voir l'application web →
  • Les performances sont critiques (jeu en 3D, calcul intensif sur le téléphone) : mieux vaut développer séparément pour iOS et pour Android.

Ce que je propose avec React Native

Je développe des applications React Native pour iPhone et Android, avec leur back-office et leur API, et je les publie sur l'App Store et Google Play. Je choisis React Native plutôt que Flutter quand l'application doit coller aux usages de chaque téléphone, évoluer souvent, ou s'appuyer sur des outils JavaScript déjà en place.

Questions les plus fréquentes

Oui, le framework est libre, sous licence MIT. Le coût d'une application React Native est celui de son développement, de son back-office, de sa publication sur les stores et de sa maintenance.

Oui. Elle s'installe depuis l'App Store et Google Play, fonctionne comme n'importe quelle application et utilise les composants natifs du téléphone. Ce n'est pas un site web déguisé.

En partie. Des outils comme Expo permettent de déployer directement des corrections et des changements de contenu ou d'interface. Une nouvelle fonction qui touche au téléphone lui-même, ou un changement important, repasse par la validation d'Apple et de Google.

React Native, ou autre chose ?

Un appel de 30 minutes pour choisir la technologie qui convient à votre projet.

Parler de votre projet →