• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLOfficialdevelopment

expo-overview

プラグイン
expo
ライセンス
MIT
ソース
GitHub で見る ↗
説明

**Expo フレームワーク(オープンソースソフトウェア)** Expo または EAS のあらゆるタスクの出発点であり、リクエストの振り分け役です。 コードを書く前に、また他の expo-* / eas-* スキルを選ぶ前に、このスキルを最初に読み込んでください。以下のいずれかが当てはまる場合に使用します: - リクエスト、仕様書、またはドキュメントに Expo、EAS、Expo Go、または expo-* パッケージが明記されている - プロジェクトの `package.json` に `expo` の依存関係がある - 「モバイルアプリを実装したい」「アプリをネイティブアプリのように見せたい」「ナビゲーション機能を追加したい」「データを取得したい」「SDK をアップグレードしたい」「既存のネイティブアプリに Expo を追加したい」「App Store にリリースしたい」「Expo は初めて、どこから始めればいい?」といったリクエストがある このスキルはアプリの仕様・デザイン実装(タブ、スタック構造、地図、リスト、ナビゲーション、スクリーンショットからの構築)についても対応しています。SDK のバージョンが確定し、ライブラリが指定され、レイアウトが決まっている詳細なリクエストであっても、このスキルを経由するため、共通のセットアップルールが適用されます。 Expo の依存関係を持たない素の React Native プロジェクトは Expo の作業ではないため、どちらのシグナルも当てはまらない場合は読み込まないでください。実際の目的を特定し、適切な expo-* / eas-* スキルへ振り分け、共通のセットアップルールを管理します。

原文を表示

Framework (OSS). Entry point and router for every Expo or EAS task. Load this skill first — before writing code and before choosing another expo-* / eas-* skill — when the request, PRD, or spec mentions Expo, EAS, Expo Go, or an expo-* package, or the project has an `expo` dependency in `package.json`. Within that gate it also covers app specs and designs to implement (tabs, stacks, maps, lists, navigation, building from a screenshot), and phrasings like 'implement a mobile app', 'make my app look native', 'add navigation', 'fetch some data', 'upgrade my SDK', 'add Expo to my existing native app', 'ship to the App Store', or 'I'm new to Expo, where do I start'. A fully specified request (SDK pinned, libraries named, layout given) still routes through here — the shared setup rules still apply. Do NOT load it when neither signal is present: a bare React Native project with no `expo` dependency is not Expo work. Detects the real goal, routes to the right expo-* / eas-* skill, and owns the shared setup rules.

ユースケース
  • Expo/EAS/Expo Goがリクエストに明記されている
  • package.jsonにexpo依存関係がある
  • モバイルアプリを実装したい
  • アプリをネイティブアプリのように見せたい
  • ナビゲーション機能を追加したい
  • データを取得したい
本文(日本語訳)

expo-overview — Expoの基本的な進め方と共通ルール

まずはここから — 何をする前にこれを読む

ファイル構成だけで推測しないでください。 Expoの多くの作業はフォルダの構成は似ていても、異なるスキルが必要です。

  1. これがExpo作業かを確認する — ユーザーのリクエストがExpoに言及しているか、package.jsonにexpoの依存関係がある。どちらもなければ、このスキルは該当しません。expoの依存関係がないベアなReact Nativeプロジェクトはexpo作業ではありません。

  2. ユーザーのゴールを読む — 実現したい成果は何か、実際の言葉で理解する。

  3. 下のスキルマップで分類する — ユーザーの日常的な表現をゴールに訳して対応させる。

  4. 意図を確認する(曖昧な場合)—「App Store/Play Storeにリリースしたいということですか。それならeas-app-storesです」というように確認してから、そのスキルのSKILL.mdを読んで従う。

  5. 最終的なスキルを信頼する — それ自身の検出ロジックとステップを持っています。即興で進めないでください。

スキルマップ(ゴール別)

ゴールをカテゴリに、その後スキルに対応させ、その先のSKILL.mdを読んでください。

