Dans une vraie app
Pour voir si un projet en profite, pod install affiche le téléchargement des artefacts ReactNativeCore et ReactNativeDependencies, et ios/Pods contient des .xcframework au lieu d’arborescences de sources sous React-Core. RCT_USE_PREBUILT_RNCORE=0 bundle exec pod install revient aux sources ; c’est obligatoire pour patch-package sur le cœur, pour RCT_REMOVE_LEGACY_ARCH=0, et pour revenir à l’ancien Hermes. Depuis la 0.88, les artefacts sont téléchargés d’abord depuis le miroir Maven de React Native, puis depuis Maven Central en secours, ce qui compte derrière un proxy d’entreprise où une des deux sources peut être bloquée.
Le gain annoncé est élevé : les notes de la 0.81 parlent de temps de compilation divisés jusqu’à 10 sur iOS. Expo donne un chiffre pour Android : sur un projet SDK 58 vierge, un build debug propre pour les quatre ABI passe d’environ 80 à 39 secondes sur un M3 Pro. Les builds incrémentaux, eux, changent peu. Le plus gros bénéfice se voit en CI, où chaque build part d’un cache vide, et sur les machines des développeurs qui touchent rarement au natif.
Ce que je vérifie : que la CI ne force pas RCT_USE_PREBUILT_RNCORE=0 sans raison documentée, que le cache CI ne stocke pas des XCFrameworks d’une version précédente de React Native (hash sur Podfile.lock), et sur Android que android.buildExpoModulesCoreFromSource n’est pas activé par un ancien contournement.
Termes liés
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é.
CocoaPods
Le gestionnaire de dépendances iOS historique de React Native (Podfile, pod install, .xcworkspace), en maintenance et en cours de remplacement par SwiftPM.
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.
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).
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.