Porque é que "funciona offline" é a funcionalidade que mais vai usar
O sinal desaparece em caves, salas técnicas e estradas de campo. Uma aplicação que continua a funcionar aí, e que sincroniza com honestidade quando o sinal volta, é a que realmente vai usar.

A funcionalidade que mais vai usar numa aplicação de serviços de campo é a que nunca vê: continua a funcionar quando o sinal não está lá. Rotas rurais, caves, salas técnicas, prédios com paredes espessas e uma caixa de elevador, as traseiras de uma quinta. Se a aplicação parar aí, o profissional volta ao papel aí, e é no papel que a informação do dia se perde.
Este artigo é sobre o que "funciona offline" deveria significar, porque é mais difícil do que parece, e como testar a promessa de qualquer aplicação antes de lhe confiar uma rota.
Porque é que uma aplicação de serviços de campo que funciona offline importa mais do que o resto
Os mapas de cobertura são generosos. O verificador da Ofcom (o regulador das telecomunicações do Reino Unido) diz-lhe que um código postal tem 4G de todas as operadoras, e isso é verdade no portão. Não é verdade no armário técnico onde está a caldeira, nem nas traseiras da casa onde o telhado da marquise precisa de ser limpo.
Uma aplicação que precisa de ligação para cada toque transforma esses lugares em tempo morto. O profissional faz o trabalho, lembra-se de o marcar como feito mais tarde, e é aí que as coisas se esquecem: a fotografia, o dinheiro, a nota de que o portão lateral agora tem cadeado. Offline-first significa que a aplicação se comporta de forma idêntica no armário e no escritório, e o profissional deixa de pensar nisso.
O que significa realmente "offline-first"
Não significa páginas em cache. Significa que o telemóvel guarda a sua própria cópia dos dados de que precisa para o dia: os clientes, os trabalhos, os preços, as notas de acesso. Cada leitura vem desse armazenamento local, pelo que abrir um trabalho é instantâneo com ou sem sinal. Cada alteração entra primeiro numa fila no próprio dispositivo, e a fila é enviada para o servidor assim que há ligação disponível.
A distinção importa porque uma aplicação em cache pode mostrar a agenda de ontem, mas não consegue registar o trabalho de hoje. Uma aplicação offline-first consegue marcar uma visita como feita, tirar uma fotografia, registar o dinheiro e marcar a próxima visita com o telemóvel em modo de avião, e todas essas alterações chegarão ao escritório por ordem assim que o sinal voltar.

O que acontece quando duas pessoas alteram a mesma coisa
Aqui está a parte que a maioria das aplicações esconde. Se marcar uma visita como feita às 10h14 sem sinal, e o escritório reagendar a mesma visita às 10h20, qual delas vence quando o seu telemóvel voltar a ligar-se às 11h00? Uma aplicação que aceita silenciosamente a última escrita vai perder uma dessas alterações e ninguém vai saber.
Uma aplicação offline-first feita como deve ser tem regras para cada caso e diz-lhe quando as aplica. Uma visita marcada como feita no local vence um reagendamento do escritório, porque o trabalho aconteceu. Um preço alterado no escritório vence um preço desatualizado num telemóvel que ainda não sincronizou. Quando duas edições realmente entram em conflito, a aplicação guarda ambas e pergunta. As regras são aborrecidas; o que importa é que existem.
Offline não é um modo. É a condição normal de um dia de trabalho, e a aplicação deve ser construída para a condição normal.
TradeYoke
Porque é que a aplicação web é diferente, e porque o dizemos abertamente
A TradeYoke funciona na web, em iOS, Android e Windows a partir de uma única base de código. As aplicações instaladas, no telemóvel e num portátil Windows, são offline-first no sentido acima: armazenamento local, alterações em fila, sincronização com regras de conflito. A aplicação web num navegador é a porta de entrada do escritório, sempre online. É onde o escritório planeia a semana, envia as faturas e lê os relatórios, e assume uma ligação.
Dizemo-lo com clareza porque "funciona offline" num site normalmente significa muito pouco, e porque a divisão é deliberada. O telemóvel é onde o sinal desaparece, por isso o telemóvel é onde o offline vive. A página da plataforma explica o que cada superfície faz.
Como é numa terça-feira de chuva
Um limpador de vidros a percorrer uma rota rural perde o sinal na terceira paragem e nem repara. A paragem é marcada como feita, o cliente paga em dinheiro e isso é registado contra a visita, o portão do cliente seguinte está fechado à chave, por isso a visita é saltada com uma nota, e a chuva começa na paragem nove. As paragens por fazer são todas movidas para quinta-feira de uma só vez, como descrito no artigo sobre dias de chuva.
Nada disto precisou de ligação. Quando a carrinha chega à estrada principal, a fila é enviada: o feito, o dinheiro, o salto, o adiamento. O escritório vê o estado da rota, o valor em dívida atualiza-se, e os SMS "vamos na quinta-feira" podem ser enviados. O limpador de vidros nunca pensou no sinal.