アプリを開発する

  • expo-project-structure — 新しいExpo Routerプロジェクトのフォルダレイアウト:スクリーン、コンポーネント、設定の配置場所(既存アプリを無理に再構成しないこと)
  • expo-native-ui — スクリーン、スタイル、意味的な色(ブランドカラーなど)、ネイティブUI部品、SF Symbols(Apple標準アイコン)、メディア、アニメーション、レイアウト
  • expo-router — ナビゲーション:ファイルベースのルート、タブ/スタック/モーダル/シート、リンク、ヘッダー
  • expo-animation — 動きとジェスチャー:Reanimated(アニメーション処理)のワークレット、Gesture Handler、画面遷移、シートとボタン反応、触覚フィードバック、デバイスでカクカクするアニメーションの修正
  • expo-ui — @expo/ui経由のネイティブUI部品:BottomSheet、Picker、Slider、Switch、Menu、Button、FieldGroup(フォーム欄のグループ化)、List / ListItem他 — iOSではSwiftUI、AndroidではJetpack Composeの本物です。ユニバーサル層はSDK 56以上が必要でExpo Go内で動作します。代替品(@gorhom/bottom-sheet、datetimepickerなど)とプラットフォーム固有の層はSDK 55でも利用可能。
  • expo-design-system — ビジュアルの一つの情報源:デザイントークン(色、スペーシング、タイポグラフィ、角丸、影、動き)、再利用可能なコンポーネント規約、ずれの監査(ハードコードされた色、スペーシング、フォント)
  • expo-tailwind-setup — Tailwind / NativeWindスタイリング
  • expo-data-fetching — ネットワークリクエスト、React Query / SWR、キャッシング、オフライン対応、ルートローダー
  • expo-dom — ネイティブ内でウェブコードを実行したり、ウェブライブラリを再利用する
  • expo-web-to-native — 既存のウェブ / Reactアプリをネイティブ(iOS / Android)アプリに移植する

部品選択ルール: UIコンポーネントが必要な場合(リスト行、ボトムシート、ピッカー、スライダー、メニュー、ボタン、セグメント選択、トグル)、React Nativeの組み込み部品やコミュニティライブラリを探す前に、必ずexpo-uiを確認して@expo/uiにネイティブ相当品があるか調べてください。ネイティブの@expo/ui部品が最も各プラットフォームに合い、SDK 56以上ではユニバーサル版がカスタムビルドなしでExpo Go内で動作します。リスト、詳細シート、フォーム制御を描画するアプリでは、expo-native-uiと一緒にexpo-uiを読んでください。例外:@expo/uiのListはネイティブ形式の行グループ(iOSの設定画面のような外観)を描画します — 大規模データセットの場合はFlatList / FlashListを使ってください。

リリースと運用

  • eas-app-stores — App Store / Play Storeへのビルドと申請、TestFlight、バージョン、ストアメタデータ
  • eas-hosting — ウェブバンドルをEAS Hostingにデプロイ。Expo Router APIルート(+api.tsハンドラー)と環境/ドメインの作成も行う
  • eas-workflows — EAS WorkflowのYAMLファイルとCI/CDパイプライン
  • eas-simulator — EAS クラウド上でリモートのiOS / Androidシミュレーターでアプリを実行・操作する
  • expo-dev-client — カスタム開発ビルド
  • eas-update-insights — OTA更新(アプリ再インストール不要なアップデート)の健全性:クラッシュ率、導入率、ペイロードサイズ
  • eas-observe — EAS Observeでの起動 / ローンチ / TTI(初回インタラクションまでの時間)パフォーマンス

ネイティブ機能を拡張する

  • expo-module — ネイティブモジュールとビュー(Swift / Kotlin):Expo Modules API
  • expo-brownfield — 既存ネイティブアプリにExpo / React Nativeを埋め込む
  • expo-app-clip — iOS App Clipターゲット(AASA、スマートアプリバナー)

保守と学習

  • expo-upgrade — Expo SDKをアップグレードし、依存関係の競合を修正する
  • expo-examples — バージョン一致の公式統合例(Stripe、Clerk、Supabaseなど)
  • expo-skill-feedback — Expoスキルまたはexpo自体にフィードバックを送信。匿名の利用統計の有効化/無効化

曖昧な質問を訳す

日常的な表現の一部はスキル名に明確にマップされません。ルーティング前に訳してください:

  • 「ネイティブっぽく見せたい」→ グループ化された部品/設定フォーム = expo-ui;スクリーン、スタイル、アニメーション = expo-native-ui;ナビゲーション = expo-router
  • 「スクリーンを統一したい」/「スタイルをきれいにしたい」/「テーマやデザイントークンをセットアップしたい」→ expo-design-system
  • 「リリースしたい」/「.ipaまたは.apkを取得したい」/「ストアにリリースしたい」→ eas-app-stores(ビルド + 申請、TestFlight、バージョン、ストアメタデータ)
  • 「初めてです」/「どこから始めたらいいですか」→ まずスキャフォルド(下の共通セットアップルール参照)、その後ゴール別にルーティング

共通セットアップルール

