← Theory library
React Native theory
Mobile wallets and dApp clients.
Practise in the Code Lab →Easy
- 1. What React Native isA framework for building native mobile apps with React and JavaScript.
- 2. Core componentsView, Text, Image, ScrollView and Pressable.
- 3. StyleSheet and FlexboxStyling with JS objects and a flex-based layout engine.
- 4. Props and compositionPassing data down and composing small components.
- 5. useStateLocal component state.
- 6. useEffectRunning side effects and cleaning them up.
- 7. Lists with FlatListEfficiently rendering long, scrollable data.
- 8. Handling touch inputPressable states and gesture basics.
- 9. Navigation basicsStacks, tabs and screens with React Navigation.
- 10. Platform-specific codeDiverging behavior between iOS and Android.
- 11. Forms and TextInputControlled text input for amounts and addresses.
- 12. Images and assetsLocal vs remote images and resolution variants.
- 13. SafeAreaView and layout edge casesAvoiding notches, status bars and home indicators.
- 14. AsyncStorage and persistenceKey-value storage across app launches.
- 15. Fetching datafetch, loading and error states for on-chain data.
- 16. Context APISharing state without prop drilling.
- 17. useRef and mutable valuesValues that persist without triggering renders.
- 18. Conditional rendering and listsShowing UI based on state and mapping data.
- 19. Environment and configManaging API keys and per-environment settings.
- 20. Debugging toolsMetro, React DevTools, and console logging.
Medium
- 21. useMemo and useCallbackMemoizing values and functions to avoid unnecessary work.
- 22. useReducer for complex stateModeling state transitions explicitly.
- 23. Custom hooksExtracting reusable stateful logic.
- 24. Forms with validationValidating a send-transaction form.
- 25. Modal and overlay patternsConfirmation dialogs and bottom sheets.
- 26. Animations with AnimatedDriving smooth UI transitions.
- 27. Deep linking and universal linksOpening the app from a URL.
- 28. Push notificationsAlerting users to on-chain events.
- 29. Secure storage and biometricsProtecting keys and enabling biometric unlock.
- 30. WalletConnect and mobile dApp flowsConnecting a mobile wallet to a dApp.
- 31. Signing transactions with ethers/viemBuilding and signing transactions in a mobile wallet.
- 32. Testing componentsUnit and component tests with Jest and Testing Library.
- 33. Performance profilingFinding and fixing slow renders.
- 34. Offline support and cachingWorking with intermittent connectivity.
- 35. InternationalizationFormatting numbers, currency and dates for a global audience.
- 36. Error boundaries and crash reportingCatching render errors gracefully.
- 37. Building and releasing (EAS/App Store/Play Store)Getting a build onto real devices and stores.
Hard
- 38. Bridging native modulesExposing native code to JavaScript.
- 39. Hermes and JS enginesUnderstanding what actually runs your JavaScript.
- 40. The new architecture: Fabric and TurboModulesHow rendering and native calls are evolving.
- 41. State management at scale (Zustand/Redux)Choosing and structuring app-wide state.
- 42. Multi-chain abstractionSupporting several chains from one codebase.
- 43. Offline transaction queuingReliable send flows despite flaky connectivity.
- 44. Gas estimation and fee UXPresenting fees clearly and safely.
- 45. Accessibility in mobile appsMaking a wallet usable for everyone.
- 46. Code push and OTA updatesShipping JS fixes without a full app store review.
- 47. Reanimated and workletsHigh-performance gesture-driven animations.
- 48. Monorepo and code sharing with webSharing logic between a React Native app and a web dApp.
- 49. Security review checklist for wallet appsAuditing a mobile wallet before release.
- 50. Capstone: architecting a mobile wallet appPutting the pieces together into one coherent app.