Synchronisation
Quand vous travaillez hors ligne, Scripvio enregistre les changements dans une file d’attente locale (SQLite sur l’appareil). Dès que le réseau revient, l’application vide automatiquement cette file vers le serveur — sans action manuelle dans la plupart des cas.
→ Mode hors ligne · FAQ hors ligne
Déclenchement automatique
Section intitulée « Déclenchement automatique »sequenceDiagram participant A as App participant L as File locale participant S as Serveur Note over A: Perte réseau A->>L: Notes, journal, suivi en file Note over A: Réseau détecté A->>A: Bandeau Synchronisation… A->>S: flushOfflineQueue (notes) A->>S: flushOfflineQueue (journal) A->>S: flushOfflineQueue (suivi) S-->>A: IDs serveur, ACK A->>L: File vidée ou réduite| Événement | Comportement |
|---|---|
| Modification en local | Compteur file +1 — bandeau Des modifications attendent… si en ligne sans sync |
| Retour réseau | Bandeau Synchronisation avec le serveur… puis envoi |
| Fin réussie | Bandeau disparaît (file = 0) |
| Échec partiel / total | Échec de la synchronisation… — file conservée, nouvel essai au prochain online |
L’app écoute les changements de connectivité (connectivity_plus) en continu.
Que contient la file ?
Section intitulée « Que contient la file ? »La file agrège plusieurs types d’opérations en attente :
| Domaine | Exemples d’opérations |
|---|---|
| Notes | Créations (local_…), patches, suppressions |
| Sections | Création, mise à jour, réordonnancement |
| Références note | Versets structurés (local_verse_…) |
| Journal | Créations, modifications, publication en attente |
| Suivi | Lectures, prières, méditations créées ou modifiées |
| Rappels (préférences) | Sauvegarde reportée si API indisponible |
Un seul bandeau global reflète la somme de ces files (pas un compteur par type dans l’UI).
Ordre et logique d’envoi
Section intitulée « Ordre et logique d’envoi »| Principe | Détail |
|---|---|
| Flush séquentiel | Notes → journal → suivi (à chaque reconnexion) |
| Création avant patch | Une note local_… est créée sur le serveur avant les patches qui en dépendent |
| Échec réseau | Les lignes restent en file (treatDioFailureAsDeferredSync : timeout, 5xx, pas de réseau) |
| Annulation requête | Ne met pas en file par défaut |
Vous n’avez pas à gérer l’ordre manuellement ; l’app et le serveur gèrent les dépendances (ex. accusé de réception des modifications).
Après une synchronisation réussie
Section intitulée « Après une synchronisation réussie »| Effet | Où vous le voyez |
|---|---|
local_… → id serveur | Listes Créer, éditeurs |
| Publication en attente appliquée | Entrée apparaît en Bibliothèque après refresh |
| Suivi dashboard | Rafraîchi (graphique, calendrier) |
| Références en attente | Badges « en attente » retirés |
Notifications (optionnel)
Section intitulée « Notifications (optionnel) »Selon vos Notifications compte :
- Push : peut signaler fin de sync ou échec (selon configuration serveur / Firebase) ;
- E-mail : récapitulatif possible après sync (évolution produit).
Les rappels personnels Suivi sont locaux — indépendants de cette sync contenu.
Publication et sync
Section intitulée « Publication et sync »| Action hors ligne | Message utilisateur | Après sync |
|---|---|---|
| Publier une note | Publication mise en attente (hors ligne). | Note publiée en Bibliothèque |
| Publier journal | Publication mise en attente (hors ligne). | Entrée journal publiée |
Tant que la publication n’est pas confirmée côté serveur, la Bibliothèque peut ne pas afficher le contenu comme publié.
Multi-appareils
Section intitulée « Multi-appareils »| Situation | Risque |
|---|---|
| Même note modifiée sur téléphone A (offline) et tablette B (online) | Conflit possible — dernière sync ou règles serveur |
| Lecture seule sur B pendant travail sur A | B voit l’ancienne version jusqu’à sync A |
Échec de synchronisation
Section intitulée « Échec de synchronisation »| Symptôme | Cause probable | Actions |
|---|---|---|
| Bandeau Échec de la synchronisation… | API 5xx, timeout, réseau instable | Rester en ligne ; rouvrir l’app |
| File qui ne descend pas | Erreur récurrente sur un item | Noter le message ; support |
| Données toujours visibles localement | Normal | Rien n’est « perdu » sur l’appareil tant que vous ne vous déconnectez pas |
| Après déconnexion forcée offline | Dialogue avertissement | Confirmer seulement si vous acceptez la perte locale |
Les tooltips éditeur peuvent afficher En attente de synchronisation ou Échec de synchro — toujours enregistré sur cet appareil sur certains versets.
Actions qui forcent ou dépendent de la sync
Section intitulée « Actions qui forcent ou dépendent de la sync »| Action | Lien avec la sync |
|---|---|
| Export PDF | Propose Synchroniser avant l’export si file non vide |
| Recherche → Ajouter verset | Nécessite note/journal déjà sur serveur |
| Lien Suivi ↔ journal | Après ids serveur stables |
| Refresh profil | Pull profil = réseau |
Déconnexion et purge locale
Section intitulée « Déconnexion et purge locale »À la déconnexion, Scripvio peut effacer le cache et la file locale de cet appareil (surtout si vous confirmez hors ligne avec données non sync).
À la connexion sur un nouvel appareil : téléchargement des données compte + cache initial (event types, etc.).
→ Profil
Vérifier que tout est synchronisé
Section intitulée « Vérifier que tout est synchronisé »| Indicateur | État « OK » |
|---|---|
| Bandeau offline/sync | Absent |
Note local_… | Remplacée par id numérique / UUID serveur |
| Publication | Visible en Bibliothèque |
| PDF export | Accepté sans dialogue de sync préalable |
Si le bandeau En attente persiste en ligne : laissez l’app au premier plan quelques instants ou rouvrez l’application.
Questions fréquentes
Section intitulée « Questions fréquentes »Puis-je synchroniser manuellement ?
Pas de bouton dédié dans l’UI actuelle — la reconnexion et l’ouverture de l’app relancent le flush.
Combien de temps garde-t-on la file ?
Jusqu’à succès, déconnexion (purge), ou réinstallation.
La sync utilise-t-elle beaucoup de données ?
Envoie les changements (JSON), pas tout le catalogue — raisonnable sur mobile.
Sync en arrière-plan iOS/Android ?
Dépend des OS ; rouvrir Scripvio après le réseau est le plus fiable.
Guides associés
Section intitulée « Guides associés »| Sujet | Lien |
|---|---|
| Mode hors ligne | Mode hors ligne |
| FAQ | Hors ligne et sync |
| Notes | Brouillon et publication |
| Bibliothèque | Brouillons et publiés |