React Native (Meta) permet de développer des applications iOS et Android en JavaScript / TypeScript, dans la continuité de la philosophie React. Sa particularité face à Flutter : il ne dessine pas ses propres pixels, mais pilote les véritables composants natifs de chaque plateforme.
Le slogan d'origine : « Learn once, write anywhere ». Si vous maîtrisez déjà React pour le web, vous avez déjà parcouru 80 % du chemin vers le mobile.
Pourquoi React Native ?
| Atout | En clair |
|---|---|
| 🟦 Écosystème React/JS | Réutilise les compétences, bibliothèques et patterns du web |
| 🧩 Composants natifs réels | Le rendu s'appuie sur les widgets du système |
| 🔥 Fast Refresh | Rechargement quasi instantané pendant le développement |
| 📦 Expo | Démarrage et build fortement simplifiés |
| 👥 Vivier de devs | Énorme communauté JavaScript |
Un aperçu en code
import { Text, View, Button } from 'react-native';
import { useState } from 'react';
export default function App() {
const [count, setCount] = useState(0);
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Compteur : {count}</Text>
<Button title="Incrémenter" onPress={() => setCount(count + 1)} />
</View>
);
}
On y retrouve les hooks (useState, useEffect…), le JSX et les props, exactement comme en React web, mais avec des composants View, Text, Button à la place de div, span, etc.
Expo : la voie rapide
Expo est une surcouche qui élimine la plupart des frictions liées au natif (build, mises à jour OTA, accès caméra/GPS…) :
npx create-expo-app mon-app
cd mon-app
npx expo start # QR code → l'app tourne sur votre téléphone
Pour des besoins très spécifiques, il est possible de « éjecter » vers un projet natif complet.
Quand choisir React Native ?
Oui, plutôt React Native dans les cas suivants :
- votre équipe est déjà JavaScript / React ;
- vous voulez partager de la logique avec un front web React ;
- vous visez un rendu fidèle aux composants natifs de chaque OS.
À nuancer dans les cas suivants :
- vous avez besoin d'UI très custom et identique partout (Flutter est souvent plus direct) ;
- vous faites du calcul lourd ou des animations complexes (le pont JS peut être un goulot, même si la nouvelle architecture l'améliore beaucoup).
React Native et Flutter poursuivent le même objectif — une application mobile multiplateforme — avec deux philosophies opposées : piloter le natif (RN) ou tout redessiner (Flutter). Le choix dépend avant tout des compétences de l'équipe et du niveau de personnalisation attendu pour l'UI.