feat: app mobile React Native / Expo (v0.31.0)
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>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user