Aller au contenu

ADR 0031 – Application terrain sous Capacitor

Statut : Décidée. Date : 29/09/2026. Écart : EC-033 (décision). Modifie l’ADR 0005.

Le découpage prévoit une PWA au démarrage, avec Capacitor en réserve. Or le mode « marcher le contour » du Lot 3 exige un enregistrement continu de la position, même écran éteint, et la précision des polygones conditionne la capacité (EC-012). Une PWA s’interrompt écran verrouillé : l’API Screen Wake Lock atténue le problème sans le régler. Elle n’a pas non plus accès au statut du récepteur GNSS ni aux récepteurs externes. Le Lot 3 étant sur le chemin critique, le choix est fait au Lot 0.

apps/terrain reste une application React + Vite, emballée par Capacitor dans une application Android dès le Lot 3. Aucun autre choix du découpage n’est remis en cause : PowerSync, TanStack Router, react-jsonschema-form, MapLibre et l’impression BLE restent valables.

Plugins natifs : suivi de position en service de premier plan (notification permanente), statut GNSS (satellites, qualité du fix), stockage sécurisé Android pour les jetons, empreinte digitale pour le déverrouillage local.

La source de position est une interface dans apps/terrain, avec trois implémentations prévues : navigateur, Capacitor et récepteur externe. Le build web reste possible pour les démonstrations, avec un avertissement « précision non garantie » sur les écrans de carte.

Distribution du pilote : APK installé directement sur les téléphones enrôlés. Play Store ensuite si nécessaire.

PWA seule : pas d’enregistrement continu fiable écran éteint, pas d’accès au statut GNSS. Application native Android écrite à part : réécriture complète, deux bases de code.

  • Nouvelle dépendance du socle : Capacitor et ses plugins. D’où cette ADR.
  • Mises à jour non instantanées : elles passent par l’installation d’un APK.
  • Le critère GNSS bifréquence s’ajoute au choix des téléphones (GPS-05) et un test comparatif entre dans les critères de fin du Lot 3 (GPS-07).
  • Les ADR 0003, 0019, 0020 et 0028 sont ajustées. L’ADR 0027 est à réexaminer au test d’impression du Lot 3 : l’impression BLE dans la vue web emballée peut demander un plugin Bluetooth.

Le code restant du React + Vite, on retire les plugins et on revient à la PWA en gardant l’interface de source de position (implémentation navigateur). Seuls le suivi continu et le statut GNSS sont perdus.

ecarts.md, EC-033 et GPS-01 à GPS-07.