Le glossaire React Native
Les mots qu’on croise dans une codebase React Native ou Expo, définis en quelques lignes, puis ce qu’ils changent dans une vraie app. 35 entrées, chacune avec ses sources.
Architecture
Bridgeless
Le mode d’exécution de la New Architecture où le bridge n’est même plus instancié : tout passe par JSI, Turbo Modules et Fabric.
Codegen
L’outil de build de React Native qui génère le code natif de liaison (C++, Java, Objective-C++) à partir de specs TypeScript ou Flow.
Fabric
Le renderer de la New Architecture : un cœur C++ partagé entre iOS et Android qui calcule le layout de façon synchrone.
JSI (JavaScript Interface)
L’API C++ qui laisse JavaScript tenir des références directes sur des objets natifs, sans sérialisation : la fondation de la New Architecture.
New Architecture
La réécriture du cœur de React Native (Fabric, Turbo Modules, JSI), activée par défaut depuis la 0.76 et seule architecture depuis la 0.82.
Turbo Modules
Les modules natifs de la New Architecture : une spec TypeScript, du code généré par Codegen, et un chargement à la demande via JSI.
Outillage
Config plugin
Une fonction JavaScript déclarée dans app.json qui modifie les projets natifs générés par prebuild (Info.plist, manifest, Gradle, Podfile).
Development build
Un build debug de votre propre app qui embarque expo-dev-client : vos modules natifs, plus un launcher pour se connecter à Metro.
Expo
Le framework open source recommandé par React Native : SDK de modules natifs, CLI, prebuild, Expo Router, et les services cloud EAS.
Expo Go
L’app bac à sable d’Expo, avec un jeu fixe de modules natifs : pour apprendre et prototyper, pas pour produire.
Fast Refresh
Le rechargement à chaud de React Native : une modification de composant est appliquée en une à deux secondes en conservant l’état local.
Metro
Le bundler JavaScript de React Native : il résout, transforme et sérialise votre code en un bundle, et sert le dev server.
Monorepo
Un dépôt avec plusieurs packages liés par les workspaces du gestionnaire de paquets ; à surveiller : Metro, l’autolinking et le hissage des dépendances.
Prebuild (Continuous Native Generation)
La commande Expo qui génère les dossiers android et ios à partir de app.json et des config plugins, au lieu de les maintenir à la main.
React Native DevTools
Le débogueur intégré de React Native depuis la 0.76, basé sur Chrome DevTools : console, points d’arrêt, réseau, profiling, arbre React.
Natif
Autolinking
Le mécanisme qui découvre les librairies natives dans node_modules et les ajoute au Podfile et à Gradle sans édition manuelle.
CocoaPods
Le gestionnaire de dépendances iOS historique de React Native (Podfile, pod install, .xcworkspace), en maintenance et en cours de remplacement par SwiftPM.
Expo Modules API
L’API d’Expo pour écrire des modules et vues natifs en Swift et Kotlin avec un DSL commun, sans Objective-C ni boilerplate de bridge.
Nitro Modules
Le framework de Margelo pour écrire des modules natifs en Swift, Kotlin ou C++ exposés à JavaScript via JSI, avec des bindings générés depuis TypeScript.
Prebuilt (React Native précompilé)
Le cœur de React Native livré en binaires précompilés (XCFrameworks iOS, AAR Android) téléchargés au build, au lieu d’être recompilé depuis les sources.
Swift Package Manager (SwiftPM)
Le gestionnaire de paquets officiel de Swift, intégré à Xcode, que React Native adopte en remplacement de CocoaPods (expérimental en 0.87 et 0.88).
XCFramework
Le format d’Apple pour livrer un framework binaire multi-plateformes (device, simulateur, macOS) en un bundle ; React Native y livre son cœur précompilé.
Build et publication
EAS Build
Le service de build hébergé d’Expo : des profils dans eas.json, la gestion des credentials, et des runners macOS et Linux pour iOS et Android.
OTA update (EAS Update)
Livrer un nouveau bundle JavaScript et ses assets aux apps déjà installées, sans passer par les stores ; EAS Update est le service d’Expo pour ça.
Runtime version
L’identifiant qui garantit qu’une update OTA n’est appliquée qu’aux builds dont le code natif est compatible avec elle.
Performance
Cold start (temps de démarrage)
Le lancement de l’app depuis zéro, processus compris : natif, chargement du bundle, premier rendu React, jusqu’à l’écran utilisable (TTI).
FlashList
La liste de Shopify, remplaçante de FlatList : elle recycle les cellules au lieu de les démonter, et la v2 ne demande plus d’estimation de taille.
Hermes
Le moteur JavaScript de Meta pour React Native, par défaut depuis la 0.70, qui précompile le bundle en bytecode au build.
Worklet
Une petite fonction JavaScript que le plugin Babel de Reanimated extrait pour l’exécuter sur le thread UI, dans un runtime séparé.
Interface
Deep linking
Ouvrir un écran précis de l’app depuis une URL : schéma custom (monapp://) ou lien https vérifié (universal links, App Links).
Expo Router
Le routeur d’Expo basé sur les fichiers : chaque fichier du dossier app devient un écran, avec deep links et routes typées automatiques.
Gesture Handler
La librairie de Software Mansion qui reconnaît les gestes (pan, tap, pinch…) côté natif et les combine, avec des callbacks exécutés sur le thread UI.
React Navigation
La librairie de navigation de référence de React Native : stack, tabs, drawer, avec des écrans natifs via react-native-screens.
Reanimated
La librairie d’animation de Software Mansion qui exécute les animations sur le thread UI via des worklets, sans attendre le thread JavaScript.
Universal links et App Links
Des liens https ordinaires qui ouvrent l’app quand elle est installée, prouvés par un fichier hébergé sur votre domaine (AASA, assetlinks.json).
Un de ces sujets bloque votre app ?
30 minutes avec un senior pour regarder le problème dans votre code. Gratuit.