diff --git a/DIRECTIVE_MOBILE_STORES_20260803.md b/DIRECTIVE_MOBILE_STORES_20260803.md new file mode 100644 index 0000000..f0bf557 --- /dev/null +++ b/DIRECTIVE_MOBILE_STORES_20260803.md @@ -0,0 +1,105 @@ +# 📱 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.