Toolbox
If you’d like to dive deeper, here are some of the resources I recommend. They mix general programming best practices with React Native–focused content, so you’ll find both broad concepts and practical, hands-on material for building better apps
Docs & Learn
Foundation
IA & LLMs
Version Manager
Navigation
Data Layer
State Management
- Context API
- Recoil
- React Query
- Zustand
- For handling Store updates - Immer
GraphQL
REST
Databases
...to understand browser storage, you only really need to understand LocalStorage, WebSQL, and IndexedDB
Internationalization
Debug
Testing
- Framework - Jest
- Unit Tests - React Testing Library
- Hooks - React Hooks Testing Library
- E2E/UI - Maestro
- E2E/Functional - Detox
- Coverage - Istanbul
- Extension - Jest matchers to React Native
- Extension - Matching mock function call arguments
Performance
- Perfume.js
- Reassure
- Simulating slow connectivity - Network Link Conditioner
React storage & performance
- IndexedDB, WebSQL, LocalStorage – what blocks the DOM?
- LocalStorage: Short strings, numbers or booleans
- IndexDB: Everything else
- Browser database compariso
Error
Animation
Version Control
Code Tools
Plugins
- GitLens
- ESLint
- Prettier
- React Native Tools
- VSCode Styled Components
- VSCode Icons
- Jest Runner - You can run tests separately
Expo
Styling
Plugins
Blog posts
Useful blogpost references.
React & Related
- React Lifecycle Methods - Diagram - Wojciech Maj
- Loading UX w/ Relay Fragment - Terence Bezman
- Practical React Query - Dominik
Optimization
- Optimizing React Native - Nick Cherry (Coinbase)
- Why We Memo All the Things - Stefano J. Attardi (Coinbase)
- Why Did You Render Mr. Big Pure React Component? - Vitali Zaidman
- Why Did You Render Mr. Big Pure React Component Part 2 - Common Fixing Scenarios - Vitali Zaidman
- One simple trick to optimize React re-renders - Kent C. Dodds
- Our Solution for Measuring React Native Rendering Times - Elvira Burchik (shopify)
- Improving React Interaction Times by 4x - Lukas Kobis
Lists
Audio
Error
- Jenni Nadler - When life gives you lemons, write better error messages
Others
- Tools - Free for developers
- Gamified JavaScript - Checkio
- Useful setup for RN projects
- The exhaustive-deps rule has to be treated seriously
VSCode settings
Open the file .vscode/settings.json
{
...
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
...
}