App mobile em React Native (Expo) + TypeScript que consome a API do event-driven-orders — o par mobile do orders-web. Você coloca um pedido no celular e vê a saga (pagamento → estoque → envio) resolver, com o status e a linha do tempo dos eventos. Arquitetura em camadas e cobertura de testes 100%.
- Mesmo backend, agora no celular — fecha o ciclo full-stack: uma API, um front web e um app mobile, todos com a mesma disciplina.
- Camadas testáveis —
api/(cliente HTTP tipado) ·lib/(regras puras de status/formatação) ·components/(telas). A lógica fica fora dos componentes. - Cobertura 100% — verificada na CI com Jest + React Native Testing
Library, incluindo os caminhos de erro da API (
fetchmockado) e a interação do formulário (toques e digitação simulados). - Tipado ponta a ponta — os tipos do pedido espelham o contrato da API.
- Framework: React Native + Expo (SDK 52) · Linguagem: TypeScript
- Testes/cobertura: Jest (
jest-expo) +@testing-library/react-native(gate de 100%)
App.tsx # tela principal (estado: pedidos, erro, loading)
src/
├── api/ # cliente HTTP (placeOrder, getOrder)
├── lib/ # status.ts — rótulo, cor e formatação (puro)
└── components/ # OrderForm, OrderCard (React Native)
npm install
npm start # abre o Expo; use o app Expo Go (QR code) ou um emuladorAponte para uma API rodando com a variável de ambiente:
EXPO_PUBLIC_API_URL=http://SEU_IP:8080 npm startO build nativo (APK/IPA) exige o toolchain do Android/iOS (Android Studio / Xcode). Toda a lógica e as telas são testadas a 100% sem precisar do dispositivo — o app roda no Expo Go.
npm test # Jest com gate de 100% (branches/functions/lines/statements)
npm run typecheck # tsc --noEmitMIT.