react-native-dev — скилл для Claude Code: что делает и как установить
Справочник по React Native и Expo для агента: навигация, списки, анимации, состояние, тесты и сборка. Полезен, когда пишете мобильное приложение и не хотите объяснять агенту базу.
npx skills add MiniMax-AI/skills --skill react-native-dev -a claude-codeЧто делает react-native-dev
Скилл даёт агенту набор файлов в references/: навигация на Expo Router, компоненты, стили, анимации на Reanimated 3, управление состоянием, формы, сеть, производительность, тесты, нативные возможности и инженерия проекта. Плюс короткие таблицы. Что брать вместо чего, какие узкие места в производительности закрывать первыми, как завести новое приложение.
Агенту не приходится объяснять основы: перед кодом он открывает нужный файл. Таблица предпочтений говорит брать FlashList вместо FlatList, expo-image вместо <Image>, Reanimated вместо Animated API. Есть чек-лист к старту проекта и к релизу: алиасы путей в tsconfig.json, contentInsetAdjustmentBehavior="automatic" на скроллах, R8 для Android, тесты критичных сценариев.
Скилл советует начать с npx expo start в Expo Go. Кастомная сборка через eas build нужна, только если в проекте есть локальные Expo-модули или сторонние нативные модули, которых в Expo Go нет. То есть на старте вы, скорее всего, обойдётесь без неё. Для Flutter скилл отсылает к flutter-dev, для нативной iOS — к ios-application-dev.
Какие задачи решает
- выбрать
FlashListиexpo-imageвместо легаси-компонентов - собрать навигацию на Expo Router с вкладками и модалками
- написать форму с валидацией на React Hook Form и Zod
- профилировать просадки кадров и утечки памяти
- выпустить сборку через EAS и настроить CI/CD
Примеры запросов агенту
- Возьми скилл react-native-dev и собери экран со списком товаров на FlashList, без FlatList
- Проверь мой `app/_layout.tsx` по справочнику навигации из react-native-dev
- По чек-листу перед релизом из react-native-dev пройдись по проекту и скажи, что не готово
Как установить react-native-dev
1Через Skills CLI (Vercel)
npx skills add MiniMax-AI/skills --skill react-native-dev -a claude-code2Вручную: положить файлы
~/.claude/skills/react-native-dev/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/react-native-dev/
1Через Skills CLI (Vercel)
npx skills add MiniMax-AI/skills --skill react-native-dev -a codex2Вручную: положить файлы
.agents/skills/react-native-dev/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add MiniMax-AI/skills --skill react-native-dev -a cursor2Вручную: положить файлы
.cursor/skills/react-native-dev/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install MiniMax-AI/skills react-native-dev2Вручную: положить файлы
.github/skills/react-native-dev/SKILL.md1Через Skills CLI (Vercel)
npx skills add MiniMax-AI/skills --skill react-native-dev -a gemini-cli2Командой платформы
gemini skills install https://github.com/MiniMax-AI/skills --path skills/react-native-devВручную: положить файлы
.devin/skills/react-native-dev/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add MiniMax-AI/skills --skill react-native-dev -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора17
Весь набор →Похожие
Вопросы о react-native-dev
Как установить react-native-dev в Claude Code?
Одной командой: npx skills add MiniMax-AI/skills --skill react-native-dev -a claude-code. После неё файл скилла лежит по пути ~/.claude/skills/react-native-dev/SKILL.md.
Что делает react-native-dev?
Даёт агенту готовые образцы кода и разбор подводных камней по React Native и Expo. Он сверяется с ними, когда пишет навигацию, списки, сетевой слой или тесты.
Скилл подойдёт для Flutter или нативной iOS?
Нет, он про React Native и Expo. Для Flutter есть flutter-dev, для нативной iOS — ios-application-dev.
Исходный текст
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