Files
siop2/apps/mobile
pr-daaif 6f74fd4206 fix(mobile): expo-file-system deleteAsync — import legacy subpath
SDK 57 deprecates the module-level functions (deleteAsync included) in
favor of the File/Directory classes, and now throws at runtime in dev
instead of just warning — surfaced as a red-box crash on the Assistant
screen right after transcription (found in recette, 02/08). The dictée
purge in cloture.tsx uses the exact same call and was silently affected
too. Fix: import from 'expo-file-system/legacy' in both — same function
signature, no behavior change, just the non-deprecated entry point.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-02 13:12:44 +01:00
..

@siop/mobile — l'app du technicien (R4)

Expo (SDK 57), offline-first, périmètre fermé : Ma journée, scan, préventif, synchro — la gestion reste web, le demandeur reste sur le portail QR public. Maquettes validées : docs/02-design/maquettes/maquette-r4.html (+ décisions D1-D5 au journal du 17/07/2026).

Lancer

# API locale d'abord (apps/api : pnpm dev), puis :
pnpm --filter @siop/mobile start          # QR Expo Go (téléphone sur le MÊME réseau)
EXPO_PUBLIC_API_URL=http://192.168.x.y:3000 pnpm --filter @siop/mobile start
  • EXPO_PUBLIC_API_URL : URL de l'API vue depuis le téléphone (IP LAN, pas localhost). Défaut : http://localhost:3000 (suffisant pour expo start --web).
  • Vérification navigateur : expo start --web + CORS_ORIGINS=http://localhost:8081 côté API (les apps natives n'envoient pas d'Origin — CORS ne concerne que le web).

Ce que porte R4.1 (socle)

  • Connexion e-mail/mot de passe + sélecteur démo (ADR-002 : n'existe que si l'API l'expose).
  • Coquille tabbar (onglets à venir marqués R4.2/R4.3) + Ma journée : OT triés priorité puis échéance (src/lib/journee.ts, testé), urgence en tête, pastille de synchro.
  • Lecture hors-ligne (D1) : cache TanStack persisté dans AsyncStorage (7 jours), NetInfo pilote onlineManager + bandeau. L'écriture en file arrive en R4.3.
  • Client typé généré depuis docs/openapi.json (pnpm generate:client) — règle d'or ADR-001.
  • Jeton dans SecureStore (trousseau) ; AsyncStorage en repli web de dev.

Tests

pnpm --filter @siop/mobile test (jest-expo — logique pure : tri, tokens) ; typecheck et le lint racine s'appliquent (job CI mobile).