Build production React Native apps with Expo, navigation
React native architecture

Build production React Native apps with Expo, navigation, native modules, offline sync, and cross-platform patterns. Use when developing mobile apps, implementing native integrations, or architecting React Native projects.
--- name: react-native-architecture description: Build production React Native apps with Expo, navigation, native modules, offline sync, and cross-platform patterns. Use when developing mobile apps, implementing native integrations, or architecting React Native projects. --- # React Native Architecture Production-ready patterns for React Native development with Expo, including navigation, state management, native modules, and offline-first architecture. ## When to Use This Skill - Starting a new React Native or Expo project - Implementing complex navigation patterns - Integrating native modules and platform APIs - Building offline-first mobile applications - Optimizing React Native performance - Setting up CI/CD for mobile releases
Overview
Production-ready patterns for React Native development with Expo, including navigation, state management, native modules, and offline-first architecture.
Manual install (npx, ZIP)
Claude Code
npx skills add wshobson/agents --skill react-native-architecture -g -a claude-codeClaude Code (manual)
mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/wshobson/agents/tar.gz/4236bb91f839 \
| tar -xz -C ~/.claude/skills --strip-components=4 agents-4236bb91f839/plugins/frontend-mobile-development/skills/react-native-architectureWindows (PowerShell)
New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/9ca499bc23829d8f5b07/react-native-architecture.zip" -OutFile "$env:TEMP\react-native-architecture.zip"; Expand-Archive "$env:TEMP\react-native-architecture.zip" -DestinationPath "$HOME\.claude\skills" -ForceClaude.ai / desktop
Codex, Cursor, other agents
Connects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md3.5 KBreferences/1 file · 13.4 KB
Read the files here
SKILL.md
Show the full text103 lines
React Native Architecture
Production-ready patterns for React Native development with Expo, including navigation, state management, native modules, and offline-first architecture.
When to Use This Skill
- Starting a new React Native or Expo project
- Implementing complex navigation patterns
- Integrating native modules and platform APIs
- Building offline-first mobile applications
- Optimizing React Native performance
- Setting up CI/CD for mobile releases
Core Concepts
1. Project Structure
src/
├── app/ # Expo Router screens
│ ├── (auth)/ # Auth group
│ ├── (tabs)/ # Tab navigation
│ └── _layout.tsx # Root layout
├── components/
│ ├── ui/ # Reusable UI components
│ └── features/ # Feature-specific components
├── hooks/ # Custom hooks
├── services/ # API and native services
├── stores/ # State management
├── utils/ # Utilities
└── types/ # TypeScript types
2. Expo vs Bare React Native
| Feature | Expo | Bare RN |
|---|---|---|
| Setup complexity | Low | High |
| Native modules | EAS Build | Manual linking |
| OTA updates | Built-in | Manual setup |
| Build service | EAS | Custom CI |
| Custom native code | Config plugins | Direct access |
Quick Start
# Create new Expo project
npx create-expo-app@latest my-app -t expo-template-blank-typescript
# Install essential dependencies
npx expo install expo-router expo-status-bar react-native-safe-area-context
npx expo install @react-native-async-storage/async-storage
npx expo install expo-secure-store expo-haptics
// app/_layout.tsx
import { Stack } from 'expo-router'
import { ThemeProvider } from '@/providers/ThemeProvider'
import { QueryProvider } from '@/providers/QueryProvider'
export default function RootLayout() {
return (
<QueryProvider>
<ThemeProvider>
<Stack screenOptions={{ headerShown: false }}>
<Stack.Screen name="(tabs)" />
<Stack.Screen name="(auth)" />
<Stack.Screen name="modal" options={{ presentation: 'modal' }} />
</Stack>
</ThemeProvider>
</QueryProvider>
)
}
Detailed patterns and worked examples
Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.
Best Practices
Do's
- Use Expo - Faster development, OTA updates, managed native code
- FlashList over FlatList - Better performance for long lists
- Memoize components - Prevent unnecessary re-renders
- Use Reanimated - 60fps animations on native thread
- Test on real devices - Simulators miss real-world issues
Don'ts
- Don't inline styles - Use StyleSheet.create for performance
- Don't fetch in render - Use useEffect or React Query
- Don't ignore platform differences - Test on both iOS and Android
- Don't store secrets in code - Use environment variables
- Don't skip error boundaries - Mobile crashes are unforgiving
| 1 | |
| 2 | name react-native-architecture |
| 3 | description Build production React Native apps with Expo, navigation, native modules, offline sync, and cross-platform patterns. Use when developing mobile apps, implementing native integrations, or architecting React Native projects. |
| 4 | |
| 5 | |
| 6 | # React Native Architecture |
| 7 | |
| 8 | Production-ready patterns for React Native development with Expo, including navigation, state management, native modules, and offline-first architecture. |
| 9 | |
| 10 | ## When to Use This Skill |
| 11 | |
| 12 | Starting a new React Native or Expo project |
| 13 | Implementing complex navigation patterns |
| 14 | Integrating native modules and platform APIs |
| 15 | Building offline-first mobile applications |
| 16 | Optimizing React Native performance |
| 17 | Setting up CI/CD for mobile releases |
| 18 | |
| 19 | ## Core Concepts |
| 20 | |
| 21 | ### 1. Project Structure |
| 22 | |
| 23 | |
| 24 | src/ |
| 25 | ├── app/ # Expo Router screens |
| 26 | │ ├── (auth)/ # Auth group |
| 27 | │ ├── (tabs)/ # Tab navigation |
| 28 | │ └── _layout.tsx # Root layout |
| 29 | ├── components/ |
| 30 | │ ├── ui/ # Reusable UI components |
| 31 | │ └── features/ # Feature-specific components |
| 32 | ├── hooks/ # Custom hooks |
| 33 | ├── services/ # API and native services |
| 34 | ├── stores/ # State management |
| 35 | ├── utils/ # Utilities |
| 36 | └── types/ # TypeScript types |
| 37 | |
| 38 | |
| 39 | ### 2. Expo vs Bare React Native |
| 40 | |
| 41 | | Feature | Expo | Bare RN | |
| 42 | | ------------------ | -------------- | -------------- | |
| 43 | | Setup complexity | Low | High | |
| 44 | | Native modules | EAS Build | Manual linking | |
| 45 | | OTA updates | Built-in | Manual setup | |
| 46 | | Build service | EAS | Custom CI | |
| 47 | | Custom native code | Config plugins | Direct access | |
| 48 | |
| 49 | ## Quick Start |
| 50 | |
| 51 | |
| 52 | # Create new Expo project |
| 53 | npx create-expo-app@latest my-app -t expo-template-blank-typescript |
| 54 | |
| 55 | # Install essential dependencies |
| 56 | npx expo install expo-router expo-status-bar react-native-safe-area-context |
| 57 | npx expo install @react-native-async-storage/async-storage |
| 58 | npx expo install expo-secure-store expo-haptics |
| 59 | |
| 60 | |
| 61 | |
| 62 | // app/_layout.tsx |
| 63 | import { Stack } from 'expo-router' |
| 64 | import { ThemeProvider } from '@/providers/ThemeProvider' |
| 65 | import { QueryProvider } from '@/providers/QueryProvider' |
| 66 | |
| 67 | export default function RootLayout() { |
| 68 | return ( |
| 69 | <QueryProvider> |
| 70 | <ThemeProvider> |
| 71 | <Stack screenOptions={{ headerShown: false }}> |
| 72 | <Stack.Screen name="(tabs)" /> |
| 73 | <Stack.Screen name="(auth)" /> |
| 74 | <Stack.Screen name="modal" options={{ presentation: 'modal' }} /> |
| 75 | </Stack> |
| 76 | </ThemeProvider> |
| 77 | </QueryProvider> |
| 78 | ) |
| 79 | } |
| 80 | |
| 81 | |
| 82 | ## Detailed patterns and worked examples |
| 83 | |
| 84 | Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient. |
| 85 | |
| 86 | ## Best Practices |
| 87 | |
| 88 | ### Do's |
| 89 | |
| 90 | **Use Expo** - Faster development, OTA updates, managed native code |
| 91 | **FlashList over FlatList** - Better performance for long lists |
| 92 | **Memoize components** - Prevent unnecessary re-renders |
| 93 | **Use Reanimated** - 60fps animations on native thread |
| 94 | **Test on real devices** - Simulators miss real-world issues |
| 95 | |
| 96 | ### Don'ts |
| 97 | |
| 98 | **Don't inline styles** - Use StyleSheet.create for performance |
| 99 | **Don't fetch in render** - Use useEffect or React Query |
| 100 | **Don't ignore platform differences** - Test on both iOS and Android |
| 101 | **Don't store secrets in code** - Use environment variables |
| 102 | **Don't skip error boundaries** - Mobile crashes are unforgiving |
| 103 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 39,857
- Checked
- Source
- wshobson/agents ↗
- Creator
- wshobson · 179 listings
Similar skills
See all →
SkillEntry point and router for every Expo or EAS task`expo-overview` — router & shared rules for Expo / EAS
SkillAdd an iOS App Clip target to an Expo appAdd an App Clip to an Expo App
SkillBuild and submit iOS and Android apps with EAS to TestFlightApp Store Deployment
SkillDesigns with sleekDesigning with Sleek
PromptCreate an advanced music app for Android with featuresBuild an advanced music app for android
PromptAct as an expert mobile application developer with masteryMobile app builderMore from wshobson
SkillMaster C/.NET backend development patterns for building
SkillImplement WCAG 2.2 compliant interfaces with mobileAccessibility compliance
SkillMaster Material Design 3 and Jetpack Compose patternsAndroid Mobile Design
SkillMigrate from AngularJS to Angular using hybrid modeAngular migration
SkillUnderstand anti-reversing, obfuscationAnti reversing techniques
SkillBuild production Apache Airflow DAGs with best practicesApache Airflow DAG Patterns