Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

react-native-dev — Claude Code skill: what it does, how to install

A React Native and Expo reference set for your agent: routing, lists, animation, state, tests and shipping. Useful when you are building a mobile app and don't want to re-explain the basics.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add MiniMax-AI/skills --skill react-native-dev -a claude-code
Open on GitHub

What react-native-dev does

The skill is a folder of reference files: Expo Router navigation, components, styling, Reanimated 3 animations, state management, forms, networking, performance, testing, native capabilities, and project engineering. Each one covers patterns and pitfalls rather than theory. Short tables sit on top: which component to reach for, what to fix first when frames drop, how to scaffold a fresh app.

Because the agent reads the matching file before writing code, it stops guessing. The preference table says FlashList over FlatList, expo-image over <Image>, Reanimated over the Animated API. There are checklists for a new project and for release: path aliases in tsconfig.json, contentInsetAdjustmentBehavior="automatic" on scroll views, R8 on Android, tests on the paths that matter.

The skill suggests starting with npx expo start in Expo Go. A custom eas build is only needed once the project pulls in local Expo modules or third-party native modules that Expo Go doesn't ship. So early on you can skip it. It also points elsewhere for Flutter (flutter-dev) and native iOS (ios-application-dev).

What it helps with

  • swap FlatList for FlashList on a long scrolling feed
  • set up Expo Router tabs, sheets and modals
  • build a validated multi-step form with React Hook Form and Zod
  • track down dropped frames and memory leaks
  • ship to the App Store and Play Store through EAS

Example prompts for the agent

  • Use the react-native-dev skill to rebuild this product list on FlashList instead of FlatList
  • Review my `app/_layout.tsx` against the navigation reference in react-native-dev
  • Walk the pre-release checklist from react-native-dev and tell me what's still missing

How to install react-native-dev

1Skills CLI (Vercel)

npx skills add MiniMax-AI/skills --skill react-native-dev -a claude-code

2Manually: put the files in place

~/.claude/skills/react-native-dev/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/react-native-dev/

From the same set17

The whole set →
pptx-generator MiniMax-AI A skill to read, edit, and build PowerPoint decks from scratch using PptxGenJS and XML workflows. Useful when generating presentations from code or extracting slide text. Claude Code CX Codex Cursor +1 6,000installs minimax-docx MiniMaxAI A skill for generating, filling and formatting Word documents with OpenXML SDK. Use it when the agent must deliver a .docx, not plain text. Claude Code CX Codex Cursor +1 4,500installs minimax-xlsx MiniMax-AI Skill to create, read, edit, and validate Excel files (.xlsx, .xlsm, .csv, .tsv) directly in code. Use it when you need to build a financial model, add calculated columns, or fix broken formulas while preserving formatting and macros. Claude Code CX Codex Cursor +1 3,800installs minimax-pdf MiniMax-AI Generates professional PDFs with visual identity: reports, resumes, portfolios. Design is derived from document type, with consistent color and typography throughout. Claude Code CX Codex Cursor +1 3,800installs fullstack-dev MiniMax-AI Guides full-stack backend architecture and frontend integration. It enforces a structured checklist from requirement gathering to verification smoke tests. Claude Code CX Codex Cursor +1 3,400installs frontend-dev MiniMax-AI Orchestrates frontend development, motion design, AI-generated media, and conversion copy. Built for landing pages, marketing sites, and dashboards. Claude Code CX Codex Cursor +1 3,200installs vision-analysis MiniMax-AI Describes images, extracts text, and reviews UI mockups using the MiniMax vision MCP tool. Handy when an agent needs to understand a screenshot or design file. Claude Code CX Codex Cursor +1 2,700installs android-native-dev MiniMax-AI Guides AI agents through native Android development: project scaffolding, Gradle setup, Jetpack Compose dependencies, and product flavors. Claude Code CX Codex Cursor +1 2,700installs

Similar

