Files
siop2/apps/mobile
pr-daaif 21dd6cf034 feat(r6): R6.2 — Parc sur mobile (Sites, Ascenseurs)
useLocations() mobile ; écran Sites (premier niveau) ; fiche site
(identité, zones, ascenseurs du site — consultation seule, D4, pas de
carte ni d'édition sur mobile pour l'instant) ; écran Ascenseurs (parc
complet déjà préchargé, D1) ouvrant la fiche appareil R4 telle quelle
(déjà générique, aucune modification nécessaire). Menu : Ascenseurs/Sites
routent réellement au lieu de « à venir » ; Catégories reste à venir
(admin, hors périmètre R6.2).

Exécution directe de la maquette R6 déjà validée, patrons visuels
réutilisés (Carte/LigneInfo/EnteteFiche) — pas de nouveau tour de design.

Typecheck propre, 17 tests Jest, lint 5/5 paquets.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-02 11:27:50 +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).