๐ฑ 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
Ranked by how often each question comes up in real interviews. #1 is the most common.
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๐