Mobitraxx
em desenvolvimento
De dois apps separados a uma só base que funciona sem sinal e protege o que guarda.
A Mobitraxx é uma plataforma para empresas de segurança: seus vigilantes fazem rondas e registram cada ponto de controle com o celular, mesmo num subsolo ou numa área rural. Estamos refazendo seus dois apps Android sobre um mesmo código, sem que os vigilantes precisem trocar de app.
- Tipo
- Cliente
- Plataforma
- Android · iOS em preparação
- Escopo
- Arquitetura, apps, funcionamento sem sinal, criptografia e migração
Como funciona
O início de um turno: o aparelho é registrado uma vez, o vigilante se identifica com seu PIN e sai para a ronda.
- 1Registrar o aparelhoO administrador dá um nome ao celular e atribui uma licença.
- 2Identificar o vigilanteEle escolhe seu nome e entra com o PIN, mesmo sem sinal.
- 3Registrar o pontoAproxima o celular da etiqueta e a ronda avança.
O ponto de partida
As rondas acontecem onde o sinal não chega: estacionamentos subterrâneos, galpões, áreas rurais. O vigilante leva o celular e registra cada ponto de controle com NFC, QR, GPS ou um beacon; a empresa precisa saber que ele passou ali e a que horas.
Eram dois apps, só para Android e em códigos separados, que tinham se distanciado. Falavam com o servidor por uma tecnologia que já não tem suporte, e quando o servidor respondia com um erro, a leitura era descartada mesmo assim.
E os apps não tinham nem relatório de erros nem analytics: quando algo falhava, ninguém conseguia saber por quê.
Os problemas e as decisões
1Um vigilante sem sinal não pode ficar esperando o registro ser enviado, nem perder a ronda que já fez.
- O que decidimos
- Tudo é salvo primeiro no celular e enviado por uma fila de sincronização que tenta de novo sozinha quando o sinal volta: leituras, ocorrências com fotos e vídeo, checklists, registro de ponto e os cadastros do administrador. O servidor descarta os duplicados.
- Do que abrimos mão
- Mais lógica no celular: uma fila com limite, novas tentativas com espera crescente e regras sobre o que se tenta de novo e o que não.
2O que fica esperando no celular são dados pessoais: fotos de funcionários, assinaturas, vídeo, credenciais.
- O que decidimos
- Criptografamos tudo o que é sensível e fica guardado —credenciais, a lista de usuários, a fila de envios e as mídias—, com as chaves protegidas pelo sistema operacional. Para fotos e vídeo construímos um armazenamento de arquivos criptografado, e assim uma ocorrência com vídeo também pode ser salva sem sinal.
- Do que abrimos mão
- O armazenamento criptografado do sistema não foi feito para arquivos grandes: tivemos que projetar e manter um próprio para as mídias.
3Se uma única operação salva se corrompesse, podia levar junto todo o trabalho pendente de um turno.
- O que decidimos
- Cada operação da fila é salva e criptografada separadamente. Se uma se corrompe, perde-se só ela.
- Do que abrimos mão
- Preferimos não adicionar um banco de dados e resolver sobre o armazenamento criptografado que já tínhamos: menos dependências, mais cuidado na forma de indexar a fila.
4Dois apps que se distanciavam, e a necessidade de chegar também ao iOS.
- O que decidimos
- Um só código em Kotlin Multiplatform, com interface e lógica compartilhadas, do qual saem os dois apps da loja. Relatório de erros e analytics desde o primeiro dia.
- Do que abrimos mão
- O que depende do hardware —NFC, beacons— é implementado separadamente em cada plataforma, e isso faz o iOS levar mais tempo.
O que conquistamos até agora
Ainda não foi lançado. Chegará como atualização gradual dos apps atuais na loja.
- Dois apps de loja a partir de um mesmo código, em testes com o cliente.
- Rondas, ocorrências, checklists e registro de ponto funcionam sem sinal.
- Credenciais, a fila de envios, fotos, assinaturas e vídeo ficam salvos criptografados.
- Relatório de erros e analytics em cada tela, que os apps anteriores não tinham.
- Pensado para o turno: botões grandes para usar com luvas, tema escuro e botão de pânico.
Como construímos
Sobre um sistema que já estava em uso: a nova versão substitui a anterior na mesma página da loja e mantém o registro de cada celular, para que nenhum aparelho em campo precise ser configurado de novo.
- 4formas de registrar um ponto: NFC, QR, GPS e beacon
- 2apps de loja a partir de um mesmo código
- 3idiomas, com variantes regionais
Tem um desafio parecido?
Conte o que você precisa resolver. Podemos ajudar a definir o próximo passo.