mcpField
R
react-native

react-native

github.com/oakossDevelopment21111 installsUpdated 12w ago
Repository

About react-native

A skill for building React Native apps with Expo from a TypeScript codebase, targeting iOS, Android, and web. It covers file-based routing, cloud builds and updates, and native device APIs such as camera and notifications.

Key features

  1. 01Set up file-based routing with Expo Router
  2. 02Build and submit apps with EAS
  3. 03Publish JavaScript OTA updates
  4. 04Integrate camera, notifications, and haptics
  5. 05Handle platform differences and native modules

Use cases

  1. 01Develop apps for iOS and Android
  2. 02Build universal apps with web support
  3. 03Set up app-store build and submission workflows
  4. 04Add camera or push notification features

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/oakoss/agent-skills --skill react-native

After installing, type/react-nativein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
app-configuration.md
core-patterns.md
device-apis.md
eas-workflows.md
expo-router.md
native-modules.md
nativewind.md
performance-patterns.md

Details

From the project README

React Native with Expo

Overview

Expo is an open-source framework for building universal native apps with React Native from a single TypeScript codebase. It provides file-based routing (Expo Router), cloud build services (EAS Build/Submit/Update), and a rich set of native modules for device APIs.

When to use: Mobile apps targeting iOS and Android, universal apps with web support, projects needing OTA updates, apps requiring native device APIs (camera, notifications, haptics), teams preferring managed infrastructure over bare React Native.

When NOT to use: Apps requiring heavy custom native code incompatible with Expo Modules API, brownfield integration into existing native apps, apps with native-only CI/CD requirements.

Quick Reference

PatternAPIKey Points
Stack navigation<Stack> from expo-routerFile-based, _layout.tsx defines navigator
Tab navigation<Tabs> from expo-router(tabs) directory group with _layout.tsx
Drawer navigation<Drawer> from expo-router/drawerRequires @react-navigation/drawer
Typed routeshref with /(group)/routeEnable typed-routes in app.json
Dev buildexpo-dev-clientCustom native code + dev tools
EAS Buildeas build --profile productionCloud builds for app stores
EAS Submiteas submit -p ios / -p androidAutomated store submission
OTA Updateeas update --branch productionJS-only updates, no rebuild needed
Native moduleExpo Modules APISwift/Kotlin with expo-module.config.json
Platform codePlatform.select() / .ios.tsxPer-platform logic or entire files
Styled listsFlatList / FlashListVirtualized, keyExtractor required
Cameraexpo-cameraPermissions via useCameraPermissions()
Notificationsexpo-notificationsPush tokens via getExpoPushTokenAsync()
Hapticsexpo-hapticsimpactAsync, notificationAsync
Tailwind (RN)NativeWind v4className prop, Tailwind CSS in RN

Common Mistakes

MistakeCorrect Pattern
Using react-navigation directly instead of Expo RouterExpo Router wraps React Navigation with file-based routing
Forgetting _layout.tsx in route directoriesEvery directory with routes needs a layout file
Using expo start for custom native codeUse expo start --dev-client with expo-dev-client
Running eas update after native dependency changesNative changes require eas build, OTA is JS-only
Hardcoding platform checks with ifUse Platform.select() or platform-specific file extensions
Not requesting permissions before accessing device APIsAlways check/request permissions before camera, notifications
Using ScrollView for long listsUse FlatList or FlashList for virtualized rendering
Inline styles in render functionsDefine styles with StyleSheet.create() outside component
Missing keyExtractor on FlatListAlways provide keyExtractor for stable list rendering
Importing from react-native for Expo-provided APIsPrefer expo-* packages over react-native equivalents

Delegation

  • Pattern discovery: Use Explore agent
  • Build/deployment review: Use Task agent
  • Code review: Delegate to code-reviewer agent

If the react-patterns skill is available, delegate React component patterns and hooks to it. If the tanstack-query skill is available, delegate data fetching and caching to it. If the zustand skill is available, delegate client-side state management to it. If the vitest-testing skill is available, delegate unit and component testing patterns to it. If the tailwind skill is available, delegate Tailwind CSS utility patterns to it (NativeWind uses Tailwind CSS syntax). If the accessibility skill is available, delegate mobile accessibility patterns to it.

References

Comments

Markdown supported