tamagui tamagui Teaches coding agents Tamagui v3 flat style grammar and token conventions. It guides cross-platform UI generation for web and native. Claude Code CX Codex Cursor +1 593installs uniwind uni-stack A skill that hands the agent Uniwind's rules and reference files, so it builds and debugs Tailwind CSS v4 interfaces in React Native instead of guessing APIs. Claude Code CX Codex Cursor +1 4,400installs swiftdata-pro Paul Hudson A skill for writing, reviewing, and improving SwiftData code with modern APIs and best practices. Essential when working with SwiftData-based projects in Swift. Claude Code CX Codex Cursor +1 9,200installs material-3 hamen Walks an AI agent through Material Design 3: dynamic color, Jetpack Compose components, adaptive layout. Use it when a screen has to look like MD3 rather than a rough approximation. Claude Code CX Codex Cursor +1 3,200installs dart-run-static-analysis dart-lang Runs dart analyze to catch errors and dart fix --apply to resolve mechanical linter issues. Helps verify Dart code quality during development and before commits. Claude Code CX Codex Cursor +1 19,000installs vercel-react-native-skills vercel A rules pack for React Native and Expo work: lists, animations, navigation, native modules. Load it so your agent makes mobile changes the same way every time. Claude Code CX Codex Cursor +1 253,900installs animate-expo emilkowalski Builds React Native and Expo animations using Reanimated and Gesture Handler. Helps keep motion on the UI thread and avoid dropped frames on physical devices. Claude Code CX Codex Cursor +1 135,900installs mobile-native emilkowalski Strips the tells that give a web app away on a phone: sticky hover, tap highlight flash, the 100vh bug. Claude Code CX Codex Cursor +1 84,500installs

Questions about react-native-dev

How do I install react-native-dev in Claude Code?

Run npx skills add MiniMax-AI/skills --skill react-native-dev -a claude-code. The skill then lives at ~/.claude/skills/react-native-dev/SKILL.md.

What does react-native-dev do?

It hands the agent ready patterns for React Native and Expo work: routing, lists, data fetching, tests, builds. The agent consults them before writing code in those areas.

Does it cover Flutter or native iOS?

No, it targets React Native and Expo. Flutter is covered by flutter-dev and native iOS by ios-application-dev.

Source text

SKILL.md · MIT
---
name: react-native-dev
description: |
  React Native and Expo development guide covering components, styling, animations, navigation,
  state management, forms, networking, performance optimization, testing, native capabilities,
  and engineering (project structure, deployment, SDK upgrades, CI/CD).
  Use when: building React Native or Expo apps, implementing animations or native UI, managing
  state, fetching data, writing tests, optimizing performance, deploying to App Store/Play Store,
  setting up CI/CD, upgrading Expo SDK, or configuring Tailwind/NativeWind.
