Communitygithub.com

Codex Phone Lab

モバイルアプリのプロトタイプを構築し、実機で動作確認できるスキルです。Expo/React Nativeのライブプレビューを利用して、iPhoneやAndroidアプリの迅速な開発を支援します。

Codex Phone Lab とは?

Codex Phone Lab は、プロンプトから実機で動作するReact Native/Expoアプリを迅速に作成するためのスキルです。XcodeやTestFlight、App Storeの配布プロセスを経ずに、Expo Goを使って物理的なiPhoneやAndroid端末上でアプリをライブプレビューできます。このスキルは、プロジェクトの状態を自動検出し、新規アプリ作成時にはSDK 54テンプレートを使用してExpo Goとの互換性を確保します。LANモードまたはトンネルモードでQRコードを生成し、ユーザーがExpo Goでスキャンするだけでアプリを開けます。開発中はMetro/Expoのログを監視しながら小さな変更を繰り返すことで、高速な「プロンプト→アプリ→実機」ループを実現します。また、Expo Routerを使用したマルチスクリーンアプリや、実際のユーザーインタラクション(フォーム、リスト、ナビゲーションなど)を含む本格的な画面構築もサポートします。配布方法については、Expo Goによるプロトタイプ、カスタムネイティブモジュール用の開発ビルド、TestFlight、App Store公開など、目的に応じて最適な選択肢を提示します。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Kappaemme-git/codex-phone-lab/tree/HEAD/skill

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

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

ドキュメント

Codex Phone Lab は何をしますか?

このスキルを使用すると、プロダクトプロンプトをReact Native/Expoアプリに変換し、ユーザーがExpo Goを使って実機で開けるようになります。シミュレーター、ネイティブビルド、TestFlight、App Store配布を検討する前に、「プロンプト→アプリ→実機」の高速ループを最適化します。

運用モデル

以下のパスを優先します(ユーザーが明示的にネイティブiOS/Androidモジュールを必要としない限り)。

  1. scripts/doctor.sh でローカルの前提条件を確認します。
  2. モバイルプロジェクトが存在しない場合は、scripts/new-expo-app.sh <app-name> でExpoアプリを作成します。これにより、デフォルトで expo-template-default@sdk-54 が使用され、現在のワークフローで使用されているExpo Goバージョンで開くことができます。
  3. 最初の使用可能な画面を迅速に構築します。ランディングページは作成しません。
  4. scripts/start-phone-preview.sh [lan|tunnel|local] で電話プレビューを開始します。
  5. 編集しながら開発サーバーを起動したままにします。Metro/Expoのログを使用して実行時エラーを修正します。
  6. ユーザーにExpo Goをインストールし、QRコードをスキャンし、LANモードの場合はスマートフォンを同じネットワークに接続するように指示します。
  7. 小さな視覚的な変更を繰り返します。編集、ログの確認、リロード、修正。

プロジェクト検出

新しいアプリを作成する前に、現在のディレクトリを検査します。

  • package.json に expo 依存関係がある場合:既存のExpoアプリとして扱います。
  • app.json、app.config.*、app/、または expo-router がある場合:依存関係のインストールが必要でもExpoアプリとして扱います。
  • ios/ と android/ があり、Expoがない場合:ユーザーがExpo移行を必要としている場合のみ尋ねます。それ以外は既存のスタックを維持します。
  • 空のディレクトリ:SDK 54テンプレートで新しいExpoアプリを作成します。

電話プレビュー

最初の「すごい」デモにはExpo Goを使用します。これにより、App Store/TestFlightの摩擦を回避できます。

デフォルトではSDK 54を使用します。このワークフローの現在のExpo Goは、SDK 55のプロジェクトを「このバージョンのExpo Goと互換性がありません」と拒否します。ユーザーのExpo Goが新しいSDKをサポートしていることがわかっている場合のみ上書きします。

CODEX_PHONE_LAB_EXPO_TEMPLATE=expo-template-default@sdk-55 <skill-dir>/scripts/new-expo-app.sh my-app

実行:

<skill-dir>/scripts/start-phone-preview.sh lan

スマートフォンが同じWi-Fiに接続されていない場合やLANモードで接続できない場合は、tunnel を使用します。トンネルモードでは、Expoがトンネリング依存関係のインストールを要求する場合があります。

ユーザーワークフロー:

  1. スマートフォンにExpo Goをインストールします。
  2. プレビューコマンドを実行します。
  3. Expo GoまたはスマートフォンのカメラでQRコードをスキャンします。
  4. ターミナルを開いたままにします。アプリの編集はライブで反映されます。

アプリ構築ガイダンス

最初の画面は実際のアプリのように感じさせる:

  • セーフエリアとモバイルサイズのレイアウトを使用します。
  • 実際のインタラクション(フォーム、リスト、ナビゲーション、トグル、タイマー、モックデータ、状態)を構築します。
  • ワークフローが暗示する場合、ローディング、空、エラーの状態を含めます。
  • タイポグラフィはモバイルに十分コンパクトに保ちます。
  • Webのランディングページパターン、特大のヒーローセクション、ネストされたカード、アプリ内説明テキストを避けます。
  • テンプレートにすでに含まれている場合は、マルチスクリーンアプリにExpo Routerを優先します。

配布の決定

ユーザーの目標に最も適した軽量なルートを選択します。

  • ユーザーのスマートフォンでの高速プロトタイプ:Expo Go QR。
  • カスタムネイティブモジュールを含むアプリ:Expo開発ビルド。
  • iPhoneでのベータテストユーザー:EAS/Apple Developerアカウント経由のTestFlight。
  • 公開リリース:App Store / Play Storeへの提出。

Expo Goが本番配布であると暗示しないでください。これはライブ開発プレビューです。

参考資料

Expo Go、開発ビルド、TestFlight、App Storeリリースの選択については、references/expo-phone-workflow.md を参照してください。

関連スキル