Aplicativo em Expo e React Native para cadastro, histórico e comparação de medidas corporais do Brocolito.
- Expo 54
- React 19
- React Native 0.81
- Expo Router
- TypeScript
- AsyncStorage
- Nunito via
@expo-google-fonts/nunito
- Onboarding, cadastro e login
- Sessão autenticada com token JWT
- Perfil do usuário
- Objetivo do usuário: perder peso ou ganhar peso
- Cadastro, edição e exclusão de medições corporais
- Histórico de medições
- Comparativo de evolução por medida
- Mensagens de progresso baseadas no objetivo
- Informações educativas em métricas de peso, cintura e abdômen
- Node.js compatível com Expo 54
- npm
- Expo CLI via
npx expo - API Brocolito acessível
Para rodar com a API local, suba o projeto brocolito-api em:
http://localhost:3000
Crie um arquivo .env na raiz do app:
cp .env.example .envConfigure a URL da API:
EXPO_PUBLIC_API_BASE_URL=http://localhost:3000Para apontar para produção, use a URL publicada da API:
EXPO_PUBLIC_API_BASE_URL=https://sua-api.example.comVariáveis com prefixo EXPO_PUBLIC_ são expostas no bundle do app. Não coloque segredos nesse arquivo.
Instale as dependências:
npm installInicie o Expo:
npm startRodar no navegador:
npm run webRodar no Android:
npm run androidRodar no iOS:
npm run iosSe testar em celular físico com API local, localhost aponta para o próprio celular. Nesse caso, use o IP da máquina que está rodando a API:
EXPO_PUBLIC_API_BASE_URL=http://SEU_IP_LOCAL:3000| Comando | Descrição |
|---|---|
npm start |
Inicia o Expo |
npm run web |
Inicia o app no navegador |
npm run android |
Abre no Android |
npm run ios |
Abre no iOS |
npm run lint |
Roda o lint do Expo |
npx tsc --noEmit |
Checa tipos TypeScript |
- Suba a API:
cd ../brocolito-api
bin/rails server- Configure o
.envdo app:
EXPO_PUBLIC_API_BASE_URL=http://localhost:3000- Inicie o app:
cd ../brocolito-app
npm start- Crie uma conta ou use um usuário dos seeds da API.
app/
(app)/ Rotas autenticadas
login.tsx Login
onboarding.tsx Tela inicial
register.tsx Cadastro
src/
components/ Componentes reutilizáveis
context/AuthContext.tsx Sessão e token JWT
services/api.ts Cliente HTTP da API
types/ Tipos TypeScript
utils/ Formatação, objetivos e insights
Lint:
npm run lintTypecheck:
npx tsc --noEmit- O app espera que a API retorne JWT no login.
- O token é armazenado no AsyncStorage.
- O arquivo
.envé ignorado pelo Git. .env.exampleexiste apenas como referência de configuração.