# mobile — app CHLOVA (React Native / Expo) Client natif iOS/Android, **réutilise l'API du backend** (mêmes endpoints que le web). Expo SDK 56 + expo-router. Thème dark HUD (voir `../docs/ui-design.md`). ## Lancer ```bash npm install # URL du backend (HTTPS, derrière Traefik) : export EXPO_PUBLIC_API_BASE=https://chlova.example.com # PowerShell: $env:EXPO_PUBLIC_API_BASE=... npm start # puis 'a' (Android) / 'i' (iOS) / QR Expo Go npm run typecheck ``` ## Écrans | Fichier | Rôle | |---|---| | `app/login.tsx` | Login fort (mot de passe + TOTP). | | `app/(tabs)/chat.tsx` | Conversation agent + TTS (expo-speech). | | `app/(tabs)/review.tsx` | Need-review : approuver / refuser (confirm natif). | | `src/api.ts` | Client API (base = `EXPO_PUBLIC_API_BASE`). | | `src/auth.tsx` | JWT en `expo-secure-store` (Keychain/Keystore). | ## Notes - **STT** (dictée) non inclus en v1 (nécessite une lib native dédiée) ; **TTS** OK via `expo-speech`. La voix complète existe déjà côté web. - Versions des libs gérées par **Expo** (`npx expo install`), pas en épinglage exact (norme de l'écosystème RN/Expo). - `npm audit` : ~10 alertes modérées dans la **chaîne de build Expo CLI** (`xcode`/`uuid`, prebuild dev-time) — pas dans le bundle livré ; non corrigeables sans casser le SDK.