Aller au contenu
useffect.sh
Planifier 30 min avec un senior
Outillage

Expo

Le framework open source recommandé par React Native : SDK de modules natifs, CLI, prebuild, Expo Router, et les services cloud EAS.

Définition

Expo est un framework open source pour construire des apps React Native sur Android, iOS et le web. Il se compose du package expo et de son SDK (un ensemble de modules natifs testés ensemble, versionnés par numéro de SDK), d’Expo CLI (qui gère les dépendances, compile les apps natives et fait tourner le dev server), d’Expo Router pour la navigation, et de prebuild, qui génère les projets natifs à partir de la configuration. À côté, Expo Application Services (EAS) regroupe les services cloud hébergés de build, de soumission et de mise à jour. Depuis 2024, la documentation React Native recommande de démarrer tout nouveau projet avec un framework, et Expo est celui qu’elle cite. Il s’installe dans à peu près n’importe quel projet React Native existant, et chaque brique est optionnelle. En octobre 2026, le SDK courant est le 58, basé sur React Native 0.88. Vous rencontrez Expo dès que vous créez une app, lisez app.json ou choisissez un module natif.

Dans une vraie app

La confusion la plus courante, encore aujourd’hui, est de croire qu’Expo limite l’accès au natif. C’était vrai à l’époque du « managed workflow » et d’Expo Go ; la distinction managed/bare n’existe plus. Un projet Expo moderne est un projet React Native dont les dossiers android et ios sont générés par npx expo prebuild, et dans lequel on ajoute n’importe quelle librairie native ou son propre module Swift/Kotlin. Les projets avec des dossiers natifs committés restent possibles ; on perd seulement la régénération automatique.

Ce qui compte dans un audit : la version du SDK (le champ expo de package.json, puis npx expo-doctor), l’écart entre les versions installées et celles attendues (npx expo install --check), et si les dossiers natifs sont générés ou maintenus à la main. Un SDK en retard de trois versions coûte beaucoup plus à rattraper qu’une mise à jour à chaque release, parce que chaque SDK apporte aussi sa version de React Native et ses changements d’architecture. Le changelog du SDK 58 mentionne par exemple la nouvelle Expo Go limitée au SDK 58, les binaires précompilés d’expo-modules-core sur Android et le découpage des sources iOS en cibles Swift Package Manager.

EAS est à part : c’est un service hébergé, avec ses propres plans tarifaires, et utilisable sans le package expo. Un projet peut très bien utiliser Expo sans EAS (builds locaux ou CI maison) ou EAS sans Expo.

Sources

Les 35 termes du glossaire

Un de ces sujets bloque votre app ?

30 minutes avec un senior pour regarder le problème dans votre code. Gratuit.