Build production React Native apps with Expo, navigation

React native architecture

by wshobson · MIT license · ★ 39,857 on GitHub · updated Sep 21

React native architecture cover

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 Codenpx skills add wshobson/agents --skill react-native-architecture -g -a claude-code
Claude 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-architecture
Windows (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" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md3.5 KB
  • references/1 file · 13.4 KB
Read the files here
wshobson/4236bb92 files
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---
2name: react-native-architecture
3description: 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 
8Production-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```
24src/
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```bash
52# Create new Expo project
53npx create-expo-app@latest my-app -t expo-template-blank-typescript
54 
55# Install essential dependencies
56npx expo install expo-router expo-status-bar react-native-safe-area-context
57npx expo install @react-native-async-storage/async-storage
58npx expo install expo-secure-store expo-haptics
59```
60 
61```typescript
62// app/_layout.tsx
63import { Stack } from 'expo-router'
64import { ThemeProvider } from '@/providers/ThemeProvider'
65import { QueryProvider } from '@/providers/QueryProvider'
66 
67export 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 
84Detailed 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 
View all files on GitHub →

Details

Updated
Sep 21, 2026
License
MIT
Stars on the repo
★ 39,857
Checked
Source
wshobson/agents ↗
Creator
wshobson · 179 listings
View creator

Similar skills

See all →
SkillEntry point and router for every Expo or EAS task`expo-overview` — router & shared rules for Expo / EASexpo/skills · by expoEntry point and router for every Expo or EAS task. Load this skill first — before writing code and before choosing another expo-* / eas-* skill — when the request, PRD, or spec mentions Expo, EAS, Expo Go, or an expo-* package, or the project has an `expo` dependency in `package.json`. Within that gate it also covers app specs and designs to implement (tabs, stacks, maps, lists, navigation, building from a screenshot), and phrasings like 'implement a mobile app', 'make my app look native', 'add navigation', 'fetch some data', 'upgrade my SDK', 'add Expo to my existing native app', 'ship to the App Store', or 'I'm new to Expo, where do I start'. A fully specified request (SDK pinned, libraries named, layout given) still routes through here — the shared setup rules still apply. Do NOT load it when neither signal is present: a bare React Native project with no `expo` dependency is not Expo work. Detects the real goal, routes to the right expo-* / eas-* skill, and owns the shared setup rules.★ 2.7k GitHub starsSkillAdd an iOS App Clip target to an Expo appAdd an App Clip to an Expo Appexpo/skills · by expoAdd an iOS App Clip target to an Expo app. Use when the user mentions App Clip, AASA, apple-app-site-association, appclips, smart app banner, or wants to ship a lightweight iOS Clip invoked from a URL alongside their parent app.★ 2.7k GitHub starsSkillBuild and submit iOS and Android apps with EAS to TestFlightApp Store Deploymentexpo/skills · by expoBuild and submit iOS and Android apps with EAS to TestFlight, the App Store, or Google Play. Supports Expo and other React Native projects, plus existing native apps. Use for eas.json setup, release pipelines, signing, app versions and build numbers, store submissions, and listing metadata. For Expo websites and API routes, use eas-hosting; for adding React Native screens to a native app, use expo-brownfield.★ 2.7k GitHub starsSkillDesigns with sleekDesigning with Sleeksleekdotdesign/agent-skills · by sleekdotdesignUse when the user wants to design a mobile app or UI screens, when they mention their Sleek (sleek.design) projects, or when implementing Sleek designs in code (HTML, React Native, SwiftUI).★ 583 GitHub starsPromptCreate an advanced music app for Android with featuresBuild an advanced music app for androidf/prompts.chat · by Sami KhanCreate an advanced music app for Android with features similar to Blooome.New listingPromptAct as an expert mobile application developer with masteryMobile app builderf/prompts.chat · by Ersin YılmazAct as an expert mobile application developer with mastery of iOS, Android, and cross-platform development. Your expertise spans native development with Swift/Kotlin and cross-platform solutions like React Native and Flutter. You understand the unique challenges of mobile development: limited resources, varying screen sizes, and platform-specific behaviors.New listing

More from wshobson

SkillMaster C/.NET backend development patterns for buildingwshobson/agents · by wshobsonMaster C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.★ 39.9k GitHub starsSkillImplement WCAG 2.2 compliant interfaces with mobileAccessibility compliancewshobson/agents · by wshobsonImplement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.★ 39.9k GitHub starsSkillMaster Material Design 3 and Jetpack Compose patternsAndroid Mobile Designwshobson/agents · by wshobsonMaster Material Design 3 and Jetpack Compose patterns for building native Android apps. Use when designing Android interfaces, implementing Compose UI, or following Google's Material Design guidelines.★ 39.9k GitHub starsSkillMigrate from AngularJS to Angular using hybrid modeAngular migrationwshobson/agents · by wshobsonMigrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.★ 39.9k GitHub starsSkillUnderstand anti-reversing, obfuscationAnti reversing techniqueswshobson/agents · by wshobsonUnderstand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.★ 39.9k GitHub starsSkillBuild production Apache Airflow DAGs with best practicesApache Airflow DAG Patternswshobson/agents · by wshobsonBuild production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.★ 39.9k GitHub stars