faa1e82301
Package mobile/ (Expo SDK 56, expo-router) réutilisant l'API backend : Login (mdp+TOTP), Chat (+ TTS expo-speech), Review (approuver/refuser). JWT en expo-secure-store, thème dark HUD, EXPO_PUBLIC_API_BASE. typecheck vert. STT mobile reporté (lib native), TTS OK. Versions gérées par Expo. Palier de risque : reversible (client mobile, API commune). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# 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.
|