Communityコーディング&開発github.com

vercel-react-native-skills

React Native および Expo アプリケーションのパフォーマンス最適化、アニメーション、UI パターン、プラットフォーム固有のベストプラクティスを提供します。React Native コンポーネントの構築、リストパフォーマンスの最適化、アニメーションの実装、ネイティブモジュールの操作時に参照してください。

vercel-react-native-skills とは?

このスキルは、React Native と Expo を使用して高性能なモバイルアプリを構築するための包括的なベストプラクティス集です。リストパフォーマンス、アニメーション、ナビゲーション、UI パターン、状態管理、レンダリング、モノレポ構成など、8 つのカテゴリに分類されたルールを提供します。特に FlashList を使用した大規模リストの仮想化、`transform` と `opacity` のみをアニメートする GPU プロパティの推奨、`expo-image` や `Gesture.Tap` の使用など、具体的なコード例とともに実践的な最適化手法を示します。各ルールは重要度(CRITICAL、HIGH、MEDIUM、LOW)で優先順位付けされており、開発者は `rules/` ディレクトリ内の個別ファイルで詳細な説明とコード例を確認できます。このスキルは Vercel の AI エージェント(例:Claude Code、Cursor、Codex)向けに設計されており、モバイルアプリのパフォーマンスチューニングやプラットフォーム固有の最適化が必要なタスクで自動的にトリガーされます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/callstackincubator/agent-skills/tree/main/plugins/vendored/.agents/skills/vercel-react-native-skills

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

React Native Skills

React Native および Expo アプリケーション向けの包括的なベストプラクティスです。パフォーマンス、アニメーション、UI パターン、プラットフォーム固有の最適化にわたる複数カテゴリのルールを含みます。

適用タイミング

以下の場合にこれらのガイドラインを参照してください:

  • React Native または Expo アプリを構築する場合
  • リストおよびスクロールのパフォーマンスを最適化する場合
  • Reanimated でアニメーションを実装する場合
  • 画像やメディアを扱う場合
  • ネイティブモジュールやフォントを設定する場合
  • ネイティブ依存関係を含むモノレポプロジェクトを構成する場合

優先度別ルールカテゴリ

優先度カテゴリ影響度プレフィックス
1リストパフォーマンスCRITICALlist-performance-
2アニメーションHIGHanimation-
3ナビゲーションHIGHnavigation-
4UI パターンHIGHui-
5状態管理MEDIUMreact-state-
6レンダリングMEDIUMrendering-
7モノレポMEDIUMmonorepo-
8設定LOWfonts-, imports-

クイックリファレンス

1. リストパフォーマンス (CRITICAL)

  • list-performance-virtualize - 大規模リストには FlashList を使用する
  • list-performance-item-memo - リスト項目コンポーネントをメモ化する
  • list-performance-callbacks - コールバック参照を安定させる
  • list-performance-inline-objects - インラインスタイルオブジェクトを避ける
  • list-performance-function-references - 関数をレンダリング外に抽出する
  • list-performance-images - リスト内の画像を最適化する
  • list-performance-item-expensive - 重い処理を項目外に移動する
  • list-performance-item-types - 異種リストには項目タイプを使用する

2. アニメーション (HIGH)

  • animation-gpu-properties - transform と opacity のみをアニメーション化する
  • animation-derived-value - 計算されたアニメーションには useDerivedValue を使用する
  • animation-gesture-detector-press - Pressable の代わりに Gesture.Tap を使用する

3. ナビゲーション (HIGH)

  • navigation-native-navigators - JS ナビゲーターよりネイティブスタックとネイティブタブを使用する

4. UI パターン (HIGH)

  • ui-expo-image - すべての画像に expo-image を使用する
  • ui-image-gallery - 画像ライトボックスには Galeria を使用する
  • ui-pressable - TouchableOpacity より Pressable を使用する
  • ui-safe-area-scroll - ScrollView でセーフエリアを扱う
  • ui-scrollview-content-inset - ヘッダーには contentInset を使用する
  • ui-menus - ネイティブコンテキストメニューを使用する
  • ui-native-modals - 可能な場合はネイティブモーダルを使用する
  • ui-measure-views - measure() ではなく onLayout を使用する
  • ui-styling - StyleSheet.create または Nativewind を使用する

5. 状態管理 (MEDIUM)

  • react-state-minimize - 状態サブスクリプションを最小化する
  • react-state-dispatcher - コールバックにはディスパッチャーパターンを使用する
  • react-state-fallback - 初回レンダリング時にフォールバックを表示する
  • react-compiler-destructure-functions - React Compiler のために分割代入する
  • react-compiler-reanimated-shared-values - コンパイラで共有値を扱う

6. レンダリング (MEDIUM)

  • rendering-text-in-text-component - テキストを Text コンポーネントでラップする
  • rendering-no-falsy-and - 条件付きレンダリングに偽の && を使用しない

7. モノレポ (MEDIUM)

  • monorepo-native-deps-in-app - ネイティブ依存関係はアプリパッケージに保持する
  • monorepo-single-dependency-versions - パッケージ間で単一バージョンを使用する

