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.

  1. 1Registrar o aparelhoO administrador dá um nome ao celular e atribui uma licença.
  2. 2Identificar o vigilanteEle escolhe seu nome e entra com o PIN, mesmo sem sinal.
  3. 3Registrar o pontoAproxima o celular da etiqueta e a ronda avança.
Versão em desenvolvimento · dados de exemplo

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.