Ir para o conteúdo principal

Registre horas offline e sincronize quando voltar a ter sinal

Por Florian6 min de leitura
offlinesincronizaçãocelulartrabalho em campoautomação

Você entra no metrô. Cinco estações, 17 minutos, sem sinal. Quando sobe de volta, já respondeu três e-mails, rascunhou uma resposta no Slack, e o cronômetro deveria continuar rodando na ligação da Acme. A maioria dos apps teria perdido ou pausado o registro. O Timesheet não.

Os apps de celular registram horas totalmente offline. Os lançamentos são gravados em um banco local, com os horários reais de início e término. Quando o aparelho se reconecta, a nuvem recebe as alterações, os outros aparelhos as puxam e tudo se alinha sem que você faça nada.

Registro offline e sincronizaçãoGrátis
Registre horas offline no iOS, no Android e no Apple Watch. Gravação local primeiro, mesclagem sem conflito quando o aparelho se reconecta. O registro offline está em todos os planos; a sincronização na nuvem exige o Plus ou superior.

#O que "offline" significa de verdade

Funcionar offline quer dizer três coisas:

  1. Ler funciona sem internet. Registros antigos, lista de projetos, tags, valores, contratos: tudo disponível no banco local que o app mantém no aparelho.
  2. Escrever funciona sem internet. Iniciar e parar cronômetros, criar registros com horários explícitos de início e término, editar, excluir e anexar pausas ou despesas: tudo salva localmente e sobrevive ao reinício do app.
  3. Conflitos se resolvem com limpeza. Quando o aparelho finalmente se reconecta, as alterações locais sobem, as alterações feitas em outros aparelhos descem e as diferenças são conciliadas registro a registro.

A promessa para quem usa: o app não trava, não perde dados e não joga erros na sua cara por causa de conexão faltando.

#O que fica no aparelho

Cada app de celular do Timesheet mantém um banco de dados local (Room no Android, GRDB no iOS). Ele guarda:

  • Todos os seus projetos, tags, valores e (nos planos Business) contratos
  • Todos os seus registros de tempo
  • Todas as pausas ligadas a esses registros
  • Alterações pendentes esperando para subir
  • O estado atual do cronômetro

O app web e a extensão do navegador não têm esse banco. Eles precisam de conexão para funcionar.

#Como a sincronização se comporta

Os dados podem seguir três caminhos distintos:

#Online: grava e envia

Quando o aparelho tem conexão, cada gravação é feita primeiro localmente e depois enviada para a nuvem em segundos. Os outros aparelhos recebem a alteração na sincronização seguinte.

#Offline: grava local e enfileira

Quando o aparelho não tem conexão, cada gravação é feita só localmente. O app marca a alteração como "pendente de envio" e a coloca na fila.

#Reconexão: sincronização de recuperação

No momento em que o aparelho se reconecta (wi-fi, rede móvel ou roteamento), o app:

  1. Envia as alterações locais pendentes na ordem em que foram feitas
  2. Baixa as alterações feitas em outros aparelhos desde a última sincronização
  3. Mescla tudo no banco local
  4. Atualiza o cronômetro ativo se existir um estado mais novo na nuvem

Isso costuma levar segundos, mesmo com uma fila grande de registros pendentes.

#Resolução de conflitos: quem ganha

A maioria dos apps que oferece modo offline passa por cima da questão dos conflitos. Aqui está o comportamento real:

#Um registro, dois aparelhos

Se você editar o mesmo registro no celular (offline) e na web (online), a nuvem mantém a edição mais nova: cada alteração carrega a data e hora da última atualização, e uma gravação que chega mais velha do que a que a nuvem já tem é rejeitada. A cópia local do celular é sobrescrita com o estado final da nuvem na próxima sincronização.

Na prática, esse caso é raro. Quando acontece, a edição mais recente é a que sobrevive, em todos os aparelhos.

#O cronômetro ativo

Só um cronômetro pode estar rodando por pessoa de cada vez. Se o relógio estiver rodando um cronômetro e o celular iniciar outro por conta própria enquanto está desconectado, o horário de início mais recente vence na reconexão. O cronômetro anterior encerra sozinho com o último valor conhecido.

#Exclusões

As exclusões usam um mecanismo de "lápide": um registro excluído continua no banco local com uma marca de excluído até a nuvem confirmar a exclusão. Isso impede que uma exclusão feita no aparelho A "ressuscite" no aparelho B, que ainda não sincronizou.

#Onde os planos importam

PlanoRegistro offlineSincronização na nuvemVários aparelhos
Basic (grátis)SimNãoNão
PlusSimSimSim
ProSimSimSim
BusinessSimSimSim

No plano Basic gratuito, o celular registra offline, mas não existe nuvem nem outro aparelho para sincronizar. Os backups são só locais (e pela exportação manual em Excel ou CSV).

