🚀 Bem-vindo ao Lab! Aqui exploramos tecnologia e inovação.Siga-nos no google news.

Lab.

🚀 Por que criei meu próprio sistema de Send OTA Updates para o Nutrilow

Introdução

Quando decidi adotar Expo + React Native + ExpressJS para o Nutrilow, compartilhei o raciocínio por trás dessa escolha no artigo “Por que adotei Expo, React Native e ExpressJS para a escalabilidade do Nutrilow”.

Essa decisão abriu portas para um controle técnico maior sobre cada camada da aplicação. Mas um ponto ainda me incomodava: as atualizações OTA (Over-the-Air).

Usar o serviço oficial do Expo é prático, mas também cria uma dependência forte de uma infraestrutura externa e limita a personalização da experiência de entrega de updates.

Foi aí que nasceu a ideia: criar meu próprio servidor de Send OTA Updates — controlado, transparente e 100% integrado ao meu pipeline.


Por que não usar o Expo Updates diretamente?

O Expo Updates é excelente, mas no Nutrilow eu precisava de:

  • Controle de versão granular (permitir forçar updates mesmo com o mesmo version code);
  • Infraestrutura self-hosted (sem dependência de terceiros);
  • Logs e métricas personalizadas (integração com meu sistema de monitoramento);
  • Autenticação customizada para liberar updates apenas a builds autorizadas.

Além disso, o processo de publicação precisava estar alinhado ao meu ciclo de deploy com PM2 + API Express, para que cada commit pudesse gerar uma release OTA sem etapas manuais.


Arquitetura do sistema OTA customizado

O sistema é simples, mas eficaz:

[Git Commit] → [Build Script Customizado] → [Servidor Express OTA] → [Cliente Expo Fetch Update]
  1. Build Script

    • Um script Bash coleta o commit atual e gera metadados (runtimeVersion, uploadKey, url).
    • Empacota o bundle via expo export e envia para a API.
  2. Servidor Express OTA

    • Recebe o arquivo.
    • Valida a chave de upload.
    • Armazena o bundle no storage local.
    • Responde em formato compatível com o cliente OTA do Expo.
  3. Cliente Nutrilow

    • O app verifica atualizações usando expo-updates apontando para minha URL custom.
    • Se houver uma nova versão, baixa e aplica automaticamente.

Benefícios diretos

  • Controle total de ciclo de updates
  • Deploys mais rápidos e auditáveis
  • Independência da nuvem Expo
  • Economia de custos a longo prazo

Conclusão

Criar meu próprio sistema OTA foi um passo natural dentro da minha filosofia: entender, experimentar e dominar cada camada técnica de um produto.