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
- Entrada de Animais: criar e finalizar registros com leitura de brincos
- Saída de Animais: criar e finalizar saídas
- Identificação de Animais: registrar identificações com GPS
- Leitura de Brincos via Bluetooth: o Bluetooth não depende de internet
- Consultar GTAs baixadas anteriormente
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.