O Plus e os planos acima acrescentam a nuvem e a sincronização entre seus aparelhos móveis, incluindo Apple Watch e iPad. O acesso pelo app web é um recurso do Pro, à parte.

#Cenários reais

#O trajeto de metrô

O celular registra das 8h15 às 8h32 em "Leitura · Notícias do setor" enquanto está no subsolo. O registro salva localmente. Às 8h35 o celular pega 4G de novo e o registro sobe em menos de um segundo.

#O voo

Um voo de seis horas. Você inicia um cronômetro em "Viagem · Visita à Acme" na decolagem. Também rascunha três registros da semana passada, digitados no iPad. Os quatro registros salvam localmente nos dois aparelhos. No solo, ambos se reconectam e trocam dados. Em dez segundos, o app web no computador mostra os quatro.

#A sala de servidores no subsolo

Um técnico passa duas horas em uma sala de servidores sem sinal de celular, situação conhecida no controle de horas para profissionais de TI. O cronômetro é iniciado pelo relógio na chegada, com o celular (no armário) offline. O relógio registra localmente. Na volta, celular e relógio sincronizam direto por Bluetooth, e o celular empurra tudo para a nuvem assim que tem conexão de novo.

#A queda do wi-fi da cafeteria

Você está trabalhando em uma cafeteria com o cronômetro rodando no celular. O wi-fi cai por 90 segundos no meio de um pomodoro. O cronômetro continua rodando localmente. A queda não tem efeito visível; o registro tem os horários corretos de início e término.

#Bateria e armazenamento

O modo offline é leve:

  • Armazenamento: o banco local fica pequeno para a maioria das pessoas, mesmo com anos de registros; registros de tempo são linhas de texto e números, não mídia
  • Bateria: a sincronização em segundo plano usa a API de Background Tasks do iOS e o WorkManager do Android, que limitam bastante o consumo
  • Rede: quando o aparelho se reconecta, a sincronização é uma troca de diferenças (só o que mudou), não um download completo

#O que acontece se o banco de dados corromper

Corromper o banco é muito raro, normalmente sinal de pouco espaço ou de desligamento forçado no meio de uma gravação. Se acontecer, o app avisa em vez de perder dados em silêncio. Com sincronização na nuvem (Plus ou superior), a solução é simples: saia da conta, entre de novo e o app baixa uma cópia limpa dos seus dados.

No Basic não existe cópia na nuvem, e é exatamente por isso que exportações regulares e o backup local importam. Eles são a sua rede de segurança no plano gratuito.

#Hábitos que funcionam bem

Confie no modo offline. O erro mais comum é adiar ou pular o registro porque "eu faço isso quando voltar a ter internet". O app resolve o offline; você não precisa.

Não fique alternando de aparelho no meio de um registro. Parar um cronômetro no relógio e editar o registro resultante no iPad estando offline funciona na maioria das vezes, mas aumenta a chance de conflito. Escolha um aparelho para o dia.

Sincronize antes de longos períodos offline. Pouco antes de um voo, abra o app uma vez e deixe confirmar "Tudo sincronizado". Isso garante que o aparelho comece o período offline com os dados mais frescos.

Confira o status da sincronização. A tela da conta mostra a última sincronização bem-sucedida e quantas alterações ainda estão pendentes. Uma olhada antes de ficar offline já diz se está tudo em dia.

#Perguntas frequentes

Por quanto tempo o celular pode ficar offline antes de parar de funcionar? Indefinidamente. O banco é local e não expira. Algumas pessoas passam semanas offline; a sincronização se recupera sem problema na reconexão.

O relógio sincroniza direto ou pelo celular? Pelo celular. Apple Watch e iPhone sincronizam direto por Bluetooth quando estão perto, e o iPhone empurra tudo para a nuvem quando tem internet.

Cronômetros em andamento se perdem quando o app é fechado à força? Não. O estado do cronômetro fica gravado no banco local. Ao reabrir o app, ele retoma de onde parou.

Dois aparelhos podem ficar online com estados de cronômetro conflitantes? Por pouco tempo, sim, mas as regras de resolução escolhem um vencedor em segundos. O cronômetro perdedor encerra com o último valor conhecido, como registro finalizado.

E a extensão do navegador? A extensão em Plasmo é um cliente que só funciona online. Ela lê da nuvem e escreve na nuvem. Não existe banco local na extensão. Use os apps de celular para cobertura offline.

#Resumo

  • Os apps de celular funcionam totalmente offline, com horários concretos de início e término em cada registro
  • As gravações locais entram na fila e sobem no momento em que o aparelho se reconecta
  • A resolução de conflitos é por registro: a edição mais nova vence, em todos os aparelhos
  • O registro offline está em todos os planos; a sincronização na nuvem exige o Plus
  • O app web e a extensão do navegador só funcionam online

#Para onde ir agora

Tudo pronto para começar?

Baixe o app grátis para iOS e Android

← Voltar para o blog
Compartilhar este artigo
Registre horas offline e sincronize quando voltar a ter sinal