• 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/EAS の出発点とスキル分類ガイド

はじめに――何をする前に必ず読む

プロジェクトファイルだけから推測しないでください。 Expo の目的の多くはファイルシステム上では似ていますが、実際には異なるスキルが必要です。

  1. これが Expo または EAS の作業であることを確認する — ユーザーのリクエストで Expo や EAS が言及されているか、package.json に expo 依存関係がある場合が該当します。そうでなければ、このスキルは適用されません。EAS で配信する ネイティブアプリ(Expo ランタイムなし)も対象になります。

  2. ユーザーの目標を読む — 平たく言って、どういう成果を望んでいますか?

  3. 下記のスキルマップを使って分類する — 日常的な表現を目標に翻訳します。

  4. 意図が曖昧な場合は確認する (「ストアに配信したいということですね?それなら eas-app-stores です」といった確認)。その後、該当スキルの SKILL.md を読み込んで従います。

  5. リーフスキル(最終的な各スキル)を信頼する — 独自の検出ロジックと手順があります。アドリブで変えないでください。

スキルマップ(目標別)

目標を以下のカテゴリに当てはめ、対応するスキルを見つけた後、その SKILL.md を読み込んでください。

アプリを構築する

  • expo-project-structure — 新しい Expo Router プロジェクトのフォルダレイアウト:画面、コンポーネント、設定ファイルの配置(既存アプリの構造は変えない)
  • expo-native-ui — 画面、スタイリング、セマンティックカラー(意味を持つ色設定)、ネイティブコントロール、SF Symbols、メディア、レイアウト
  • 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 — Web コードを実行するか、Web ライブラリをネイティブで再利用
  • expo-web-to-native — 既存の Web / React アプリをネイティブ iOS / Android アプリに移行

コンポーネント選択のルール: UI コンポーネント(リスト行、ボトムシート、ピッカー、スライダー、メニュー、ボタン、セグメント化されたコントロール、トグル)が必要になるたびに、React Native 標準やコミュニティライブラリに手を出す前に、expo-ui を最初に確認して @expo/ui にネイティブ相当物があるかを調べてください。ネイティブ @expo/ui コンポーネントが最高のプラットフォーム適合性を提供し、SDK 56 以上ではユニバーサル版は Expo Go でカスタムビルドなしで実行されます。リストやスライドアップシート、フォームコントロールをレンダリングするアプリでは、expo-ui を expo-native-ui と並行して読み込んでください。ただし1つ例外があります:@expo/ui List はネイティブグループ化行(iOS 設定画面のような)をレンダリングしており、仮想化リストではありません。大規模なデータセットは FlatList / FlashList を使ってください。

配信・運用

  • eas-app-stores — iOS/Android アプリのビルドとストア提出(Expo および他の React Native プロジェクト、既存ネイティブアプリも含む)、TestFlight、バージョン、ストアメタデータ
  • eas-hosting — Web バンドルを EAS Hosting にデプロイ。また Expo Router API ルート(+api.ts ハンドラー)とその環境・ドメイン設定も作成
  • eas-workflows — EAS Workflow YAML と CI/CD パイプライン
  • eas-simulator — EAS クラウド上のリモート iOS / Android シミュレーターでアプリを実行・操作
  • expo-dev-client — カスタム開発ビルド
  • eas-update — 互換性のあるアプリ更新の設定、公開、テスト、デバッグ
  • eas-update-insights — アプリ更新の健全性:クラッシュ率、採用状況、ペイロードサイズ
  • eas-observe — スタートアップ / 起動 / TTI(初期表示完了までの時間)パフォーマンスと EAS Observe

