Dans une vraie app
Pour un composant natif custom, Fabric change le contrat : les props sont déclarées dans une spec TypeScript, Codegen en génère des structs C++, et un écart entre la spec et la vue native est une erreur de compilation plutôt qu’un bug silencieux en prod. C’est plus de rigueur au départ, mais c’est ce qui rend les crashs « prop undefined côté natif » bien plus rares.
Les pièges typiques se voient sur les librairies qui manipulaient directement la hiérarchie de vues ou s’appuyaient sur UIManager.measure asynchrone. Avec Fabric, measure et measureInWindow lisent le shadow tree C++ au lieu d’interroger la vue native à la frame suivante, et un code qui comptait sur ce délai peut se comporter différemment. Autre point : setNativeProps existe encore mais ne contourne plus le renderer comme avant ; une animation qui en dépendait doit passer par Reanimated ou par le backend d’animation partagé, expérimental depuis la 0.85.1.
En pratique, je regarde si les composants natifs du projet exposent une spec dans codegenConfig, si les warnings « not supported by Fabric » apparaissent dans les logs, et si les libs de la liste (react-native-screens, react-native-svg, cartes, vidéo) sont à une version qui déclare componentDescriptors. Le site reactnative.directory (nouvelle fenêtre) indique le support Fabric par librairie.
Termes liés
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.
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.
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.
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.