Codex Phone Lab
Utilisez cette compétence pour transformer une demande en une application React Native/Expo que l'utilisateur peut ouvrir sur un téléphone physique avec Expo Go. Optimisez pour un cycle rapide « demande → application → téléphone » avant d'envisager un simulateur, des builds natives, TestFlight ou une distribution sur l'App Store.
Modèle de fonctionnement
Privilégiez ce chemin sauf si l'utilisateur a explicitement besoin de modules natifs iOS/Android :
- Vérifiez les prérequis locaux avec
scripts/doctor.sh. - S'il n'existe aucun projet mobile, créez une application Expo avec
scripts/new-expo-app.sh <nom-app>. Ce script utilise par défautexpo-template-default@sdk-54pour garantir la compatibilité avec la version actuelle d'Expo Go utilisée par ce workflow. - Construisez rapidement le premier écran utilisable ; ne créez pas de page d'accueil.
- Lancez l'aperçu téléphone avec
scripts/start-phone-preview.sh [lan|tunnel|local]. - Gardez le serveur de développement en cours d'exécution pendant que vous modifiez le code. Utilisez les logs Metro/Expo pour corriger les erreurs d'exécution.
- Demandez à l'utilisateur d'installer Expo Go, de scanner le QR code et de garder le téléphone sur le même réseau en mode LAN.
- Itérez par petites modifications visibles : éditez, observez les logs, rechargez, corrigez.
Détection de projet
Avant de créer une nouvelle application, inspectez le répertoire courant :
package.jsonavec la dépendanceexpo: traitez comme une application Expo existante.app.json,app.config.*,app/ouexpo-router: traitez comme une application Expo même si les dépendances doivent être installées.ios/etandroid/sans Expo : demandez seulement si l'utilisateur a besoin d'une migration vers Expo ; sinon conservez la pile existante.- Répertoire vide : créez une nouvelle application Expo avec le modèle SDK 54.
Aperçu téléphone
Utilisez Expo Go pour la première démo « waouh » car cela évite les contraintes de l'App Store/TestFlight.
Utilisez le SDK 54 par défaut. La version actuelle d'Expo Go dans ce workflow rejette les projets SDK 55 avec le message « Project is incompatible with this version of Expo Go ». Remplacez uniquement si l'Expo Go de l'utilisateur prend en charge un SDK plus récent :
CODEX_PHONE_LAB_EXPO_TEMPLATE=expo-template-default@sdk-55 <skill-dir>/scripts/new-expo-app.sh mon-app
Exécutez :
<skill-dir>/scripts/start-phone-preview.sh lan
Utilisez le mode tunnel lorsque le téléphone n'est pas sur le même Wi-Fi ou que le mode LAN ne peut pas se connecter. Le mode tunnel peut demander à Expo d'installer une dépendance de tunneling.
Le workflow utilisateur :
- Installez Expo Go sur le téléphone.
- Exécutez la commande d'aperçu.
- Scannez le code QR depuis Expo Go ou l'appareil photo du téléphone.
- Laissez le terminal ouvert ; les modifications de l'application se rechargent en direct.
Conseils pour la création de l'application
Faites en sorte que le premier écran donne l'impression d'une véritable application :
- Utilisez les zones de sécurité et les mises en page adaptées au mobile.
- Créez une interaction réelle : formulaires, listes, navigation, boutons, minuteries, données fictives ou état.
- Incluez les états de chargement, vides et d'erreur lorsque le workflow les implique.
- Gardez une typographie suffisamment compacte pour le mobile.
- Évitez les motifs de page d'accueil Web, les sections héros surdimensionnées, les cartes imbriquées et le texte explicatif dans l'application.
- Préférez Expo Router pour les applications multi-écrans lorsque le modèle l'inclut déjà.
Décision de distribution
Choisissez la route la plus légère qui correspond à l'objectif de l'utilisateur :
- Prototype rapide sur le téléphone de l'utilisateur : QR code Expo Go.
- Application avec modules natifs personnalisés : build de développement Expo.
- Bêta-testeurs sur iPhone : TestFlight via un compte EAS/Apple Developer.
- Sortie publique : soumission à l'App Store / Play Store.
N'insinuez pas qu'Expo Go est une distribution de production. Il s'agit d'un aperçu de développement en direct.
Références
Consultez references/expo-phone-workflow.md pour décider entre Expo Go, les builds de développement, TestFlight et la sortie sur l'App Store.