Best for
- Building or reviewing a React Native or Expo application.
- Diagnosing list performance or dropped frames.
- Bridging to a native module.
nimadorostkar/Claude-Skills-collection/skills/mobile/react-native/SKILL.md
Use when building cross-platform mobile apps with React Native or Expo. Covers navigation, platform differences, list performance, native modules, offline behavior, and release builds.
Decision brief
Covers navigation, platform differences, list performance, native modules, offline behavior, and release builds.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/nimadorostkar/Claude-Skills-collection --skill "skills/mobile/react-native"Inspect the Agent Skill "react-native" from https://github.com/nimadorostkar/Claude-Skills-collection/blob/03f39b7041ec2679255f8d6bb5b18421561821ae/skills/mobile/react-native/SKILL.md at commit 03f39b7041ec2679255f8d6bb5b18421561821ae. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Choose the runtime honestly — Expo with a development build gives you native modules and the Expo tooling. Expo Go is for prototypes; bare React Native is for teams that need full native control and are prepared to maintain it. 2. Structure navigation first — Stacks inside ta…
Build React Native applications that feel native: lists that scroll at 60fps, navigation that matches platform conventions, and a release pipeline that does not surprise you at submission.
Building or reviewing a React Native or Expo application.
Navigation with React Navigation or Expo Router, including deep links.
The feature set, target platforms, and minimum OS versions.
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 26 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Build React Native applications that feel native: lists that scroll at 60fps, navigation that matches platform conventions, and a release pipeline that does not surprise you at submission.
FlashList, virtualization, memoized rows.FlashList with a stable keyExtractor, memoized row components, and a fixed item size where possible. ScrollView with a hundred children will drop frames on a mid-range Android.Platform.select for behavior, not just style. Back-button behavior, safe areas, and permission flows differ genuinely.setState will jank the moment the JS thread does anything else.renderItem re-creates every row on every render. Memoize the row component and hoist the callback.useNativeDriver: true on every Animated usage, or use Reanimated. Without it, every frame crosses the bridge.expo-secure-store or Keychain — never AsyncStorage, which is unencrypted plain text.A list that stays at 60fps:
const OrderRow = memo(function OrderRow({ order, onPress }: OrderRowProps) {
return (
<Pressable onPress={() => onPress(order.id)} style={styles.row}>
<Text style={styles.title}>{order.reference}</Text>
<Text style={styles.meta}>{order.customerName}</Text>
</Pressable>
);
});
export function OrderList({ orders }: { orders: Order[] }) {
const router = useRouter();
const onPress = useCallback((id: string) => router.push(`/orders/${id}`), [router]);
return (
<FlashList
data={orders}
renderItem={({ item }) => <OrderRow order={item} onPress={onPress} />}
keyExtractor={(item) => item.id}
estimatedItemSize={72} // FlashList needs this to recycle correctly
removeClippedSubviews
/>
);
}
onPress is hoisted and stable, OrderRow is memoized, so scrolling re-renders nothing that has not changed.
Animation on the UI thread:
const offset = useSharedValue(0);
const style = useAnimatedStyle(() => ({
transform: [{ translateY: withSpring(offset.value) }],
}));
// Runs on the UI thread — unaffected by whatever the JS thread is doing.
estimatedItemSize on FlashList is not optional in practice; a bad estimate causes visible blank space during fast scrolls.Frequently asked questions
Covers navigation, platform differences, list performance, native modules, offline behavior, and release builds.
The source record exposes this install command: npx skills add https://github.com/nimadorostkar/Claude-Skills-collection --skill "skills/mobile/react-native". Inspect the command and pinned source before running it.
Alternatives
UiPath/skills
UiPath Coded Apps — scaffold, build, run, and deploy Coded Web Apps and Coded Action Apps: React/TypeScript apps that call UiPath Cloud APIs via the `@uipath/uipath-typescript` SDK and ship to Automation Cloud (push/pull to Studio Web, pack, publish, deploy, OAuth-PKCE). Also generates live analytics & governance dashboards from a plain-language request, wired to tenant data via the Insights real-time API, with edit and deploy flows. For RPA→uipath-rpa, Python agents→uipath-agents, Maestro flows
awslabs/agent-plugins
Build and deploy full-stack web and mobile apps with AWS Amplify Gen2 (TypeScript code-first). Covers auth (Cognito), data (AppSync/DynamoDB including schema modeling, enum types, relationships, authorization rules), storage (S3), functions, APIs, and AI (Amplify AI Kit with Bedrock). Supports React, Next.js, Vue, Angular, React Native, Flutter, Swift, and Android. Always use this skill for Amplify Gen2 topics — even for questions you think you know — it contains validated, version-specific patt
tenequm/skills
Build Chrome extensions using WXT framework with TypeScript, React, Vue, or Svelte. Use when creating browser extensions, developing cross-browser add-ons, or working with Chrome Web Store projects. Triggers on phrases like "chrome extension", "browser extension", "WXT framework", "manifest v3", or file patterns like wxt.config.ts.
Cloudgeni-ai/opengeni
Use when editing, operating, extending, documenting, or debugging the OpenGeni source repository or deployment: architecture, sessions/events, worker orchestration, sandbox backends, files/storage, tools/MCP, scheduling, configuration, and deployment. For a customer product that consumes a standalone OpenGeni deployment through the SDK or React packages, use the separate opengeni-client skill instead.