Pular para o conteúdo

Sincronização

Quando você trabalha offline, o Scripvio armazena alterações em uma fila local (SQLite no dispositivo). Assim que a rede volta, o app esvazia automaticamente essa fila para o servidor — na maioria dos casos sem passo manual.

Modo offline · FAQ offline


sequenceDiagram
participant A as App
participant L as Fila local
participant S as Servidor
Note over A: Perda de rede
A->>L: Notas, diário, acompanhamento na fila
Note over A: Rede detectada
A->>A: Banner Sincronizando…
A->>S: flushOfflineQueue (notas)
A->>S: flushOfflineQueue (diário)
A->>S: flushOfflineQueue (acompanhamento)
S-->>A: Ids servidor, ACK
A->>L: Fila esvaziada ou reduzida
EventoComportamento
Alteração localContador da fila +1 — banner Algumas alterações aguardam… se online sem sync
Rede de voltaBanner Sincronizando com o servidor… e envio
SucessoBanner some (fila = 0)
Falha parcial / totalFalha na sincronização… — fila mantida, nova tentativa no próximo online

O app escuta mudanças de conectividade (connectivity_plus) continuamente.


A fila agrega vários tipos de operação:

DomínioExemplos de operações
NotasCriações (local_…), patches, exclusões
SeçõesCriar, atualizar, reordenar
Referências da notaVersículos estruturados (local_verse_…)
DiárioCriações, edições, publicação pendente
AcompanhamentoLeituras, orações, meditações criadas ou alteradas
Lembretes (preferências)Salvamento adiado se API indisponível

Um banner global reflete a soma dessas filas (sem contador por tipo na UI).


PrincípioDetalhe
Flush sequencialNotas → diário → acompanhamento (a cada reconexão)
Criar antes de patchNota local_… é criada no servidor antes de patches dependentes
Falha de redeLinhas permanecem na fila (treatDioFailureAsDeferredSync: timeout, 5xx, sem rede)
Requisição canceladaNão entra na fila por padrão

Você não gerencia a ordem manualmente; app e servidor tratam dependências (ex.: ACK de patch da nota).


EfeitoOnde você vê
local_… → id servidorListas Criar, editores
Publicação pendente aplicadaEntrada aparece na Biblioteca após atualizar
Painel de AcompanhamentoAtualizado (gráfico, calendário)
Referências pendentesBadges « pendente » removidos

Conforme Notificações da conta:

  • Push: pode sinalizar sync concluída ou falha (configuração servidor / Firebase);
  • E-mail: resumo possível após sync (evolução de produto).

Lembretes pessoais de Acompanhamento são locais — independentes desta sync de conteúdo.

Notificações


Ação offlineMensagem ao usuárioApós sync
Publicar uma notaPublicação na fila (offline).Nota publicada na Biblioteca
Publicar diárioPublicação na fila (offline).Entrada de diário publicada

Até o servidor confirmar a publicação, a Biblioteca pode não mostrar o conteúdo como publicado.


SituaçãoRisco
Mesma nota editada no celular A (offline) e tablet B (online)Conflito possível — última sync ou regras do servidor
Somente leitura em B enquanto trabalha em AB vê versão antiga até A sincronizar

SintomaCausa provávelAções
Banner Falha na sincronização…API 5xx, timeout, rede instávelFique online; reabra o app
Fila não esvaziaErro recorrente em um itemAnote a mensagem; suporte
Dados ainda visíveis localmenteNormalNada se « perde » no dispositivo até você sair
Logout forçado offlineDiálogo de avisoConfirme só se aceitar perder dados locais

Tooltips do editor podem exibir Aguardando sincronização ou Falha na sincronização — ainda salvo neste dispositivo em alguns versículos.


AçãoVínculo com sync
Exportar PDFOferece Sincronizar antes de exportar se fila não vazia
Pesquisa → Adicionar versículoExige nota/diário já no servidor
Vínculo Acompanhamento ↔ diárioApós ids estáveis no servidor
Atualizar perfilPull do perfil = rede

No logout, o Scripvio pode limpar cache e fila local nesse dispositivo (especialmente se confirmar offline com dados não sincronizados).

No login em novo dispositivo: download dos dados da conta + cache inicial (tipos de evento etc.).

Perfil


IndicadorEstado « OK »
Banner offline/syncAusente
Nota local_…Substituída por id numérico / UUID do servidor
PublicaçãoVisível na Biblioteca
Exportar PDFPermitido sem diálogo de sync prévia

Se o banner Aguardando persistir online: mantenha o app em primeiro plano um momento ou reabra.


Posso sincronizar manualmente?
Sem botão dedicado na UI atual — reconectar e abrir o app relança o flush.

Por quanto tempo a fila é mantida?
Até sucesso, logout (purge) ou reinstalação.

A sync consome muitos dados?
Envia alterações (JSON), não o catálogo inteiro — razoável no mobile.

Sync em segundo plano no iOS/Android?
Depende do SO; reabrir o Scripvio após a rede é o mais confiável.


AssuntoLink
Modo offlineModo offline
FAQOffline e sync
NotasRascunho e publicação
BibliotecaRascunhos e publicados