Pular para o conteúdo principal
Luiz Pansarini
← Voltar aos projetos

Mobile-first de máquinas pesadas

Engenheiro de Software Principal · 2024

React NativeExpoTypeScriptFastifyBunOdoo
Mobile-first de máquinas pesadas

Problema

Trabalhadores de campo em concessionárias de máquinas pesadas nos EUA precisam navegar, configurar e fazer pedidos de equipamentos a partir de dispositivos móveis enquanto estão nos canteiros de obra. Eles não carregam laptops, a conectividade nos canteiros de obra é instável e o web app existente era muito lento e travoso na tela do celular.

Representantes comerciais estavam perdindo vendas porque não conseguiam mostrar preços em tempo real e opções de configuração para compradores em campo. O design desktop-first do web app significava que os botões eram muito pequenos, a navegação exigia muitos toques e os carregamentos de página demoravam mais de 8 segundos na rede LTE.

Solução

Construímos um aplicativo mobile nativo usando React Native + Expo, projetado do zero para uso em campo. A decisão de arquitetura que teve o maior impacto foi construir o contrato do carrinho primeiro — antes de qualquer trabalho de UI. Cada tela se tornou consumidora da mesma máquina de estado, o que significava que o modo offline funcionava desde o primeiro dia.

O app usa Expo para o fluxo de desenvolvimento (recarregamento rápido, builds EAS) e atualizações OTA (Over-The-AIR) para iteração rápida entre os ciclos de revisão da App Store. O processo de revisão da App Store foi um aprendizado — a Apple sinalizou a submissão inicial por configuração de compra no app, o que exigiu um ciclo de correção de 2 semanas antes da aprovação.

mobile/cart-state.ts
export type CartState = {
  items: CartItem[];
  version: number;
  synced: boolean;
};

O gateway backend conecta o app mobile ao ERP Odoo existente. Construímos um serviço Fastify + Bun que traduz chamadas de API mobile em requisições XML-RPC do Odoo, com limites de validação Zod em cada camada para impedir que dados incorretos cheguem ao ERP.

Impacto

98%operações do carrinho disponíveis offline antes da sincronização

4.8★avaliação na App Store após o primeiro lançamento

Trabalhadores de campo agora podem configurar e cotar pedidos de máquinas pesadas em campo, com operações do carrinho totalmente disponíveis offline e sincronização automática quando a conectividade retorna. A avaliação de 4.8 estrelas na App Store reflete a confiabilidade da abordagem offline-first — os compradores confiam no app para funcionar mesmo em canteiros de obra remotos sem sinal.

Stack

  • Mobile: React Native + Expo (atualizações OTA, builds EAS, revisão da App Store)
  • Gateway: Fastify + Bun (XML-RPC para Odoo, limites de validação Zod)
  • Carrinho: Contrato offline-first, sincronização baseada em versão