What it covers
Metro Bundler
Cold-start fixes, cache tuning, bundle size reduction, and custom transformer setup.
FlatList / ScrollView
Decision matrix, getItemLayout, window size tuning, and FlashList upgrade path.
Expo vs Bare
Workflow spectrum, CNG, EAS Build, OTA updates, and managed → bare migration steps.
React Navigation
Stack, Tab, and Drawer patterns, deep linking, Android back-button handling, and performance.
Platform-specific code
Platform.OS usage audit, .ios.js/.android.js splits, and platform extension best practices.
Codebase audit
Automated grep patterns to detect common RN anti-patterns across your entire project.
Example use cases
Fix slow Metro cold start
/react-native-best-practices My app takes 40s to cold start in Metro. How do I fix it?
Laggy list of 500 items
/react-native-best-practices My list of 500 items is laggy on Android. Should I use FlatList or ScrollView?
Expo vs bare for production
/react-native-best-practices We need push notifications and a custom Bluetooth module. Should we stay on Expo or eject?
Android back-button navigation bug
/react-native-best-practices Tab bar with nested stack navigators — back button behaves wrong on Android. What's the correct pattern?
Platform-specific code audit
/react-native-best-practices Audit my codebase for Platform.OS usage and recommend .ios.js/.android.js splits.
Reduce 18 MB production bundle
/react-native-best-practices Our production bundle is 18 MB. Walk me through reducing it with Metro config and tree shaking.
New project architecture
/react-native-best-practices Starting a new RN app targeting iOS and Android with offline support. Recommend the stack and navigation structure.
Quick decision tables
FlatList vs ScrollView
| Condition | Use |
|---|---|
| < 20 static items | ScrollView |
| ≥ 20 items | FlatList |
| Unknown / dynamic count | FlatList |
| Infinite scroll / pagination | FlatList |
| Grid layout | FlatList with numColumns |
| > 50 items, complex renderers | FlashList (Shopify) |
Expo workflow
| Scenario | Recommended |
|---|---|
| Prototype / MVP | Expo Go |
| Standard app, no custom native | Expo Managed |
| Need specific native module | Expo Bare (via prebuild) |
| Full native control | Bare React Native |
| Team has no iOS/Android experience | Expo Managed + EAS Build |
| OTA updates required | Expo (expo-updates) |
Installation
Register the mobile-skills marketplace in Claude Code.
/plugin marketplace add petro-nazarenko/mobile-skills
Install the react-native-best-practices plugin from the marketplace.
/plugin install react-native-best-practices@mobile-skills
Run the skill with any React Native question or a description of your problem.
/react-native-best-practices [your question or problem]
Plugin info
| Name | react-native-best-practices |
| Marketplace | mobile-skills |
| Version | 1.0.0 |
| Author | Petro Nazarenko |
| License | MIT |
| Category | mobile |
| Repository | petro-nazarenko/mobile-skills |