Comment enregistrer une activité de terrain hors ligne dans Seringueiro
Quand le réseau disparaît au champ, le vrai risque n’est pas seulement de perdre un signal. Le vrai risque est de perdre la trace du travail déjà fait. Dans Seringueiro, le flux d’activité de terrain a été pensé en mode offline-first, pour que le suivi commence sur place, continue même avec connectivité instable et ne dépende pas d’un retour immédiat au serveur. Choisir le bon contexte avant de démarrer Le flux commence par un bottom sheet simple. Quand l’utilisateur a des modules liés, l’app
Publie le 21 avril 2026
4 min de lecture
Matheus Peguim
Quand le réseau disparaît au champ, le vrai risque n’est pas seulement de perdre un signal. Le vrai risque est de perdre la trace du travail déjà fait. Dans Seringueiro, le flux d’activité de terrain a été pensé en mode offline-first, pour que le suivi commence sur place, continue même avec connectivité instable et ne dépende pas d’un retour immédiat au serveur.
Choisir le bon contexte avant de démarrer
Le flux commence par un bottom sheet simple. Quand l’utilisateur a des modules liés, l’app peut d’abord demander la propriété et le module. Ensuite, elle propose le type d’activité, comme saignée, stimulation ou traitement. Si une collecte ou une livraison éligible existe déjà dans ce périmètre, ces chemins peuvent aussi apparaître au même point du flux.
Avant de lancer le suivi, l’app vérifie aussi le contexte terrain. Si la position est clairement hors propriété, avec plus de 50 mètres d’écart par rapport au périmètre, le démarrage est bloqué. Si la personne est hors module mais encore dans une zone tolérable, l’app affiche un avertissement et demande une confirmation explicite.
Sélectionner le type et la table sans compliquer
Une fois le contexte défini, l’utilisateur choisit le type d’activité puis la table. Le composant de sélection propose des tables de 1 à 10, avec possibilité de partir d’une table suggérée et de la corriger rapidement. Cette étape est simple, mais elle est importante parce qu’elle structure ensuite la lecture de l’activité en cours et du registre final.
Le démarrage demande aussi les autorisations nécessaires pour le suivi en arrière-plan. Sur iOS, l’app peut encore orienter l’utilisateur vers l’activation de la Live Activity. Sur Android, le suivi repose sur un Foreground Service avec notification persistante pour éviter que le système tue le processus pendant le travail au champ.
Ce qui se passe pendant une activité hors ligne
Dès que l’activité démarre, Seringueiro n’attend pas le cloud pour agir. Chaque point GPS ou changement d’état est sauvegardé d’abord dans le cache local. Sur Android, la collecte principale passe par le service de premier plan avec répétition toutes les 3 minutes. Sur iOS, l’app maintient un flux de position dans le processus principal avec ses propres garde-fous de fréquence.
L’écran d’activité en cours reste minimaliste, avec un grand compteur de durée, la distance parcourue quand elle existe, la table choisie et une alerte légère si la synchronisation est encore en attente. L’idée n’est pas d’afficher une carte compliquée, mais de donner juste assez de signal pour que l’utilisateur sache que le suivi continue vraiment.
Comment la synchronisation revient quand le réseau revient
Le service de synchronisation ne jette pas tout d’un coup au backend. Il surveille la connectivité et tente de rejouer seulement ce qui manque, en comparant les points déjà envoyés avec le total capturé localement. Quand le document distant existe déjà, il pousse seulement le delta. Quand il n’existe pas encore, il le crée d’abord puis poursuit l’envoi.
Ce détail compte parce qu’il évite deux erreurs chères au terrain, perdre un trajet complet après une coupure ou dupliquer les points après plusieurs tentatives. Si un envoi échoue trop de fois, le service applique encore un backoff au lieu de bloquer toute la file. L’activité n’est retirée du cache local qu’après confirmation de succès total côté Firestore.
Erreurs à éviter pour ne pas perdre une journée
démarrer une activité hors périmètre en ignorant l’alerte ou le blocage,
penser qu’une absence de réseau empêche le suivi alors que le cache local continue d’enregistrer,
finaliser trop tôt, alors que le flux impose une durée minimale de 5 minutes pour une clôture normale,
annuler une activité en croyant qu’elle restera comme historique complet,
confondre notification persistante et bruit alors qu’elle fait partie de la robustesse du suivi sur Android.
Ce qu’il faut retenir
Dans Seringueiro, enregistrer une activité de terrain hors ligne consiste à choisir le bon contexte, sélectionner le type et la table, laisser l’app capturer localement les points pendant le travail et attendre que la synchronisation rejoue ensuite ce qui manque quand le réseau revient.
Quand le registre commence au champ et non au retour du signal, le travail reste visible même après une journée instable.