React Native's new architecture replaces the asynchronous JSON bridge with JSI (JavaScript Interface), enabling synchronous native calls. Turbo Modules provide lazy-loaded native modules, while Fabric is the new C++ rendering system that supports React 18's concurrent features.
0 / 5 completed
1 / 5
What is the JSI (JavaScript Interface) in React Native's new architecture and how does it improve performance?
JSI (JavaScript Interface) replaces the old asynchronous JSON bridge with a C++ host object model that allows JavaScript to hold references to native objects and call their methods synchronously. This eliminates serialization overhead and enables synchronous native API calls.
2 / 5
A React Native developer migrates a native module to the new architecture using Turbo Modules. What key advantage does this provide?
Turbo Modules use JSI to call native code synchronously and support lazy loading — modules are only initialized when first accessed rather than eagerly at app startup. This reduces startup time, especially for apps with many native modules that aren't needed on the first screen.
3 / 5
What is the role of Fabric in React Native's new architecture?
Fabric is the new React Native rendering system that enables concurrent features from React 18 (like transitions and Suspense) in native apps. It implements the shadow tree in C++ and enables synchronous layout measurements, fixing long-standing issues with animation and gesture handling.
4 / 5
A developer defines a Turbo Module spec in a .ts file using TurboModuleRegistry.get(). What is the purpose of the TypeScript spec file?
The TypeScript spec file is used by React Native Codegen to automatically generate native interface boilerplate for iOS (Objective-C/Swift) and Android (Kotlin/Java). This eliminates manual bridge registration code and ensures the native interface matches the JavaScript spec at compile time.
5 / 5
Which React Native new architecture component enables rendering native views without going through the JS thread?
With Fabric's C++ shadow tree, layout calculations and view updates can be performed synchronously on the native thread without waiting for the JS thread. This enables synchronous layout measurements via measure() and eliminates layout jitter during animations and gestures.