Expo est un framework open source pour créer des applications iOS, Android et web avec React Native. Il regroupe ce dont une application React Native a besoin et que React Native lui-même ne fournit pas : une bibliothèque de modules natifs testés, un routeur par fichiers, un outil en ligne de commande, et un ensemble de services cloud (EAS) qui compilent votre application et l'envoient sur les stores. Depuis 2024, la documentation de React Native recommande de démarrer toute nouvelle application avec un framework, et cite Expo comme ce framework.
Si vous avez déjà monté un projet React Native à la main, vous savez pourquoi : Xcode, Android Studio, dépendances natives, certificats de signature. Expo cache cette machinerie tant que vous n'en avez pas besoin, et vous la rend quand c'est le moment. Ce guide explique de quoi Expo est fait, ce qui a changé en 2025 et 2026, ce que ça coûte, et dans quels cas ce n'est pas le bon outil.
Expo et React Native : un framework, pas un fork
React Native, c'est le moteur. Il prend des composants React écrits en JavaScript ou TypeScript et les affiche comme de vraies vues natives : un bouton UIKit sur iOS, une View Android sur Android. Ce moteur est maintenu par Meta et utilisé dans des applications comme Facebook, Instagram, Microsoft Office ou Shopify.
Expo est le framework autour de ce moteur, comme Next.js est un framework autour de React. Il ne remplace pas React Native et ne le forke pas : une application Expo est une application React Native, avec les mêmes composants, les mêmes bibliothèques et les mêmes binaires natifs à l'arrivée. Ce qu'Expo ajoute, c'est la couche que tout le monde reconstruit à la main sinon : la navigation, une bibliothèque standard d'API du téléphone, une chaîne de build et un moyen de livrer des mises à jour.
La distinction compte à cause d'une vieille réputation. Les premières versions d'Expo (avant 2021) vous enfermaient dans un ensemble fixe de modules natifs ; ajouter une bibliothèque native maison obligeait à quitter Expo. Cette limite a disparu. Aujourd'hui vous pouvez ajouter n'importe quel module natif, écrire du Swift ou du Kotlin à côté de votre TypeScript, et Expo génère les projets natifs pour vous au moment de compiler.
À retenir
Toute application Expo est une application React Native. L'inverse n'est pas vrai : une application React Native sans Expo doit assembler elle-même navigation, modules natifs, builds et mises à jour. La documentation React Native le dit sans détour : pour une nouvelle application, utilisez un framework, et le framework recommandé est Expo.
Les briques
Le plus simple est de voir Expo en couches. Vous écrivez contre les deux du haut, React Native fait le rendu en dessous, et un service cloud séparé transforme le tout en quelque chose qu'on installe depuis un store.
Le SDK Expo : une bibliothèque standard pour le téléphone
Le SDK est une collection de paquets, un par capacité : expo-camera, expo-location, expo-notifications, expo-file-system, expo-sensors, et quelques dizaines d'autres. Ils sont testés ensemble et publiés ensemble, trois fois par an, et chaque version du SDK est liée à une version précise de React Native. Ce verrouillage est la raison principale pour laquelle les applications Expo se mettent à jour plus facilement qu'un React Native nu : quelqu'un a déjà vérifié que les pièces s'emboîtent.
Expo CLI et Expo Router
La CLI crée un projet, lance le serveur de développement (Metro) et exécute les commandes de build. Expo Router ajoute une navigation par fichiers : chaque fichier du dossier app/ est un écran, et son chemin est sa route. Les mêmes routes servent de deep links sur le téléphone et d'URL sur le web, sans configuration supplémentaire. Depuis le SDK 56, Expo Router ne dépend plus de React Navigation ; il a forké les parties dont il avait besoin pour évoluer seul.
Expo Go, development builds et builds de production
C'est là que les débutants se perdent, donc voici le tableau complet. Ce sont trois façons de faire tourner le même code, à des étapes différentes.
| Expo Go | Development build | Build de production | |
|---|---|---|---|
| Ce que c'est | Une application prête à l'emploi qui embarque le SDK Expo | Votre propre application, avec les outils de développement dedans | Le binaire signé que vous envoyez aux stores |
| Code natif personnalisé | Non, uniquement les modules du SDK | Oui | Oui |
| Comment l'obtenir | On l'installe, on scanne un QR code | On le compile une fois (EAS ou en local), puis on recharge en direct | EAS Build ou un build local |
| Idéal pour | Prototypes, apprentissage, montrer une première version sur un vrai téléphone | Le travail quotidien sur un vrai projet | La sortie |
Un changement à connaître pour 2026 : à partir du SDK 56, Expo Go n'est plus distribué sur les stores publics. On l'installe depuis la CLI Expo sur Android, ou via TestFlight sur iOS. Cela reste le moyen le plus rapide de voir une application sur un téléphone, mais Expo oriente les projets sérieux vers les development builds.
EAS : le côté cloud
Expo Application Services est la partie d'Expo qui n'est ni open source ni gratuite au-delà d'un quota. Elle a trois rôles. EAS Build compile votre application sur des machines cloud, y compris les machines macOS indispensables pour iOS, ce qui permet de produire un build iPhone depuis Windows ou Linux. EAS Submit envoie le binaire terminé vers App Store Connect ou Google Play. EAS Update pousse des modifications JavaScript vers les applications installées sans nouvelle publication sur le store, dans les limites autorisées par les stores. La documentation d'EAS Build détaille la configuration exacte.
Ce qui a changé en 2025 et 2026
Deux ans de versions ont fait passer Expo du statut de surcouche pratique à celui de manière par défaut d'utiliser React Native. Les changements à connaître :
- Nouvelle architecture uniquement. Depuis le SDK 55, les applications Expo tournent exclusivement sur la nouvelle architecture de React Native : le renderer Fabric, les TurboModules et JSI remplacent l'ancien bridge asynchrone. React Native 0.85 (avril 2026) en a fait le défaut de tout l'écosystème, et le SDK 56 livre le moteur JavaScript Hermes v1 par défaut.
- Le SDK 56 (mai 2026) mise sur la vitesse de build. Les modules iOS les plus lourds arrivent désormais précompilés, ce qu'Expo mesure à environ 16 % de builds iOS plus rapides, et la CLI bundle les projets à froid 20 à 50 % plus vite.
- Expo UI est stable. Des composants SwiftUI et Jetpack Compose s'utilisent depuis React, donc une application peut adopter les derniers widgets de chaque plateforme sans quitter TypeScript.
- Modules natifs inline. Un fichier Swift ou Kotlin peut vivre à côté du TypeScript qui l'appelle, avec des types générés. Le vieux mur entre le monde JavaScript et le monde natif a presque disparu.
Rythme des mises à jour
Trois versions du SDK par an, c'est une montée de version tous les quatre mois environ. Chacune est petite si vous suivez, et pénible si vous en sautez trois. Prévoyez un après-midi par trimestre ; c'est le vrai coût de maintenance d'une application Expo, et il est inférieur à l'équivalent sur un projet React Native nu.
Tarifs, limites, et quand Expo n'est pas le bon choix
Le framework, le SDK, la CLI et Expo Router sont gratuits et open source. Ce qui coûte, c'est le cloud, et les comptes Apple et Google dont vous avez besoin quel que soit le framework.
| Élément | Prix | Ce que vous obtenez |
|---|---|---|
| Framework Expo, SDK, CLI, Router | Gratuit, open source | Tout ce qui tourne sur l'appareil |
| EAS plan gratuit | 0 $ | 15 builds iOS et 15 builds Android par mois, file d'attente basse priorité (des attentes de plus de 90 minutes arrivent en période de pointe), build limité à 45 minutes |
| EAS Starter | 19 $ par mois plus consommation | File prioritaire, build limité à 2 heures |
| EAS Production | 199 $ par mois plus consommation | Quotas plus élevés pour les équipes qui livrent souvent |
| Apple Developer Program | 99 $ par an | Obligatoire pour publier sur l'App Store, quel que soit le framework |
| Google Play Console | 25 $ une fois | Obligatoire pour publier sur Google Play |
Quand Expo est le bon choix
- Votre équipe écrit du JavaScript ou du TypeScript, ou vient du développement web.
- Vous voulez un seul code pour iOS, Android et, souvent, le web.
- Personne dans l'équipe n'a de Mac, ou personne ne veut entretenir des installations Xcode et Android Studio.
- Votre application est un produit, pas un jeu : formulaires, listes, cartes, caméra, notifications, paiements.
Quand ce n'est pas le cas
- L'application est surtout du code natif sur mesure : un moteur 3D, des pipelines audio ou vidéo en temps réel, de la réalité augmentée lourde.
- L'équipe est déjà investie en Swift ou en Kotlin ; Kotlin Multiplatform partagera peut-être plus avec moins de friction.
- Il vous faut seulement un site adapté au mobile avec une icône installable : une progressive web app coûte moins cher et n'a besoin d'aucun store.
Pour une vue plus large des alternatives, notre guide du développement mobile cross-platform compare React Native avec Flutter, Kotlin Multiplatform et les applications web encapsulées.
Comment Cadrant utilise Expo
Les projets mobiles natifs sur Cadrant sont des applications Expo et React Native. Vous décrivez l'application en langage naturel, le projet généré utilise le SDK Expo pour les fonctions du téléphone, et l'aperçu s'ouvre dans un cadre de téléphone à l'intérieur de l'éditeur. Pour tester sur un vrai appareil, vous scannez un QR code avec Expo Go ; la plupart des API expo-* y tournent directement.
La publication suit le chemin qu'un développeur prendrait à la main, piloté pour vous : le build iOS tourne sur EAS avec votre propre compte Expo (le plan gratuit couvre 15 builds iOS par mois), et le binaire terminé est soumis à votre compte App Store Connect après une étape guidée de connexion Apple, de création de l'app et de certificat. La propriété reste chez vous, sur vos comptes Expo et Apple. La page créateur d'applications mobiles détaille le parcours complet.
Conseil pratique
Créez votre compte Expo gratuit et votre adhésion Apple Developer dès le premier jour, pas le jour du lancement. L'activation d'un compte Apple peut prendre plusieurs jours pour une société, et le premier build EAS sur un plan gratuit peut patienter dans la file. Dans les deux cas, c'est du temps calendaire qu'on ne rachète pas.
En résumé : Expo, c'est React Native avec les piles fournies, et depuis 2024 c'est la façon de démarrer que l'équipe React Native recommande elle-même. Comprenez la différence entre Expo Go et un development build, prévoyez le quota cloud et les comptes des stores, et le reste n'est que du React.