Mode hors-ligne — comment ça marche

File d'attente des mutations, synchronisation au retour réseau et résolution des conflits.

Vos équipes terrain travaillent souvent dans des zones sans réseau : sous-sols, sites isolés, intérieurs métalliques. L'app Bordoly est conçue pour que vos saisies terrain ne se perdent jamais : chaque action est enregistrée sur l'appareil puis synchronisée automatiquement au retour de la connexion.

Limite à connaître : la consultation hors-ligne (tournée, sessions) fonctionne tant que l'app reste ouverte (y compris en arrière-plan). Si l'app est fermée puis relancée sans réseau, les listes apparaissent vides jusqu'à la reconnexion — vos saisies en attente, elles, restent bien enregistrées et seront synchronisées.

Génération du diagramme…

Flux offline — les mutations sont stockées localement puis rejouées automatiquement à la reprise réseau.

Ce qui marche hors-ligne

ActionApp restée ouverteAprès fermeture de l'appSynchronisée à la reconnexion
Voir la tournée du jour (chargée avant)OuiNon — reconnexion nécessaire
Voir une session OPEN et ses entréesOuiNon — reconnexion nécessaire
Saisir une nouvelle entrée de déchetsOuiNon — l'écran de session n'est plus accessibleOui
Prendre des photos horodatéesOuiNon — l'écran de session n'est plus accessibleOui
Confirmer arrivée sur site (IN_PROGRESS)OuiNon — l'écran de tournée n'est plus accessibleOui
Signer un BSD (chauffeur + client)OuiNon — l'écran de tournée n'est plus accessibleOui
Émettre un BSD côté TrackDéchetsNonNonOui (différé)
Recevoir une nouvelle assignationNonNonOui (au retour)
Recevoir une notification pushNonNonOui (au retour)

Les saisies déjà en file d'attente au moment où l'app est fermée survivent à la fermeture (file persistée sur l'appareil) et sont rejouées à la reconnexion — seule la consultation et les nouvelles saisies exigent que l'app soit restée ouverte ou que le réseau soit revenu.

Comment ça marche

L'app maintient une file d'attente locale (mutation queue) stockée dans un SQLite embarqué. Chaque action utilisateur crée une mutation typée (waste_entry_create, pickup_confirm, session_report, etc.) qui :

  1. Est appliquée immédiatement dans le cache local (UI optimiste)
  2. Est ajoutée à la file d'attente persistante
  3. Est rejouée vers l'API dès que le réseau revient

Tant qu'une mutation est en attente, un badge "synchronisation en cours" apparaît en haut de l'écran de session. Au retour réseau, l'app rejoue les mutations dans l'ordre chronologique.

Synchronisation automatique

L'app déclenche une synchronisation à :

  • L'ouverture de l'app (cold start)
  • Chaque retour au foreground (app rouverte depuis l'arrière-plan)
  • Chaque retour de connectivité (sortie d'une zone blanche)

Aucune action manuelle n'est nécessaire en temps normal.

Photos hors-ligne

Les photos prises hors-ligne sont :

  • Stockées en local sur le téléphone (chiffrées via le système)
  • Horodatées avec le timestamp du téléphone (utilisez l'heure réseau si possible — paramètres système)
  • Géolocalisées si la permission a été accordée
  • Téléversées dès que le réseau revient

Si le téléphone tombe en panne ou est perdu avant la synchronisation, les photos non synchronisées sont perdues. C'est pourquoi nous recommandons une synchronisation régulière (au moins en fin de demi-journée).

Résolution des conflits

Quand l'app rejoue ses mutations, certaines peuvent échouer :

CauseSymptômeRésolution
Demande annulée pendant la coupure"Demande introuvable" sur l'entréeL'entrée est supprimée, prévenir l'admin
Session fermée pendant la coupure"Session fermée"Demander la réouverture à l'admin
BSD déjà signé côté exutoire"BSD verrouillé"L'historique TD prévaut, on n'écrase pas
Quota dépassé entre temps"Quota plan dépassé"Voir comprendre les quotas

Les mutations en échec apparaissent dans la liste des erreurs de synchro (en haut de l'écran). Le technicien peut les réessayer manuellement ou les supprimer si elles ne sont plus pertinentes.

Bonnes pratiques

  • Synchronisez au moins une fois par demi-journée (matin avant départ, midi au déjeuner, soir au retour)
  • Vérifiez le compteur "synchronisations en attente" avant de fermer l'app pour la journée — si le badge est rouge, attendez ou forcez la synchro depuis le menu
  • Rangez le téléphone chargé — un téléphone éteint pendant 3 jours dans une cabine de camion ne synchronisera rien
  • En cas d'erreur récurrente sur une mutation, prenez une capture d'écran et envoyez-la au support : c'est souvent un cas limite

Et après ?

Vous êtes bloqué ? Écrivez-nous à support@bordoly.fr — engagement Standard : réponse sous 4h ouvrées (lun-ven 9h-18h CET). Entreprise : sous 1h ouvrées (8h-20h CET).

Cet article vous a-t-il aidé ?