react-native-best-practices
SKILL.md
React Native & Expo Best Practices
Goal: Build "Write Once, Run Everywhere" mobile apps that feel 100% native.
1. Architecture: Expo Router
- File-based Routing: Use
app/directory similar to Next.js. - Linking: Define schemes in
app.jsonfor deep linking. - Layouts: Use
_layout.tsxfor shared navigation wrappers (Stack, Tabs).
2. UI & Styling
- NativeWind: Use
nativewind(Tailwind for RN) for styling. It's faster and more familiar. - FlashList: Replace
FlatListwith Shopify'sFlashListfor 5x performance on long lists. - Safe Area: Always wrap screen content in
SafeAreaView(or use spacing tokens that account for insets).
3. Performance Optimization
- Image Caching: Use
expo-imageinstead of React Native's<Image />.- Features: Blurhash, caching, preloading.
- Reanimated: Use
react-native-reanimatedfor 60fps animations (runs on UI thread), avoiding the JS bridge. - Hermes: Ensure Hermes engine is enabled in
app.jsonfor faster startup and smaller bundle size.
4. Data Management
- TanStack Query (React Query): Standard for async server state. Handle
offlinestatus gracefully. - MMKV: Use
react-native-mmkvfor synchronous local storage (replacing Async Storage). It is ~30x faster.
5. Debugging & Dev Experience
- EAS Build: Use Expo Application Services (EAS) for cloud builds.
- Expo Go: Use for rapid prototyping, but switch to "Development Build" (Prebuild) if adding native modules.
Checklist:
- Is Hermes enabled?
- Are images using
expo-image? - Is navigation handled by Expo Router?
- Are heavy computations moved off the JS thread?
Weekly Installs
3
Repository
dokhacgiakhoa/a…vity-ideGitHub Stars
384
First Seen
Feb 10, 2026
Security Audits
Installed on
amp3
gemini-cli3
antigravity3
github-copilot3
codex3
kimi-cli3