Intermediate everything in React Native, page 2
CodeGen and Typed Scaffolding in the New Architecture
It reads typed JS specs and generates native interfaces at build time so JS and native agree on types, avoiding runtime checks and giving compile-time safety.
How Fabric Improves Rendering Over the Old UIManager
A C++ shadow tree shared across threads, JSI-based synchronous access, immutable tree commits, and support for concurrent React features.
Why the New Architecture Replaced the Bridge
The old bridge was async, serialized to JSON, and a single batched channel causing latency; JSI replaces it with direct synchronous C++ interop.
ViewManager and Exposing Native Component Props
The ViewManager creates the native view and maps it to a JS component; you expose props with a prop-setter that receives the value when the prop changes.
Returning a Promise from a Native Module Method
The exported method takes resolve and reject as its last parameters; do the async work off the main thread, then settle exactly once with a result or an error.
Draggable Snap-Back Card with Gesture Handler and Reanimated
Shared values track offset, a Pan gesture updates them on the UI thread, an animated style applies translation, onEnd springs back to zero.
Fetching REST Data with Loading and Error State
Track loading, data, and error; fetch in an effect, check response.ok, parse JSON, handle catch and finally.
Why react-native-gesture-handler Replaces the Responder System
The JS responder system runs on the JS thread so gestures lag under load; gesture-handler runs recognition natively for smooth, reliable gestures.
Debouncing a Search TextInput with Hooks
Keep input in state, in an effect set a timer that fires the search after a delay, clear the timer on each change so only the final pause triggers the call.
Responsive Layouts with Core React Native APIs
Lean on flexbox, percentage sizing, useWindowDimensions, SafeAreaView, and Platform; recompute on dimension change.
JSI, Fabric, and TurboModules in the New Architecture
JSI gives JS direct synchronous access to native via C++, Fabric is the new renderer, TurboModules lazy-load native modules.
StyleSheet.create and Inline Style Tradeoffs
Styles are JS objects of subset-CSS properties; StyleSheet.create validates them and yields stable references, while inline objects allocate each render.
CI/CD Pipeline for React Native to TestFlight and Play
A triggered workflow installs deps, builds signed artifacts on macOS and Linux runners, uploads via Fastlane to TestFlight and the Play internal track.
Over-the-Air Updates for JavaScript-Only Fixes
Ship a new JS bundle the app downloads at runtime and applies on next launch, with no store review.
Android App Bundles versus Universal APKs
An AAB is an upload format; Play generates per-device APKs via dynamic delivery, shrinking download size.
RNTL or Detox for a navigation flow?
RNTL can test navigation logic by rendering the navigator in JS and asserting screen changes; Detox runs the real app for true end-to-end confidence including native transitions.
What does 'test behavior, not implementation' mean?
Query elements the way a user finds them (text, role, label) and assert observable behavior; for a Button, fire press and assert the visible effect, not internal state.
How do you test a component using a native module?
Native code is absent in the Node-based Jest environment, so you mock the module with jest.mock to return fake values, often via the library's provided jest mock.
How do you mock a fetch call in Jest tests?
Replace global fetch with a Jest mock or a library like jest-fetch-mock, return a resolved Promise with a fake Response, and reset mocks between tests.
What do the spec file and CodeGen do in migration?
The spec file declares the component's typed props and events; CodeGen reads it at build time to generate type-safe C++/native and JS glue, catching mismatches early.
We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.
See open roles