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 專案,並顯示「Project is incompatible with this version of 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 碼。
- 保持終端機開啟;應用程式的編輯會即時更新。
應用程式建置指引
讓第一個畫面感覺像真正的應用程式:
- 使用安全區域和適合行動裝置的佈局。
- 建立實際互動:表單、列表、導航、切換開關、計時器、模擬資料或狀態。
- 當工作流程暗示時,包含載入、空白和錯誤狀態。
- 保持排版在行動裝置上足夠緊湊。
- 避免網頁登陸頁面模式、過大的英雄區段、巢狀卡片和應用程式內的解釋性文字。
- 當範本已包含時,偏好使用 Expo Router 建立多畫面應用程式。
發行決策
選擇最輕量且符合使用者目標的路徑:
- 在使用者手機上快速原型:Expo Go QR 碼。
- 包含自訂原生模組的應用程式:Expo 開發建置。
- iPhone 上的 Beta 測試者:透過 EAS/Apple Developer 帳戶使用 TestFlight。
- 公開發行:App Store / Play Store 提交。
不要暗示 Expo Go 是生產環境發行方式。它是一個即時開發預覽。
參考資料
在決定使用 Expo Go、開發建置、TestFlight 和 App Store 發行之間時,請閱讀 references/expo-phone-workflow.md。