Salta ai contenuti

Sincronizzazione

Quando lavori offline, Scripvio registra le modifiche in una coda locale (SQLite sul dispositivo). Appena la rete torna, l’applicazione svuota automaticamente questa coda verso il server — senza azione manuale nella maggior parte dei casi.

Modalità offline · FAQ offline


sequenceDiagram
participant A as App
participant L as Coda locale
participant S as Server
Note over A: Perdita rete
A->>L: Note, diario, monitoraggio in coda
Note over A: Rete rilevata
A->>A: Banner Sincronizzazione…
A->>S: flushOfflineQueue (note)
A->>S: flushOfflineQueue (diario)
A->>S: flushOfflineQueue (monitoraggio)
S-->>A: ID server, ACK
A->>L: Coda svuotata o ridotta
EventoComportamento
Modifica in localeContatore coda +1 — banner Alcune modifiche sono in attesa… se online senza sync
Ritorno reteBanner Sincronizzazione con il server… poi invio
Fine riuscitaBanner scompare (coda = 0)
Errore parziale / totaleSincronizzazione non riuscita… — coda conservata, nuovo tentativo al prossimo online

L’app ascolta i cambiamenti di connettività (connectivity_plus) in continuo.


La coda aggrega diversi tipi di operazioni in attesa:

DominioEsempi di operazioni
NoteCreazioni (local_…), patch, eliminazioni
SezioniCreazione, aggiornamento, riordino
Riferimenti notaVersetti strutturati (local_verse_…)
DiarioCreazioni, modifiche, pubblicazione in attesa
MonitoraggioLetture, preghiere, meditazioni create o modificate
Promemoria (preferenze)Salvataggio rinviato se API non disponibile

Un solo banner globale riflette la somma di queste code (nessun contatore per tipo nell’UI).


PrincipioDettaglio
Flush sequenzialeNote → diario → monitoraggio (a ogni riconnessione)
Creazione prima del patchUna nota local_… viene creata sul server prima dei patch che ne dipendono
Errore reteLe righe restano in coda (treatDioFailureAsDeferredSync: timeout, 5xx, nessuna rete)
Annullamento richiestaNon mette in coda per impostazione predefinita

Non devi gestire l’ordine manualmente; app e server gestiscono le dipendenze (es. conferma delle modifiche).


EffettoDove lo vedi
local_… → id serverElenchi Crea, editor
Pubblicazione in attesa applicataVoce compare in Biblioteca dopo refresh
Dashboard MonitoraggioAggiornata (grafico, calendario)
Riferimenti in attesaBadge « in attesa » rimossi

In base alle Notifiche account:

  • Push: può segnalare fine sync o errore (secondo configurazione server / Firebase);
  • E-mail: riepilogo possibile dopo sync (evoluzione prodotto).

I promemoria personali Monitoraggio sono locali — indipendenti da questa sync contenuti.

Notifiche


Azione offlineMessaggio utenteDopo sync
Pubblica una notaPubblicazione in coda (offline).Nota pubblicata in Biblioteca
Pubblica diarioPubblicazione in coda (offline).Voce diario pubblicata

Finché la pubblicazione non è confermata lato server, la Biblioteca può non mostrare il contenuto come pubblicato.


SituazioneRischio
Stessa nota modificata su telefono A (offline) e tablet B (online)Conflitto possibile — ultima sync o regole server
Lettura su B durante lavoro su AB vede la versione vecchia fino a sync A

SintomoCausa probabileAzioni
Banner Sincronizzazione non riuscita…API 5xx, timeout, rete instabileResta online; riapri l’app
Coda che non scendeErrore ricorrente su un elementoAnnota il messaggio; supporto
Dati sempre visibili in localeNormaleNulla è « perso » sul dispositivo finché non esci
Dopo disconnessione forzata offlineDialogo di avvisoConferma solo se accetti la perdita locale

I tooltip dell’editor possono mostrare In attesa di sincronizzazione o Sincronizzazione non riuscita — salvato su questo dispositivo su alcuni versetti.


AzioneLegame con la sync
Export PDFPropone Sincronizza prima dell’esportazione se coda non vuota
Ricerca → Aggiungi versettoRichiede nota/diario già sul server
Collegamento Monitoraggio ↔ diarioDopo id server stabili
Refresh profiloPull profilo = rete

Alla disconnessione, Scripvio può cancellare cache e coda locale di questo dispositivo (soprattutto se confermi offline con dati non sincronizzati).

Alla connessione su un nuovo dispositivo: download dati account + cache iniziale (event types, ecc.).

Profilo


IndicatoreStato « OK »
Banner offline/syncAssente
Nota local_…Sostituita da id numerico / UUID server
PubblicazioneVisibile in Biblioteca
Export PDFAccettato senza dialogo di sync preliminare

Se il banner In attesa persiste online: lascia l’app in primo piano qualche istante o riapri l’applicazione.


Posso sincronizzare manualmente?
Nessun pulsante dedicato nell’UI attuale — la riconnessione e l’apertura dell’app rilanciano il flush.

Quanto tempo conserviamo la coda?
Fino al successo, disconnessione (purge) o reinstallazione.

La sync usa molti dati?
Invia le modifiche (JSON), non tutto il catalogo — ragionevole su mobile.

Sync in background iOS/Android?
Dipende dagli OS; riaprire Scripvio dopo la rete è il metodo più affidabile.


ArgomentoLink
Modalità offlineModalità offline
FAQOffline e sync
NoteBozze e pubblicazione
BibliotecaBozze e pubblicati