Source profileQuality 93/100

nimadorostkar/Claude-Skills-collection/skills/mobile/react-native/SKILL.md

react-native

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.

Source repository stars
26
Declared platforms
0
Static risk flags
0
Last source update
2026-08-18
Source checked
2026-08-25

Decision brief

What it does: where it fits

Covers navigation, platform differences, list performance, native modules, offline behavior, and release builds.

Best for

  • Building or reviewing a React Native or Expo application.
  • Diagnosing list performance or dropped frames.
  • Bridging to a native module.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/nimadorostkar/Claude-Skills-collection --skill "skills/mobile/react-native"
Safe inspection promptEditorial

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

What the source asks the agent to do

  1. 01

    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…

    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 main…Structure navigation first — Stacks inside tabs, with a typed route map. Retrofitting deep links into an untyped navigator is painful.Fix lists before they are slow — 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.
  2. 02

    Purpose

    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.

    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.
  3. 03

    When to Use

    Building or reviewing a React Native or Expo application.

    Building or reviewing a React Native or Expo application.Diagnosing list performance or dropped frames.Bridging to a native module.
  4. 04

    Capabilities

    Navigation with React Navigation or Expo Router, including deep links.

    Navigation with React Navigation or Expo Router, including deep links.Platform-specific behavior and styling.List performance: FlashList, virtualization, memoized rows.
  5. 05

    Inputs

    The feature set, target platforms, and minimum OS versions.

    The feature set, target platforms, and minimum OS versions.Whether native modules are needed (this determines Expo Go versus a dev build).Performance requirements, especially for lists and animation.

Permission review

Static risk signals and limitations

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

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score93/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars26SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
nimadorostkar/Claude-Skills-collection
Skill path
skills/mobile/react-native/SKILL.md
Commit
03f39b7041ec2679255f8d6bb5b18421561821ae
License
MIT
Collected
2026-08-25
Default branch
main
View the original SKILL.md

React Native

Purpose

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.

When to Use

  • Building or reviewing a React Native or Expo application.
  • Diagnosing list performance or dropped frames.
  • Bridging to a native module.
  • Setting up over-the-air updates and release builds.

Capabilities

  • Navigation with React Navigation or Expo Router, including deep links.
  • Platform-specific behavior and styling.
  • List performance: FlashList, virtualization, memoized rows.
  • Native modules and the new architecture (Fabric, TurboModules).
  • Offline support, secure storage, and background tasks.
  • Release: EAS Build, OTA updates, store submission.

Inputs

  • The feature set, target platforms, and minimum OS versions.
  • Whether native modules are needed (this determines Expo Go versus a dev build).
  • Performance requirements, especially for lists and animation.

Outputs

  • A navigation structure with deep-link support.
  • Lists that maintain frame rate with realistic data volumes.
  • A build and release pipeline for both platforms.

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 tabs, with a typed route map. Retrofitting deep links into an untyped navigator is painful.
  3. Fix lists before they are slowFlashList 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.
  4. Handle platform differences explicitlyPlatform.select for behavior, not just style. Back-button behavior, safe areas, and permission flows differ genuinely.
  5. Move animation off the JS thread — Reanimated worklets run on the UI thread. Animating via setState will jank the moment the JS thread does anything else.
  6. Test the release build — Debug builds hide performance problems entirely. Profile in release, on a real mid-range device.

Best Practices

  • The JS thread and the UI thread are separate. Any heavy JavaScript blocks interaction, and it will not show up in a simulator on a fast laptop.
  • An inline arrow function as a 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.
  • Store tokens in expo-secure-store or Keychain — never AsyncStorage, which is unencrypted plain text.
  • Images are the main cause of memory pressure. Size them to the display size; do not load a 4000px original into a 100px thumbnail.
  • OTA updates cannot change native code. If you added a native module, the update requires a store release.

Examples

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.

Notes

  • The new architecture (Fabric + TurboModules) removes the asynchronous bridge and is the default from React Native 0.76. Older third-party native modules may not be compatible — check before upgrading.
  • estimatedItemSize on FlashList is not optional in practice; a bad estimate causes visible blank space during fast scrolls.
  • Hermes is the default engine and materially improves startup time and memory. If a project is still on JSC, that is usually an oversight.

Frequently asked questions

What to verify before installation and use

What does the react-native source document cover?

Covers navigation, platform differences, list performance, native modules, offline behavior, and release builds.

How do I install react-native?

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

Compare before choosing

Computed 97149

UiPath/skills

uipath-coded-apps

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

Computed 95868

awslabs/agent-plugins

amplify-workflow

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

Computed 9335

tenequm/skills

chrome-extension-wxt

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.

Computed 9279

Cloudgeni-ai/opengeni

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.