license: MIT
metadata:
  version: "1.0.0"
  category: mobile
  sources:
    - expo/skills by Expo (https://github.com/expo/skills) — Native UI, navigation, and animation patterns
    - Expo documentation (docs.expo.dev)
    - React Native documentation (reactnative.dev)
    - EAS (Expo Application Services) documentation
---

# React Native & Expo Development Guide

A practical guide for building production-ready React Native and Expo applications. Covers UI, animations, state, testing, performance, and deployment.

## References

Consult these resources as needed:

- [references/navigation.md](references/navigation.md) — Expo Router: Stack, Tabs, NativeTabs (`headerLargeTitle`, `headerBackButtonDisplayMode`), links, modals, sheets, context menus
- [references/components.md](references/components.md) — FlashList patterns, `expo-image`, safe areas (`contentInsetAdjustmentBehavior`), native controls, blur/glass effects, storage
- [references/styling.md](references/styling.md) — StyleSheet, NativeWind/Tailwind, platform styles, theming, dark mode
- [references/animations.md](references/animations.md) — Reanimated 3: entering/exiting, shared values, gestures, scroll-driven
- [references/state-management.md](references/state-management.md) — Zustand (selectors, persist), Jotai (atoms, derived), React Query, Context
- [references/forms.md](references/forms.md) — React Hook Form + Zod: validation, multi-step, dynamic arrays
- [references/networking.md](references/networking.md) — fetch wrapper, React Query (optimistic updates), auth tokens, offline, API routes, webhooks
- [references/performance.md](references/performance.md) — Profiling workflow, FlashList + `memo`, bundle analysis, TTI, memory leaks, animation perf
- [references/testing.md](references/testing.md) — Jest, React Native Testing Library, E2E with Maestro
- [references/native-capabilities.md](references/native-capabilities.md) — Camera, location, permissions (`use*Permissions` hooks), haptics, notifications, biometrics
- [references/engineering.md](references/engineering.md) — Project layout (`components/ui/`, `stores/`, `services/`), path aliases, SDK upgrades, EAS build/submit, CI/CD, DOM components

## Quick Reference

### Component Preferences

| Purpose | Use | Instead of |
|---------|-----|------------|
| Lists | `FlashList` (`@shopify/flash-list`) + `memo` items | `FlatList` (no view recycling) |
| Images | `expo-image` | RN `<Image>` (no cache, no WebP) |
| Press | `Pressable` | `TouchableOpacity` (legacy) |
| Audio | `expo-audio` | `expo-av` (deprecated) |
| Video | `expo-video` | `expo-av` (deprecated) |
| Animations | Reanimated 3 | RN Animated API (limited) |
| Gestures | Gesture Handler | PanResponder (legacy) |
| Platform check | `process.env.EXPO_OS` | `Platform.OS` |
| Context | `React.use()` | `React.useContext()` (React 18) |
| Safe area scroll | `contentInsetAdjustmentBehavior="automatic"` | `<SafeAreaView>` |
| SF Symbols | `expo-image` with `source="sf:name"` | `expo-symbols` |

### Scaling Up

| Situation | Consider |
|-----------|----------|
| Long lists with scroll jank | Virtualized list libraries (e.g. FlashList) |
| Want Tailwind-style classes | NativeWind v4 |
| High-frequency storage reads | Sync-based storage (e.g. MMKV) |
| New project with Expo | Expo Router over bare React Navigation |

### State Management

| State Type | Solution |
|------------|----------|
| Local UI state | `useState` / `useReducer` |
| Shared app state | Zustand or Jotai |
| Server / async data | React Query |
| Form state | React Hook Form + Zod |

### Performance Priorities

| Priority | Issue | Fix |
|----------|-------|-----|
| CRITICAL | Long list jank | `FlashList` + memoized items |
| CRITICAL | Large bundle | Avoid barrel imports, enable R8 |
| HIGH | Too many re-renders | Zustand selectors, React Compiler |
| HIGH | Slow startup | Disable bundle compression, native nav |
| MEDIUM | Animation drops | Only animate `transform`/`opacity` |

## New Project Init

```bash
# 1. Create project
npx create-expo-app@latest my-app --template blank-typescript
cd my-app

# 2. Install Expo Router + core deps
npx expo install expo-router react-native-safe-area-context react-native-screens

# 3. (Optional) Common extras
npx expo install expo-image react-native-reanimated react-native-gesture-handler
```

Then configure:

1. Set entry point in `package.json`: `"main": "expo-router/entry"`
2. Add scheme in `app.json`: `"scheme": "my-app"`
3. Delete `App.tsx` and `index.ts`
4. Create `app/_layout.tsx` as root Stack layout
5. Create `app/(tabs)/_layout.tsx` for tab navigation
6. Create route files in `app/(tabs)/` (see [navigation.md](references/navigation.md))

For web support, also install: `npx expo install react-native-web react-dom @expo/metro-runtime`

## Core Principles

**Consult references before writing**: when implementing navigation, lists, networking, or project setup, read the matching reference file above for patterns and pitfalls.

**Try Expo Go first** (`npx expo start`). Custom builds (`eas build`) only needed when using local Expo modules, Apple targets, or third-party native modules not in Expo Go.

**Conditional rendering**: use `{count > 0 && <Text />}` not `{count && <Text />}` (renders "0").

**Animation rule**: only animate `transform` and `opacity` — GPU-composited, no layout thrash.

**Imports**: always import directly from source, not barrel files — avoids bundle bloat.

**Lists and images**: before using `FlatList` or RN `Image`, check the Component Preferences table above — `FlashList` and `expo-image` are almost always the right choice.

**Route files**: always use kebab-case, never co-locate components/types/utils in `app/`.

## Checklist

### New Project Setup
- [ ] `tsconfig.json` path aliases configured
- [ ] `EXPO_PUBLIC_API_URL` env var set per environment
- [ ] Root layout has `GestureHandlerRootView` (if using gestures)
- [ ] `contentInsetAdjustmentBehavior="automatic"` on all scroll views
- [ ] `FlashList` instead of `FlatList` for lists > 20 items

### Before Shipping
- [ ] Profile in `--profile` mode, fix frames > 16ms
- [ ] Bundle analyzed (`source-map-explorer`), no barrel imports
- [ ] R8 enabled for Android
- [ ] Unit + component tests for critical paths
- [ ] E2E flows for login, core feature, checkout

---

Flutter development → see `flutter-dev` skill.
iOS native (UIKit/SwiftUI) → see `ios-application-dev` skill.
Android native (Kotlin/Compose) → see `android-native-dev` skill.

*React Native is a trademark of Meta Platforms, Inc. Expo is a trademark of 650 Industries, Inc. All other product names are trademarks of their respective owners.*

© MiniMax-AI · MIT · MiniMax-AI/skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor