# 📱 DIRECTIVE · Applications mobiles OTOV7 · iOS + Android · 2026-08-03 ## Confirmation Michel « Il faut régler les applications mobiles aussi » · Sprint 5 du mandat DTP. ## État actuel (audit 2026-08-03) ### Repos et versions - **Actif** · `/opt/oto/mobile/native/` · Expo SDK **51.0.0** (react-native, TypeScript, expo-router) - Backup upgrade54 · `native.bak-upgrade54-20260727_224241/` · tentative upgrade Expo 54 abandonnée (à investiguer) - Backup pré-upgrade · `native.bak-20260726-112957/` (référence) ### Bundle identifiers - iOS · `com.otov7.app` - Android · `com.otov7.app` - App name · `OTOV7` ### Routes déjà scaffoldées `/opt/oto/mobile/native/app/` · - `(chantier)/` · portail chef de chantier - `(client)/` · portail client mobile - `(vendeur)/` · portail vendeur - `(tabs)/` · navigation bottom tabs - `_layout.tsx`, `index.tsx`, `login.tsx` ### Comptes stores (confirmé Michel mai 2026) ✅ **Apple Developer** actif (9/an) ✅ **Google Play Developer** actif (5 one-time) ### Ce qui bloque encore - ⏳ **EAS Token** (Expo Application Services) · Michel doit créer https://expo.dev + partager token - ⏳ Credentials Apple · Team ID, App Store Connect App ID, .p8 push key (voir STORE_TODO.md) - ⏳ Credentials Google · service account JSON pour Play Console ## Actions pour agents Claude Code DTP ### P0 · Décision upgrade Expo 51 → 54 1. Investiguer pourquoi l'upgrade Expo 54 a été abandonnée le 2026-07-27 2. Si problème résolu · reprendre l'upgrade (Expo 54 = React Native 0.76 + New Architecture stable) 3. Sinon · rester sur Expo 51 (SDK LTS jusqu'à mi-2026) ### P1 · CI/CD Mobile 1. Créer workflow Gitea Actions `.gitea/workflows/mobile-build.yml` · - Trigger sur push branche `main` ou tag `v*` - Job iOS · `eas build --platform ios --profile production --non-interactive` - Job Android · `eas build --platform android --profile production --non-interactive` 2. Store EAS_TOKEN comme secret Gitea (attend token Michel) ### P2 · Fonctionnalités mobiles à finaliser Selon roadmap OTOV7 mobile · 1. **Login OTP** via Meta WhatsApp Cloud API (+18495172355) déjà configuré 2. **Portail client** · mêmes onglets que `/mon-compte/` web (Profil, Unités, Documents, Paiements, Financement, Chantier, SAV, HOA) 3. **Portail vendeur** · CRM + pipeline + commissions 4. **Portail chantier** · photos progress + IoT devices + log accès 5. **Notifications push** · via Expo Push API (endpoint backend à créer) 6. **Sync offline** · TanStack Query (déjà installé) + persistance AsyncStorage 7. **Trilingue FR/ES/EN** · i18n via expo-localization ### P3 · Assets stores 1. Icône app · 1024x1024 (Cormorant Garamond + logo HELIOS) 2. Splash screen · variantes light/dark 3. Screenshots 6.7" iPhone (5 min · portrait) · 6.9" iPhone (idem) 4. Screenshots tablet iPad Pro 12.9" 5. Screenshots Android · pixel 6 XL portrait + tablette 6. Feature graphic Android 1024x500 7. Description longue FR/EN/ES (max 4000 caractères) 8. Description courte (80 caractères) 9. Mots-clés App Store (100 char max, séparés virgule) 10. Video promo optionnel (30 secondes) ### P4 · Submit stores 1. Une fois EAS_TOKEN et credentials fournis · - `eas submit --platform ios --profile production` - `eas submit --platform android --profile production --track internal` puis promotion en `production` 2. Review Apple · 24-48h 3. Review Google · 1-3 jours ### P5 · TestFlight + Play Console Internal 1. Beta testeurs · Michel + Xavier + Cesar + Martires + 5 clients pilotes 2. Feedback loop · Gitea Issues avec label `mobile-beta` 3. Itération v1.0.1, v1.0.2, ... jusqu'à validation puis release production ## Bloqueurs vs non-bloqueurs ### Vrais bloqueurs (nécessitent Michel) - EAS_TOKEN (2 min à créer sur expo.dev) - Credentials Apple .p8 push key - Credentials Google service account JSON ### Non-bloqueurs (agents peuvent avancer) - Upgrade Expo 51/54 · à investiguer localement - Ajout portails Client/Vendeur/Chantier · code TypeScript autonome - CI/CD Gitea Actions · configurer sans token, activation quand Michel fournit - Assets stores · générer icônes/splash/screenshots via script - Contenus descriptions · rédiger FR/EN/ES ## Résultat attendu - **Semaine 1** · upgrade Expo décidé + portails Client/Vendeur/Chantier complétés + CI/CD prêt - **Semaine 2 (dès token Michel)** · builds production iOS + Android + submit stores - **Semaine 3-4** · TestFlight + Play Internal + feedback - **Semaine 5** · production live sur les 2 stores Commit progress régulier avec label `[Sprint 5 Mobile]` sur Gitea.