Application mobile hors ligne : comment synchroniser les données ?

poze 2 months ago618 gadefr

2

Des agents de terrain collectent des données dans des zones sans réseau. À leur retour en ville, l'app doit tout envoyer au serveur. Comment concevoir la synchronisation sans perdre ni dupliquer de données ?

Dyagnostik IA

Se IA ki fè l. Se pa yon repons — kominote a anba a konfime oswa korije l. Toujou verifye anvan ou fye l.

poze 2 months ago

1 Repons

9
✓
✓ Repons yo aksepte

Architecture éprouvée pour la collecte terrain :

1. Base locale d'abord : toutes les écritures vont dans SQLite (via drift/sqflite en Flutter, Room en Kotlin, expo-sqlite en RN). L'interface lit la base locale, jamais directement le réseau. 2. Identifiants générés sur l'appareil : UUID (v7 idéalement) créés à la saisie. Le serveur les accepte tels quels, ce qui évite les conflits d'ID et rend les renvois idempotents. 3. File d'envoi (outbox) : chaque création ou modification ajoute une entrée « à synchroniser ». Au retour du réseau, envoie par lots. Le serveur fait un upsert par UUID : un renvoi après coupure ne crée pas de doublon. 4. Tirer les changements du serveur avec un curseur : GET /changes?since=<horodatage ou numéro de version>. 5. Conflits : définis la règle métier (dernier écrit gagne, champ par champ, ou résolution manuelle). Pour de la collecte où chaque agent crée ses propres fiches, les conflits sont rares. 6. Photos et pièces jointes : envoi séparé, reprise possible, compression avant l'envoi. 7. Visibilité : affiche le nombre d'éléments en attente, et permet de forcer la synchronisation.

Des solutions clés en main existent aussi : PowerSync, ElectricSQL, Couchbase Lite, ou ODK/KoboToolbox, très utilisés par les ONG pour les formulaires de collecte.

Konekte pou di lòt moun si li te mache.

answered 2 months ago

Sign in and verify your email to post an answer.