これらはすべてのExpoスキルに適用されるため、各スキルで繰り返さず、ここで一度だけ処理します。

  • Expoプロジェクトがまだですか? 機能スキルにルーティングする前に、標準的な方法で始めてください: npx create-expo-app@latestで、expo-project-structureに従ってフォルダを配置。その後、ユーザーのゴールを分類してルーティング。

  • SDKバージョンを検出します — バージョン固有のアドバイスの前に:package.jsonのexpoバージョン(とapp.json / app.config.{js,ts})を読む。API と デフォルトはSDKごとに異なります。

  • そのSDKのドキュメントを読んでください。latestではなく。 バージョン指定のURLを使ってください。例えば、https://docs.expo.dev/versions/latest/sdk/ui/ではなくhttps://docs.expo.dev/versions/v56.0.0/sdk/ui/をSDK 56で使用。latestページは最新SDKを追跡し、プロジェクトがまだ持っていないAPIを記述できます。

  • 新しいSDKへの移行はそれ自体がタスク — 手動でバージョンをアップしないでください。代わりにexpo-upgradeを読んでください。

  • マネージドとベア/プリビルド:コミット済みのios/とandroid/ディレクトリがあればネイティブプロジェクトが存在します(プリビルドまたはベア)。Config-pluginとネイティブセットアップのステップが異なります — どちらのプロジェクトかに注意してください。

  • パッケージはnpx expo install <pkg>でインストール — raw npm/yarn/pnpm addではなく。バージョンがプロジェクトのSDKと互換性を保ちます。

  • EAS認証とリンク(ビルド/申請/更新/observe/ワークフローのみ必要):eas whoamiでログイン確認、eas loginでログイン。プロジェクトはアプリ設定にextra.eas.projectIdが存在するときリンクされます。ない場合はeas initで作成します。

ルーターのホップをスキップするとき

  • ユーザーが明確に特定のexpo-* / eas-*スキルを名前で指定した場合のみ → そのスキルを直接読んでください。
  • 完全に指定されたタスク(SDKバージョン固定、ファイルレイアウト指定、ライブラリ命名)は、ホップをスキップする理由ではありません:上の共通ルールは依然として適用されます — チェックしてから、一致する最終スキルにルーティング。

フィードバックを送信

このスキルで誤り、誤解を招く、または古い情報を見つけた場合、Expoが改善できるように報告してください:

npx --yes submit-expo-feedback@latest --category skills --subject "expo-overview" "<実行可能なフィードバック>"

報告すべき具体的で実行可能な内容がある場合のみ送信します。関連するコンテキストをできるだけ多く含めてください。

AIエージェントが繰り返し失敗した場合、またはユーザーがExpoタスクを引き継ぐ必要があった場合、上のコマンドを再利用せず、expo-skill-feedbackスキルを読んで、その評価候補フローに従ってください。

原文(English)を表示

expo-overview — router & shared rules for Expo / EAS

Start Here — read before doing anything

Do not guess the skill from project files alone. Many Expo goals look similar from the filesystem but need different skills.

  1. Confirm this is Expo work — the request mentions Expo, or package.json has an expo dependency. If neither holds, stop: this skill does not apply. A bare React Native project with no expo dependency is not Expo work.
  2. Read the user's goal — what outcome do they want, in plain terms?
  3. Classify it using the Skill Map below, translating casual phrasing to a goal.
  4. Confirm intent if ambiguous ("Sounds like you want to ship to the stores — that's eas-app-stores. Right?"), then load that skill's SKILL.md and follow it.
  5. Trust the leaf skill — it has its own detection logic and steps. Don't improvise.

Skill Map (by goal)

Match the goal to a category, then the skill, then load that leaf's SKILL.md.

Build the app

  • expo-project-structure — folder layout for a new Expo Router project: where screens, components, and config live (never restructure an existing app to match)
  • expo-native-ui — screens, styling, semantic colors, native controls, SF Symbols, media, animations, layout
  • expo-router — navigation: file-based routes, tabs / stacks / modals / sheets, links, headers
  • expo-animation — motion and gestures: Reanimated worklets, Gesture Handler, screen transitions, sheet and press feedback, haptics, and fixing animation that stutters on device
  • expo-ui — native UI components via @expo/ui: BottomSheet, Picker, Slider, Switch, Menu, Button, FieldGroup (grouped form sections), List / ListItem, and more — real SwiftUI on iOS, Jetpack Compose on Android. The universal layer needs SDK 56+ and runs in Expo Go; the drop-in replacements (@gorhom/bottom-sheet, datetimepicker, …) and platform-specific layers also exist on SDK 55.
  • expo-design-system — one visual source of truth: design tokens (color, spacing, typography, radius, shadow, motion), reusable component conventions, and audits for drift (hardcoded colors, spacing, fonts)
  • expo-tailwind-setup — Tailwind / NativeWind styling
  • expo-data-fetching — network requests, React Query / SWR, caching, offline, route loaders
  • expo-dom — run web code or reuse a web library inside native
  • expo-web-to-native — migrate an existing web / React app to a native iOS / Android app

