← All topics

πŸ“± 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.

#6How does navigation work in React Native?NavigationMediumFree#7Avoiding unnecessary re-rendersState & hooksMediumFree#9Storing data on the deviceNetworking & storageMediumFree#10What is Hermes?ArchitectureMediumFreeUnlock 51 more React Native questions Β· all 1,200 questions for $39/year (about 11Β’ a day)See full access#11The threads of a React Native appArchitectureMediumπŸ”’#12Animated vs ReanimatedAnimations & gesturesMediumπŸ”’#13useEffect cleanup and subscriptionsState & hooksMediumπŸ”’#14Images in React Native appsLists & performanceMediumπŸ”’#16Handling flaky networks and offline modeNetworking & storageMediumπŸ”’#17How push notifications workNative modules & platformMediumπŸ”’#18Over-the-air (OTA) updatesBuild & releaseMediumπŸ”’#25Choosing a state management approachState & hooksMediumπŸ”’#26useMemo and useCallbackState & hooksMediumπŸ”’#29Deep links and universal linksNavigationMediumπŸ”’#32Writing custom hooksState & hooksMediumπŸ”’#33useReducer vs useStateState & hooksMediumπŸ”’#35Passing params between screens (and typing them)NavigationMediumπŸ”’#36Building a login flowNavigationMediumπŸ”’#37Storing tokens and secrets securelySecurityMediumπŸ”’#39Supporting phones, tablets and rotationFundamentalsMediumπŸ”’#40Accessibility in React NativeFundamentalsMediumπŸ”’#42Improving app start-up timeLists & performanceMediumπŸ”’#43Memory leaks in React NativeLists & performanceMediumπŸ”’#44Reducing app and bundle sizeBuild & releaseMediumπŸ”’#46Infinite scroll and pull-to-refreshLists & performanceMediumπŸ”’#48Gestures with React Native Gesture HandlerAnimations & gesturesMediumπŸ”’#49Animating items appearing and disappearingAnimations & gesturesMediumπŸ”’#50Unit and component testingTesting & debuggingMediumπŸ”’#51End-to-end testing with Detox or MaestroTesting & debuggingMediumπŸ”’#52Mocking native modules in JestTesting & debuggingMediumπŸ”’#53Error boundaries and crash reportingTesting & debuggingMediumπŸ”’#55Environments and configurationBuild & releaseMediumπŸ”’#56Releasing to the App Store and Google PlayBuild & releaseMediumπŸ”’#58CI/CD for a React Native appBuild & releaseMediumπŸ”’#59Upgrading React Native versionsBuild & releaseMediumπŸ”’#63Real-time updates with WebSocketsNetworking & storageMediumπŸ”’#64Server-state caching with TanStack QueryNetworking & storageMediumπŸ”’#65AsyncStorage vs MMKV vs SQLiteNetworking & storageMediumπŸ”’#66Uploading photos and filesNetworking & storageMediumπŸ”’#69Getting the user's locationNative modules & platformMediumπŸ”’#70Face ID, Touch ID and fingerprint loginSecurityMediumπŸ”’#72Translations, RTL and localizationFundamentalsMediumπŸ”’#76Tabs, stacks and nested navigatorsNavigationMediumπŸ”’#78File-based routing with Expo RouterNavigationMediumπŸ”’#79Sharing code between mobile and webArchitectureMediumπŸ”’#82Stale closures in callbacks and intervalsState & hooksMediumπŸ”’#83State updates are batchedState & hooksMediumπŸ”’#84Search-as-you-type without race conditionsNetworking & storageMediumπŸ”’#85Optimistic updatesNetworking & storageMediumπŸ”’#86Feature flags, analytics and A/B testsBuild & releaseMediumπŸ”’#89Building a reusable component libraryFundamentalsMediumπŸ”’#94ANRs and native crashesTesting & debuggingMediumπŸ”’#98Structuring a large React Native codebaseFundamentalsMediumπŸ”’#99Avoiding App Store and Play Store rejectionsBuild & releaseMediumπŸ”’#100What do you look for when reviewing a React Native PR?FundamentalsMediumπŸ”’