Modo Offline e Sincronização

O modo offline é uma das principais vantagens do app mobile do RadarBov em relação ao portal web. Fazendas muitas vezes ficam em áreas remotas sem cobertura de dados — o app foi projetado para isso.


Por que é necessário

Operações de campo acontecem em locais com sinal de celular instável ou inexistente. Se o app dependesse de internet para registrar cada brinco lido, paralisaria a operação toda vez que a conexão cair. O modo offline resolve isso completamente.


Como funciona

1. Operador registra movimentação no campo (sem internet)
     ↓
2. Dados salvos no SQLite local com synced = false
     ↓
3. App detecta conexão via connectivity_plus
     ↓
4. Serviço de sync processa a fila de registros pendentes
     ↓
5. Sucesso: registro marcado como synced = true
   Falha: registrado em synchronization_error para retry

O que funciona offline


Sincronização automática

Quando o app detecta que a conexão foi restabelecida, o serviço de sincronização inicia automaticamente — sem ação do usuário. Ele percorre todos os registros com synced = false e os envia à API.


Erros de sincronização

Se um registro falhar ao ser enviado (erro de API, validação, conflito), ele vai para a tabela synchronization_error. O usuário pode:

  • Ver todos os registros com erro na tela de Erros de Sincronização
  • Ver o motivo do erro
  • Forçar o reenvio de registros específicos
  • Monitorar o status da fila

Banco de dados local

O app usa SQLite (via sqflite) como banco local. O schema está na versão 34. A coluna synced é o campo-chave que controla quais registros ainda precisam ser enviados ao servidor.

Ver Banco de Dados para detalhes das tabelas.


Dados pré-carregados (sync inicial)

Quando um operador faz login em um novo dispositivo, o app sincroniza os dados necessários para trabalho offline:

  • Estabelecimentos autorizados
  • GTAs ativas
  • Rebanho cadastrado (brincos e animais)
  • Configurações de movimentação

Esses dados ficam em cache local para uso sem internet.


Ver também