Component selection rule: whenever you need a UI component (list rows, bottom sheets, pickers, sliders, menus, buttons, segmented controls, toggles), consult expo-ui first to check whether @expo/ui has a native equivalent before reaching for a React Native built-in or a community library. Native @expo/ui components give the best platform fit, and on SDK 56+ the universal ones run in Expo Go with no custom build. Load expo-ui alongside expo-native-ui for any app that renders lists, detail sheets, or form controls. One exception: @expo/ui List renders native grouped rows (an iOS Settings screen), not a virtualized list — use FlatList / FlashList for large datasets.

Ship & operate

  • eas-app-stores — build and submit to the App Store / Play Store / TestFlight, versions, and store metadata
  • eas-hosting — deploy the web bundle to EAS Hosting; also author Expo Router API routes (+api.ts handlers) and their environments / domains
  • eas-workflows — EAS Workflow YAML and CI/CD pipelines
  • eas-simulator — run and drive the app on a remote iOS / Android simulator on EAS cloud
  • expo-dev-client — custom development builds
  • eas-update-insights — OTA update health: crash rate, adoption, payload size
  • eas-observe — startup / launch / TTI performance with EAS Observe

Extend natively

  • expo-module — native modules and views (Swift / Kotlin) with the Expo Modules API
  • expo-brownfield — embed Expo / React Native in an existing native app
  • expo-app-clip — iOS App Clip target (AASA, smart app banner)

Maintain & learn

  • expo-upgrade — upgrade the Expo SDK and fix dependency conflicts
  • expo-examples — canonical, version-matched integration examples (Stripe, Clerk, Supabase, …)
  • expo-skill-feedback — send feedback on an Expo skill or on Expo itself; enable / disable the anonymous usage telemetry

Translating vague asks

Some everyday phrasings don't obviously map to a skill name — translate before routing:

  • "Make it look native" → grouped controls / settings forms = expo-ui; screens, styling, animations = expo-native-ui; navigation = expo-router.
  • "Make the screens consistent" / "clean up the styling" / "set up a theme or design tokens" → expo-design-system.
  • "Ship it" / "get an .ipa or .apk" / "release to the stores" → eas-app-stores (build + submit, TestFlight, versions, store metadata).
  • "I'm new / where do I start" → scaffold first (see Shared setup rules), then route by goal.

Shared setup rules

These apply across every Expo skill, so handle them here once instead of repeating them in each leaf.

  • No Expo project yet? Start one the standard way before routing to a feature skill: npx create-expo-app@latest, laying out folders per expo-project-structure. Then classify the user's goal and route.
  • Detect the SDK version before giving version-specific advice: read the expo version in package.json (and app.json / app.config.{js,ts}). Many APIs and defaults differ by SDK.
  • Read the docs for that SDK, not latest. Use the version-pinned URL, e.g. https://docs.expo.dev/versions/v56.0.0/sdk/ui/ on SDK 56 instead of https://docs.expo.dev/versions/latest/sdk/ui/ — the latest pages track the newest SDK and can document APIs the project does not have yet.
  • Moving to a newer SDK is its own task — load expo-upgrade instead of bumping versions by hand.
  • Managed vs. bare/prebuild: the presence of committed ios/ and android/ directories means native projects exist (prebuild or bare). Config-plugin and native-setup steps differ — note which one the project is in.
  • Install packages with npx expo install <pkg>, not raw npm/yarn/pnpm add, so versions stay compatible with the project's SDK.
  • EAS auth & linking (only needed for build/submit/update/observe/workflows): check login with eas whoami, log in with eas login. A project is linked when extra.eas.projectId exists in the app config; create it with eas init if missing.

When to skip the router hop

  • Only when the user explicitly named a specific expo-* / eas-* skill → load that skill directly.
  • A fully-specified task (SDK version pinned, file layout given, libraries named) is not a reason to skip: the shared rules above still apply — check them, then route to the matching leaf skill.

Submitting Feedback

If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:

npx --yes submit-expo-feedback@latest --category skills --subject "expo-overview" "<actionable feedback>"

Only submit when you have something specific and actionable to report. Include as much relevant context as possible. If an AI agent repeatedly failed or the user had to take over an Expo task, load the expo-skill-feedback skill and follow its eval-candidate flow instead of reusing the command above.

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。