1. What is a Native Module?
AdvancedAnswer: Bridge connecting JavaScript to native code
Native Modules bridge JavaScript and native code (Java/Kotlin for Android, Objective-C/Swift for iOS). Access platform APIs not exposed to JavaScript.
24 questions that come up in React Native technical interviews, each with the answer and an explanation of why it is right.
Test yourself — 90 question bankAnswer: Bridge connecting JavaScript to native code
Native Modules bridge JavaScript and native code (Java/Kotlin for Android, Objective-C/Swift for iOS). Access platform APIs not exposed to JavaScript.
Answer: Navigation library for routing and navigation
React Navigation is the most popular navigation library for React Native. Provides stack, tab, drawer navigation and more.
Answer: Framework for building mobile apps using React
React Native is a framework developed by Facebook for building native mobile applications using React and JavaScript. Write once, run on iOS and Android.
Answer: Write native code and register with React Native bridge
Create native code (Java/Kotlin/ObjC/Swift), implement required methods, register with React Native bridge. Expose to JavaScript via NativeModules.
Answer: Manages screen stack with push/pop transitions
Stack Navigator manages screen history as a stack. Push new screens, pop to go back. Provides native transitions and gestures.
Answer: JavaScript/TypeScript
React Native primarily uses JavaScript or TypeScript. The code is then compiled to native components for iOS and Android.
Answer: All of the above
Multiple ways: npx react-native init (bare React Native), expo init (Expo framework), or npx create-expo-app. Each has different use cases.
Answer: New native module system with better performance
Turbo Modules is the new native module system in React Native. Lazy loading, better type safety, improved performance. Part of new architecture.
Answer: Hook for managing component state
useState is a React hook for managing component state. Returns current state and setter function: const [state, setState] = useState(initialValue).
Answer: New rendering system for React Native
Fabric is the new rendering system replacing the old bridge. Enables concurrent features, better performance, and synchronous layout. Part of new architecture.
Answer: React is for web, React Native is for mobile
React is for building web applications using HTML/CSS. React Native is for building mobile applications using native components.
Answer: Allows direct JavaScript-native communication
JSI allows JavaScript to directly invoke native code without bridge serialization. Foundation of Turbo Modules and Fabric. Much faster than old bridge.
Answer: Hook for side effects like data fetching
useEffect handles side effects (data fetching, subscriptions, DOM updates). Runs after render. Use dependency array to control when it runs.
Answer: Container component like div in web
View is the most fundamental component, similar to div in web. It is a container that supports layout, styling, touch handling, and accessibility.
Answer: Accesses context values without Consumer
useContext accesses context values without Consumer component. Cleaner syntax: const value = useContext(MyContext). For sharing global state.
Answer: Component for displaying text
Text component displays text content. All text must be wrapped in Text component. Supports styling, nesting, and touch handling.
Answer: JavaScript engine optimized for React Native
Hermes is JavaScript engine optimized for React Native. Reduces app size, improves startup time, lowers memory usage. Developed by Facebook.
Answer: Both b and c
Use StyleSheet.create() for performance or inline style objects. No CSS files. Styles use JavaScript objects with camelCase properties.
Answer: Persistent key-value storage for mobile
AsyncStorage provides persistent, asynchronous key-value storage. Like localStorage but async. Use @react-native-async-storage/async-storage package.
Answer: OTA updates without app store approval
CodePush enables over-the-air updates for JavaScript/assets without app store approval. By Microsoft App Center. Quick bug fixes and feature updates.
Answer: Creates optimized style objects
StyleSheet.create() creates optimized style objects. Validates styles, provides better performance than inline styles, and enables style reuse.
Answer: Use FlatList, optimize images, minimize re-renders, use native driver
Optimize performance: use FlatList for lists, optimize images (size, caching), memo/useCallback to minimize re-renders, use native driver for animations, Hermes engine.
Answer: Built-in library for creating smooth animations
Animated API creates smooth, performant animations. Use Animated.Value, Animated.timing(), Animated.spring(). Supports native driver for better performance.
Answer: Animates layout changes automatically
LayoutAnimation automatically animates layout changes. Call LayoutAnimation.configureNext() before setState. Simple but less control than Animated.
The full React Native bank has 90 questions across 3 difficulty levels — timed, shuffled, and scored.
Take the React Native quiz