# 📱 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.
