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.
O que "offline" significa de verdade
Funcionar offline quer dizer três coisas:
- 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.
- 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.
- 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:
- Envia as alterações locais pendentes na ordem em que foram feitas
- Baixa as alterações feitas em outros aparelhos desde a última sincronização
- Mescla tudo no banco local
- 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
| Plano | Registro offline | Sincronização na nuvem | Vários aparelhos |
|---|---|---|---|
| Basic (grátis) | Sim | Não | Não |
| Plus | Sim | Sim | Sim |
| Pro | Sim | Sim | Sim |
| Business | Sim | Sim | Sim |
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
- Use o Timesheet em todos os seus aparelhos com sincronização na nuvem para o panorama completo entre dispositivos
- Registre pelo seu Apple Watch para a dupla pulso e bolso
- Automatize o controle de horas com cerca virtual, wi-fi e NFC para os gatilhos que funcionam mesmo quando a conexão não funciona