8. 設定 (LOW)

  • fonts-config-plugin - カスタムフォントには設定プラグインを使用する
  • imports-design-system-folder - デザインシステムのインポートを整理する
  • js-hoist-intl - Intl オブジェクトの生成を巻き上げる

使用方法

詳細な説明とコード例については、個別のルールファイルを参照してください:

rules/list-performance-virtualize.md
rules/animation-gpu-properties.md

各ルールファイルには以下が含まれます:

  • なぜそれが重要なのかの簡単な説明
  • 説明付きの誤ったコード例
  • 説明付きの正しいコード例
  • 追加のコンテキストと参考情報

完全なコンパイルドキュメント

すべてのルールを展開した完全なガイドについては:AGENTS.md

Individual skills in this repo

This repo contains 15 individual skills — each has its own dedicated page.

agent-device

Automates interactions for Apple-platform apps (iOS, tvOS, macOS) and Android devices. Use when navigating apps, taking snapshots/screenshots, tapping, typing, scrolling, or extracting UI info across mobile, TV, and desktop targets.

assess-react-native-migration

Assesses whether and how an existing mobile product should migrate to React Native. Use when auditing one or more product repositories for migration readiness, including products whose iOS, Android, and other clients live in separate directories or repositories; choosing brownfield, greenfield, or a checkpoint-based path; defining a representative trial; or preparing a baseline and ROI decision before implementation. When product scope or material evidence is unavailable, grills the stakeholder with exactly one question per turn instead of sending a questionnaire.

callstackincubator/github

GitHub patterns using gh CLI for pull requests, stacked PRs, code review, branching strategies, and repository automation. Use when working with GitHub PRs, merging strategies, or repository management tasks.

callstackincubator/validate-skills

Validates skills in this repo against agentskills.io spec and Claude Code best practices. Use via /validate-skills command.

create-react-native-library

Scaffolds React Native libraries with create-react-native-library for standalone libraries or local native modules and views. Use when creating or working on React Native libraries or adding native functionality in an existing app.

dogfood

Systematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems. Use when asked to "dogfood", "QA", "exploratory test", "find issues", "bug hunt", or "test this app" on mobile. Produces a structured report with reproducible evidence: screenshots, optional repro videos, and detailed steps for every issue.

github-actions

GitHub Actions workflow patterns for React Native iOS simulator and Android emulator cloud builds with downloadable artifacts. Use when setting up CI build pipelines or downloading GitHub Actions artifacts via gh CLI and GitHub API.

react-native-best-practices

Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations. Applies to tasks involving Hermes optimization, JS thread blocking, bridge overhead, FlashList, native modules, or debugging jank and frame drops.

react-native-brownfield-migration

Implements an accepted incremental brownfield migration from native iOS or Android to React Native or Expo using @callstack/react-native-brownfield. Use after the brownfield path has been selected, when setting up the integration, packaging XCFramework or AAR artifacts, or adding React Native surfaces to native hosts.

react-native-testing

Write tests using React Native Testing Library (RNTL) v13 and v14 (`@testing-library/react-native`). Use when writing, reviewing, or fixing React Native component tests. Covers: render, screen, queries (getBy/getAllBy/queryBy/findBy), Jest matchers, userEvent, fireEvent, waitFor, and async patterns. Supports v13 (React 18, sync render) and v14 (React 19+, async render). Triggers on: test files for React Native components, RNTL imports, mentions of "testing library", "write tests", "component tests", or "RNTL".

react-native-tv-best-practices

Reviews React Native TV apps for focus/D-pad navigation, 10-foot UI layout, TV playback/DRM integration, low-memory TV performance, and TV accessibility. Use when building, debugging, or reviewing react-native-tvos, Expo TV, Amazon Vega/Kepler, or React Native web TV targets where the issue depends on remote input, TV focus, TV packaging, TV hardware, or TV playback constraints.

react-navigation

Provides React Navigation UI patterns for stacks, tabs, drawers etc. Use when building navigation UIs with React Navigation, configuring headers, bottom sheets or handling safe areas and insets.

upgrading-react-native

Upgrades React Native apps to newer versions by applying rn-diff-purge template diffs, updating package.json dependencies, migrating native iOS and Android configuration, resolving CocoaPods and Gradle changes, and handling breaking API updates. Use when upgrading React Native, bumping RN version, updating from RN 0.x to 0.y, or migrating Expo SDK alongside a React Native upgrade.

validate-skills

Validates skills in this repo against agentskills.io spec and Claude Code best practices. Use via /validate-skills command.

writing-user-docs

House style for user-facing documentation — voice, scope, structure, and what to leave out. Use this skill whenever writing, editing, or reviewing anything a user reads to learn how to use a tool — help center articles, getting-started guides, tutorials, feature docs, README usage sections, in-app help, release notes, or FAQ entries. Trigger it even when the request is phrased plainly — "document this feature", "write docs for X", "explain this to users", "write a README for this library", "turn these notes into a guide" — and even when no style guidelines are mentioned. Also use it to review existing docs for tone, bloat, or leaked implementation detail. Do not use it for internal engineering docs, architecture write-ups, RFCs, or code comments.

関連スキル