BlogMóvel

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.

Um técnico de aquecimento a trabalhar em tubagens de uma sala técnica onde o sinal falha, junto ao mapa de monitorização em tempo real do TradeYoke que continua a localizar a rota

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.

Verificador de cobertura da OfcomO verificador oficial de cobertura móvel e de banda larga da Ofcom, por código postal. Útil para uma rota, menos útil para uma sala técnica.Ofcomchecker.ofcom.org.uk

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.

Trabalhos da TradeYoke num telemóvel
Os trabalhos de hoje no telemóvel são lidos a partir do armazenamento local, pelo que a lista abre na sala técnica da mesma forma que abre na carrinha.

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.

O offline no telemóvel está incluído em todos os planos da TradeYoke, incluindo o Free. Não é um extra, porque uma aplicação de telemóvel que para numa cave não é uma aplicação de telemóvel.

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.

Planear o meu dia num telemóvel na TradeYoke
Planear o meu dia no telemóvel: as decisões da manhã são tomadas uma vez e enviadas para o telemóvel, pelo que o dia corre a partir da cópia local.

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.

AssemblySoft DevOps

The engineering team behind TradeYoke: how it is built, deployed and kept running.

Mais do blog