Este repositório contém a implementação completa do backend e do aplicativo mobile desenvolvidos para o desafio técnico de Desenvolvedor(a) Sênior Mobile.
O foco da solução está em arquitetura, boas práticas, organização de código, testabilidade e clareza nas decisões técnicas, conforme solicitado no desafio.
A solução foi construída seguindo um modelo backend-first, onde:
- O backend expõe uma API REST desacoplada e bem estruturada
- O mobile consome a API sem dependências diretas da UI
- Configurações dinâmicas são fornecidas pelo servidor
- As camadas possuem responsabilidades claras e bem definidas
- Node.js
- TypeScript
- Fastify
- Zod (validação de dados)
- Jest (testes unitários)
- React Native
- TypeScript
- Axios
- Zustand (gerenciamento de estado)
- React Navigation
O backend segue uma abordagem inspirada em Clean Architecture e ADR (Action–Domain–Responder).
backend/
└── src/
├── api/
│ └── v1/
│ ├── tasks/
│ └── config/
├── app/
│ └── modules/
└── tests/
- Routes / Controllers: camada HTTP (request/response)
- Services: regras de negócio
- Repositories: acesso a dados (em memória neste desafio)
cd backend
npm install
npm run devServidor disponível em:
http://localhost:3000
O mobile foi desenvolvido em React Native com TypeScript, utilizando uma arquitetura inspirada em Clean Architecture + MVVM.
mobile/
└── src/
├── screens/
├── app/
│ ├── modules/
│ │ ├── tasks/
│ │ └── config/
│ └── shared/
└── App.tsx
Screen → Hook (ViewModel) → Service → API → Backend
cd mobile
npm install
npx react-native run-androidcd backend
npm testcd mobile
npm test