π± Interview Prep
React Native
Components and styling, the new architecture, hooks, list performance, navigation, native modules, storage, animations, testing and shipping to the app stores.
π Learn it from scratch
Visual, hands-on lessons for every pattern in this topic. Do the lesson, then come back and the questions click.
100 questions, most asked first
Ordered so the most useful questions for learning each pattern come first.
All patternsFundamentalsArchitectureLists & performanceBuild & releaseNavigationState & hooksNative modules & platformNetworking & storageAnimations & gesturesTesting & debuggingSecurity
#1π¬What is React Native, and how is it different from React?FundamentalsEasyFree#2π¬The bridge vs the New Architecture (JSI, Fabric, TurboModules)ArchitectureHardFree#3π¬FlatList vs ScrollViewLists & performanceEasyFree#4π¬Styling and Flexbox in React NativeFundamentalsEasyFree#5π¬Expo vs bare React NativeBuild & releaseEasyFree#6π¬How does navigation work in React Native?NavigationMediumFree#7π¬Avoiding unnecessary re-rendersState & hooksMediumFree#8π¬Writing platform-specific codeNative modules & platformEasyFree#9π¬Storing data on the deviceNetworking & storageMediumFree#10π¬What is Hermes?ArchitectureMediumFreeπUnlock 90 more React Native questions Β· all 1,200 questions for $39/year (about 11Β’ a day)See full access#11π¬The threads of a React Native appArchitectureMediumπ#12π¬Animated vs ReanimatedAnimations & gesturesMediumπ#13π¬useEffect cleanup and subscriptionsState & hooksMediumπ#14π¬Images in React Native appsLists & performanceMediumπ#15π¬Handling the keyboard and safe areasFundamentalsEasyπ#16π¬Handling flaky networks and offline modeNetworking & storageMediumπ#17π¬How push notifications workNative modules & platformMediumπ#18π¬Over-the-air (OTA) updatesBuild & releaseMediumπ#19π¬Debugging a React Native appTesting & debuggingEasyπ#20π¬When and how to write a native moduleNative modules & platformHardπ#21π¬Props vs state, and what triggers a re-renderFundamentalsEasyπ#22π¬The core components and how they map to native viewsFundamentalsEasyπ#23π¬Pressable vs the Touchable componentsFundamentalsEasyπ#24π¬Making a long FlatList fastLists & performanceHardπ#25π¬Choosing a state management approachState & hooksMediumπ#26π¬useMemo and useCallbackState & hooksMediumπ#27π¬Fetching data from an APINetworking & storageEasyπ#28π¬Forms and TextInputFundamentalsEasyπ#29π¬Deep links and universal linksNavigationMediumπ#30π¬Asking for permissionsNative modules & platformEasyπ#31π¬What is useRef for?State & hooksEasyπ#32π¬Writing custom hooksState & hooksMediumπ#33π¬useReducer vs useStateState & hooksMediumπ#34π¬Context and re-render performanceState & hooksHardπ#35π¬Passing params between screens (and typing them)NavigationMediumπ#36π¬Building a login flowNavigationMediumπ#37π¬Storing tokens and secrets securelySecurityMediumπ#38π¬Foreground, background and AppStateNative modules & platformEasyπ#39π¬Supporting phones, tablets and rotationFundamentalsMediumπ#40π¬Accessibility in React NativeFundamentalsMediumπ#41π¬Finding out why an app is slowLists & performanceHardπ#42π¬Improving app start-up timeLists & performanceMediumπ#43π¬Memory leaks in React NativeLists & performanceMediumπ#44π¬Reducing app and bundle sizeBuild & releaseMediumπ#45π¬Grouped lists with SectionListLists & performanceEasyπ#46π¬Infinite scroll and pull-to-refreshLists & performanceMediumπ#47π¬Modals and bottom sheetsNavigationEasyπ#48π¬Gestures with React Native Gesture HandlerAnimations & gesturesMediumπ#49π¬Animating items appearing and disappearingAnimations & gesturesMediumπ#50π¬Unit and component testingTesting & debuggingMediumπ#51π¬End-to-end testing with Detox or MaestroTesting & debuggingMediumπ#52π¬Mocking native modules in JestTesting & debuggingMediumπ#53π¬Error boundaries and crash reportingTesting & debuggingMediumπ#54π¬TypeScript in React NativeFundamentalsEasyπ#55π¬Environments and configurationBuild & releaseMediumπ#56π¬Releasing to the App Store and Google PlayBuild & releaseMediumπ#57π¬Version numbers and build numbersBuild & releaseEasyπ#58π¬CI/CD for a React Native appBuild & releaseMediumπ#59π¬Upgrading React Native versionsBuild & releaseMediumπ#60π¬What does Metro do?ArchitectureEasyπ#61π¬How a component becomes pixels (Fabric and Yoga)ArchitectureHardπ#62π¬useTransition and useDeferredValue in React NativeState & hooksHardπ#63π¬Real-time updates with WebSocketsNetworking & storageMediumπ#64π¬Server-state caching with TanStack QueryNetworking & storageMediumπ#65π¬AsyncStorage vs MMKV vs SQLiteNetworking & storageMediumπ#66π¬Uploading photos and filesNetworking & storageMediumπ#67π¬Camera, photos and mediaNative modules & platformEasyπ#68π¬Running work in the backgroundNative modules & platformHardπ#69π¬Getting the user's locationNative modules & platformMediumπ#70π¬Face ID, Touch ID and fingerprint loginSecurityMediumπ#71π¬Securing network traffic and the app binarySecurityHardπ#72π¬Translations, RTL and localizationFundamentalsMediumπ#73π¬Dark mode and themingFundamentalsEasyπ#74π¬Custom fonts, icons and imagesFundamentalsEasyπ#75π¬Splash screens and app iconsBuild & releaseEasyπ#76π¬Tabs, stacks and nested navigatorsNavigationMediumπ#77π¬The Android back button and gesturesNavigationEasyπ#78π¬File-based routing with Expo RouterNavigationMediumπ#79π¬Sharing code between mobile and webArchitectureMediumπ#80π¬When to use a WebViewNative modules & platformEasyπ#81π¬Why list keys matterLists & performanceEasyπ#82π¬Stale closures in callbacks and intervalsState & hooksMediumπ#83π¬State updates are batchedState & hooksMediumπ#84π¬Search-as-you-type without race conditionsNetworking & storageMediumπ#85π¬Optimistic updatesNetworking & storageMediumπ#86π¬Feature flags, analytics and A/B testsBuild & releaseMediumπ#87π¬In-app purchases and subscriptionsNative modules & platformHardπ#88π¬React Native vs native vs FlutterFundamentalsEasyπ#89π¬Building a reusable component libraryFundamentalsMediumπ#90π¬Migrating an app to the New ArchitectureArchitectureHardπ#91π¬What JSI makes possibleArchitectureHardπ#92π¬Reanimated worklets and shared valuesAnimations & gesturesHardπ#93π¬How FlashList recycles viewsLists & performanceHardπ#94π¬ANRs and native crashesTesting & debuggingMediumπ#95π¬Social login and OAuth with PKCESecurityHardπ#96π¬System design: the mobile side of a chat appArchitectureHardπ#97π¬System design: an offline-first news feedArchitectureHardπ#98π¬Structuring a large React Native codebaseFundamentalsMediumπ#99π¬Avoiding App Store and Play Store rejectionsBuild & releaseMediumπ#100π¬What do you look for when reviewing a React Native PR?FundamentalsMediumπ