App mobile do BarberFlow — React Native + Expo SDK 51
- Node.js 18+
- Expo CLI:
npm install -g expo-cli eas-cli - App Expo Go no seu celular (iOS ou Android)
cd BarberFlow-App
npm install# Copie e edite o .env
cp .env .env.localPara desenvolvimento local, edite o .env e coloque o IP da sua máquina:
EXPO_PUBLIC_API_URL=http://192.168.x.x:4000/api
⚠️ Em React Native não existelocalhost— use o IP da sua máquina na rede local. Para descobrir o IP:ipconfig(Windows) ouifconfig(Mac/Linux)
Coloque estas imagens na pasta assets/images/:
logo.png— Logo do BarberFlow (mesmo do web/public/Logo.png)icon.png— Ícone do app (1024x1024px)splash.png— Tela de splash (1284x2778px)adaptive-icon.png— Ícone Android (1024x1024px)favicon.png— Favicon web
npm start
# ou
npx expo startEscaneie o QR Code com o Expo Go no celular.
# Android (precisa do Android Studio)
npm run android
# iOS (precisa do Xcode — apenas Mac)
npm run iosBarberFlow-App/
├── app/
│ ├── _layout.tsx # Root layout + providers
│ ├── index.tsx # Redirect logic (qual perfil?)
│ ├── (auth)/ # Login, Register, Forgot Password
│ ├── (barbeiro)/ # Dashboard do Barbeiro (FASE 2)
│ ├── (cliente)/ # Área do Cliente (FASE 4)
│ └── (admin)/ # Admin SaaS (FASE 6)
├── components/ # Componentes reutilizáveis (FASE 2+)
├── constants/
│ ├── colors.ts # Design tokens
│ └── routes.ts # Rotas centralizadas
├── lib/
│ ├── api.ts # Axios para Barbeiro (SecureStore)
│ ├── client-api.ts # Axios para Cliente (SecureStore)
│ └── plans.ts # Planos do BarberFlow
├── stores/
│ └── authStore.ts # Zustand — gerencia os 3 perfis
└── assets/
└── images/ # Logo, ícones, splash
| Perfil | Token salvo em | Chave |
|---|---|---|
| Barbeiro | SecureStore | @barberFlow:token |
| Cliente | SecureStore | @barberFlow:client:token |
| Super Admin | SecureStore | @barberFlow:token + isSuperAdmin: true |
| Lib | Função |
|---|---|
expo-router |
Navegação file-based (igual Next.js) |
expo-secure-store |
Armazenamento seguro (substitui localStorage) |
zustand |
Estado global (auth store) |
@tanstack/react-query |
Cache e sync de dados |
axios |
HTTP client (mesma lógica do web) |
victory-native |
Gráficos (substitui recharts) |
nativewind |
Tailwind CSS para RN |
react-native-reanimated |
Animações nativas |
@gorhom/bottom-sheet |
Bottom sheet (substitui ResponsiveModal) |
- FASE 1 — Setup + Auth + Navegação base
- FASE 2 — Dashboard Barbeiro + Agendamentos
- FASE 3 — Financeiro (Transações, Comissões, Metas)
- FASE 4 — Área do Cliente (Busca + Agendamento)
- FASE 5 — Push Notifications
- FASE 6 — Admin + Polimentos finais