Codex Phone Lab は何をしますか?
このスキルを使用すると、プロダクトプロンプトをReact Native/Expoアプリに変換し、ユーザーがExpo Goを使って実機で開けるようになります。シミュレーター、ネイティブビルド、TestFlight、App Store配布を検討する前に、「プロンプト→アプリ→実機」の高速ループを最適化します。
運用モデル
以下のパスを優先します(ユーザーが明示的にネイティブiOS/Androidモジュールを必要としない限り)。
scripts/doctor.shでローカルの前提条件を確認します。- モバイルプロジェクトが存在しない場合は、
scripts/new-expo-app.sh <app-name>でExpoアプリを作成します。これにより、デフォルトでexpo-template-default@sdk-54が使用され、現在のワークフローで使用されているExpo Goバージョンで開くことができます。 - 最初の使用可能な画面を迅速に構築します。ランディングページは作成しません。
scripts/start-phone-preview.sh [lan|tunnel|local]で電話プレビューを開始します。- 編集しながら開発サーバーを起動したままにします。Metro/Expoのログを使用して実行時エラーを修正します。
- ユーザーにExpo Goをインストールし、QRコードをスキャンし、LANモードの場合はスマートフォンを同じネットワークに接続するように指示します。
- 小さな視覚的な変更を繰り返します。編集、ログの確認、リロード、修正。
プロジェクト検出
新しいアプリを作成する前に、現在のディレクトリを検査します。
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がトンネリング依存関係のインストールを要求する場合があります。
ユーザーワークフロー:
- スマートフォンにExpo Goをインストールします。
- プレビューコマンドを実行します。
- Expo GoまたはスマートフォンのカメラでQRコードをスキャンします。
- ターミナルを開いたままにします。アプリの編集はライブで反映されます。
アプリ構築ガイダンス
最初の画面は実際のアプリのように感じさせる:
- セーフエリアとモバイルサイズのレイアウトを使用します。
- 実際のインタラクション(フォーム、リスト、ナビゲーション、トグル、タイマー、モックデータ、状態)を構築します。
- ワークフローが暗示する場合、ローディング、空、エラーの状態を含めます。
- タイポグラフィはモバイルに十分コンパクトに保ちます。
- 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 を参照してください。