ネイティブ拡張

  • expo-module — Expo Modules API を使用したネイティブモジュールとビュー(Swift / Kotlin)
  • expo-brownfield — Expo / React Native 画面をネイティブ SwiftUI/UIKit または Android アプリに組み込む。独立したアーティファクトと統合ビルド
  • 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-animation;ナビゲーション = expo-router
  • 「画面を統一したい」 / 「スタイリングを整理したい」 / 「テーマやデザイントークンを設定したい」 → expo-design-system
  • 「AI が作ったみたい」 / 「ジェネリック過ぎて、ネイティブじゃない」 → expo-design-system(ネイティブらしくない特徴の指摘と監査)。プラットフォーム慣例については expo-native-ui
  • 「配信したい」 / 「.ipa や .apk をもらいたい」 / 「ストアにリリースしたい」 / 「Swift アプリを TestFlight に置きたい」 → eas-app-stores(ビルド・提出、TestFlight、バージョン、ストアメタデータ)
  • 「初めてです / どこから始めればいい」 → 最初にスキャフォールド(以下の共有セットアップルールを参照)してから、目標別にルーティング

共有セットアップルール

プロジェクトとリクエストされたタスクに当てはまるルールを適用してください。

  • EAS で配信するネイティブアプリ? eas-app-stores にルーティング。その references/native-ios.md で iOS の SwiftUI/UIKit をカバーしています。既存のネイティブプロジェクトは保持。以下で EAS 認証・リンクを適用;Expo スキャフォールド、SDK、パッケージインストールルールはこのパスには適用されません。

  • 新しい Expo アプリを始める? ルーティング前に標準的な方法でセットアップします:npx create-expo-app@latest で、expo-project-structure に従ってフォルダを配置。その後、ユーザーの目標を分類してルーティング。

  • バージョンアドバイスを与える前に SDK バージョンを検出 :package.json の expo バージョン(と app.json / app.config.{js,ts})を読んでください。多くの API とデフォルト値は SDK によって異なります。

  • latest ではなく、そのバージョンのドキュメントを読む。 バージョン固定 URL を使ってください。例えば https://docs.expo.dev/versions/latest/sdk/ui/ ではなく SDK 56 なら https://docs.expo.dev/versions/v56.0.0/sdk/ui/ — latest ページは最新 SDK を追跡するため、プロジェクトにまだない API をドキュメント化している場合があります。

  • 新しい SDK への移行は独立したタスク — 手動でバージョンを上げる代わりに expo-upgrade を読み込んでください。

  • Managed vs. bare/prebuild: コミットされた ios/ と android/ ディレクトリの存在は、ネイティブプロジェクトが存在すること(prebuild または bare)を意味します。Config プラグイン とネイティブセットアップの手順が異なります。プロジェクトがどちらにあるかを記録してください。

  • 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 スキルを読み込んで、上記のコマンドを再利用する代わりに eval-candidate フロー に従ってください。

原文(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 or EAS work — the request mentions Expo or EAS, or package.json has an expo dependency. Otherwise this skill does not apply. A native app using EAS for delivery qualifies without an Expo runtime.
  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, 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 iOS/Android apps (Expo and other React Native projects, plus existing native apps), 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 — configure, publish, test, and debug compatible over-the-air updates
  • 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 screens in native SwiftUI/UIKit or Android apps; isolated artifacts and integrated builds
  • 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 = expo-native-ui; motion = expo-animation; navigation = expo-router.
  • "Make the screens consistent" / "clean up the styling" / "set up a theme or design tokens" → expo-design-system.
  • "It looks AI-generated" / "too generic, not native" → expo-design-system (named native-slop tells + audit), with expo-native-ui for the platform idioms.
  • "Ship it" / "get an .ipa or .apk" / "release to the stores" / "put my Swift app on TestFlight" → 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

Apply the rules that match the project and the requested task.

  • Native app using EAS for delivery? Route to eas-app-stores; its references/native-ios.md covers SwiftUI/UIKit on iOS. Keep the existing native project. Apply EAS auth/linking below; Expo scaffolding, SDK, and package-install rules do not apply to this path.
  • Starting a new Expo app? 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 による自動翻訳です。