Pitch: Xpo Launchpad — Porque você merece mais do que uma pasta `utils` e uma oração
Quantas vezes você começou um projeto React Native do zero e, lá pela semana 3, estava refatorando tudo porque a pasta screens/ virou um caos orquestrado? Se você balançou a cabeça agora, você não está sozinho.
Apresento o Xpo Launchpad: um template de arquitetura para Expo que foi construído exatamente para resolver esse momento delicioso chamado dívida técnica prematura.
O que é isso, afinal?
É um esqueleto. Uma base. O tipo de coisa que você olha e pensa:
"Por que eu não tinha isso antes?"
O Xpo Launchpad é uma estrutura arquitetural opinada — e sim, toda boa arquitetura é opinada. Ele foi desenhado para dois tipos de dev:
- O Júnior que quer entender como as coisas devem ser feitas (e não como elas acabam sendo feitas às 2h da manhã antes do prazo).
- O Sênior que quer entregar valor no primeiro dia — não na terceira semana depois de discutir onde colocar o
Contextem uma call de refinamento que durou 1h30.
A estrutura que você sempre quis
O projeto abandona aquela abordagem "flat" onde tudo fica jogado junto como gaveta de meias. Em vez disso, ele abraça o conceito de módulos por domínio de negócio:
src/
modules/ # Cada feature no seu próprio mundo
app/ # Expo Router cuidando do roteamento, sem lógica vazando
shared/ # Design System, tokens, utils — o que é de todo mundo
Dentro de cada módulo, você tem dois templates prontos pra guiar o padrão:
- 🛡️ Adapter Template — Para aqueles módulos mais densos, com Clean Architecture, Interfaces explícitas e Adapters que protegem sua lógica de negócio de uma lib externa que pode mudar amanhã.
- ⚡ Service Template — Para o dia a dia: chamadas de API, hooks customizados limpos e React Query fazendo o trabalho pesado.
O que já vem de brinde
Porque você não deveria perder um dia inteiro configurando o básico:
- React Query (TanStack) — Cache inteligente, estados de loading/error, sem gambiarra.
- i18n configurado — Internacionalização do dia um. Seu app já nasce global.
- Dark/Light Theme — Integrado desde a raiz do roteamento. Não é uma afterthought.
- Husky + Commitlint — Seus commits bagunçados não entram mais no histórico. Você vai agradecer daqui a 6 meses.
- Lint-Staged — ESLint e Prettier só nos arquivos que você tocou. Rápido e sem choro.
- Smart Logger — Um sistema de logs inteligente com auto-masking de dados sensíveis. Porque
console.log("senha: " + senha)é um pesadelo que acontece com todo mundo uma vez.
O Makefile: seu DevOps pessoal
Sabe aquele colega que tem todos os comandos na ponta da língua? O Makefile é esse colega, mas sem precisar de café:
make run # Inicia o servidor Expo
make run-a # Build Android direto no device
make lint-fix # Formata tudo e cura os warnings
make test # Jest, veloz e configurado
make add PKG=axios # Adiciona dependência sem drama
Simples. Sem decorar 40 flags de CLI.
Build profissional com XPO CLI
Para o fluxo de build e versionamento, o template recomenda a XPO CLI — uma ferramenta que abstrai toda a orquestração do EAS Build em um único comando legível:
xpo build android --local --profile production --bump patch
Isso cuida do versionamento semântico, do buildNumber/versionCode no app.json, do backup automático e da submissão para as lojas. Em um comando. Você leu certo.
Segurança que você esqueceria de implementar
Dois padrões que todo mundo sabe que deveria seguir mas não segue:
__DEV__com consciência — Use para isolar logs e mocks, mas lembre-se: não é bala de prata. Segredos no código continuam sendo segredos no bundle.useRefpara dados sensíveis — Senhas, tokens e PINs ficam silenciosos, fora da árvore de renderização e longe do React DevTools. Porque seu usuário merece.
Testes? Tem testes.
Estrutura de testes modular com três camadas:
- Unitários — Services e componentes de UI isolados.
- Integração — Hooks customizados envoltos pelos Providers reais do sistema.
test-utils.tsxcentralizado — O utilitário que injeta todos os Providers automaticamente, seguindo o padrão da React Testing Library. Seus testes vão espelhar a realidade do app.
O disclaimer honesto
Isso não é uma verdade absoluta. É um desenvolvedor tentando ajudar outros devs a começarem com uma base mais decente do que uma pasta components/ com 80 arquivos.
A arquitetura é opinada. Pode (e deve!) ser adaptada à sua realidade. Se você discordar de alguma decisão, ótimo — abre uma issue, manda um PR, ou só dá aquela estrela no GitHub se te ajudou.
Landing Page: Xpo Launchpad
GitHub: github.com/DavidLSousa/xpo-launchpad
XPO CLI: xpo-cli
Construído com 💜 por David Sousa — Open Source, MIT.
O palco está montado. Hora do show. 🎸