Como a construímos, em resumo
Cada alteração é uma operação pequena e autodescritiva com o seu próprio id, pelo que enviá-la duas vezes não faz nada e enviá-la tarde continua a funcionar. Cada registo tem uma marca de versão; uma alteração feita contra uma versão antiga é detetada, não aplicada silenciosamente. O telemóvel puxa um feed do que mudou no servidor desde a última vez que perguntou, em vez de voltar a descarregar tudo. As regras de conflito são declaradas por tipo de alteração, e as que não podem ser resolvidas automaticamente são mostradas a uma pessoa.
É essa a substância por trás da frase de marketing. Aplica-se a todos os ofícios na página dos ofícios, porque a camada de sincronização não sabe nem se importa se o registo é uma visita de limpeza de vidros ou de jardinagem. A monitorização em tempo real descrita no artigo sobre rastreio assenta na mesma lógica de ligação.
Como testar a promessa de offline de qualquer aplicação
- Ponha o telemóvel em modo de avião antes de abrir a aplicaçãoSe não abrir, a promessa é sobre páginas em cache, não sobre trabalho.
- Marque um trabalho como feito, tire uma fotografia, registe um pagamento em dinheiroOs três, sem sinal. Depois marque a próxima visita.
- Altere o mesmo trabalho a partir de outro dispositivoDepois volte a ligar o sinal e veja qual alteração sobrevive, e se a aplicação lhe diz.
- Feche a aplicação, volte a abri-la, ainda offlineAs alterações em fila devem continuar lá.
- Volte a ligar-se e verifique a vista do escritórioTudo deve chegar, por ordem, uma única vez.
Perguntas frequentes
A aplicação funciona sem sinal o dia todo?
Sim, no telemóvel e nas aplicações instaladas. Os dados do dia estão no dispositivo, as alterações ficam em fila no dispositivo, e a fila é enviada assim que há ligação disponível, seja isso na paragem seguinte ou de volta ao pátio ao final do dia.
E se o telemóvel ficar sem bateria antes de sincronizar?
A fila fica guardada no dispositivo, não na memória temporária, por isso sobrevive ao fecho da aplicação ou ao reinício do telemóvel. Carregue-o e volte a ligar-se e as alterações são enviadas. Se o telemóvel se perder, as alterações não sincronizadas perdem-se com ele, o que é uma razão para o deixar sincronizar na primeira oportunidade em vez de esperar pelo fim da semana.
A aplicação web funciona offline?
Não, e dizemo-lo abertamente. A aplicação no navegador é a superfície do escritório sempre online para planear, faturar e ler relatórios. O offline vive nas aplicações instaladas em iOS, Android e Windows, que é onde o sinal realmente desaparece.
O offline custa mais?
Não. O offline no telemóvel nas quatro plataformas faz parte de todos os planos, incluindo o Free, e os planos são por negócio, não por utilizador. Veja a página de preços para os quatro planos.
Leve a rota para um sítio sem sinal e veja
As aplicações de telemóvel da TradeYoke funcionam offline e sincronizam com honestidade quando o sinal volta, em todos os planos. Inicie uma avaliação de 30 dias do Essentials, sem cartão.


