ByteBank: Aplicação Mobile, utilizando React Native (Expo), Firebase Storage e Cloud Firestore.
O ByteBank é uma aplicação financeira desenvolvida como desafio no desenvolvimento Mobile do Tech Challenge, Fase 3, do curso de pós-graduação em Front-End Engineering da FIAP.
bytebank-mobile/
├── assets/ # Recursos estáticos (ícones, splash)
├── src/
│ ├── components/ # Componentes reutilizáveis e UI
│ ├── config/ # Configurações
│ │ └── firebase.ts # Configuração Firebase
│ ├── context/ # Contextos React (estado global)
│ ├── hooks/ # Custom hooks
│ ├── navigation/ # Rotas e navegação
│ ├── screens/ # Telas da aplicação
│ │ ├── auth/ # Telas de autenticação (Login, SignUp)
│ │ └── protected/ # Telas protegidas (Home, Transactions, etc)
│ ├── services/ # Lógica de negócio e APIs
│ ├── store/ # Gerenciamento de estado (Zustand)
│ ├── theme/ # Tema, cores e estilos
│ ├── types/ # Definições TypeScript
│ └── utils/ # Funções utilitárias
├── App.tsx # Componente raiz
├── package.json # Dependências do projeto
├── firebase.json # Configuração Firebase
├── .env # Variáveis de ambiente (Firebase)
├── .env.example # Template das variáveis
├── firestore.rules # Regras de segurança Firestore
├── storage.rules # Regras de segurança Storage
├── firebase.json # Configuração Firebase CLI
└── README.md # Documentação principal
- Node.js 18+ (recomendado)
- npm ou yarn
- Expo CLI:
npm install -g expo-cli(opcional, usamosnpx expo) - Conta no Firebase (gratuita)
- Se for testar via USB, instale o Android Platform Tools (ADB)
git clone https://github.com/camp0sfer/bytebank-mobile.git
cd bytebank-mobilenpm install
# ou
yarn# Copie o arquivo de exemplo
cp .env.example .env- Acesse o Firebase Console
- Crie um novo projeto ou use um existente
- Vá em Configurações do Projeto > Seus aplicativos
- Copie as credenciais do Firebase
- Cole no arquivo
.env
⚠️ Importante: Não compartilhe suas credenciais! O arquivo.envestá no.gitignoree nunca será versionado.
💡 Dica: Se você não tem acesso ao Firebase Console, solicite os valores das variáveis de ambiente à equipe de desenvolvimento.
No Firebase Console:
- Habilite Authentication > Email/Password
- Crie um banco Firestore Database (modo teste)
- Habilite Storage (para upload de recibos)
- Configure as regras de segurança (veja
firestore.rulesestorage.rules)
Para implantar as regras de segurança do Firestore e Storage:
# Instalar Firebase CLI (apenas uma vez)
npm install -g firebase-tools
# Fazer login no Firebase
firebase login
# Selecionar o projeto (se necessário)
firebase use bytebank-mobile
# Implantar todas as regras
firebase deploy --only firestore,storage
# Ou implantar individualmente
firebase deploy --only firestore # Apenas Firestore
firebase deploy --only storage # Apenas Storage
⚠️ Importante: Sempre implante as regras após modificá-las para garantir a segurança do aplicativo.
Após configurar o Firebase, inicie o servidor de desenvolvimento:
npm start- Instale
Expo Gono celular (Google Play) - Certifique-se que computador e celular estão na mesma rede Wi‑Fi
- No painel do Expo escolha
LANpara melhor desempenho. Se não for possível, escolhaTunnel - No painel do Expo (ou no terminal) haverá um QR Code — abra
Expo Go→Scan QR Codee aponte a câmera
- Ative a depuração USB no Android e conecte o cabo
- Verifique o dispositivo com
adb devices - Execute no terminal:
npm run android
# ou, após `npx expo start`, pressione `a` no terminal para abrir no dispositivo/emuladornpm run webnpm install -g eas-clieas loginPara garantir que as credenciais do Firebase não sejam expostas no código, é necessário configurá-las como secrets no EAS:
# Configurar automaticamente todas as variáveis do .env
cat .env | while IFS='=' read -r key value; do
if [ -n "$key" ] && [ -n "$value" ]; then
echo "Creating secret: $key"
eas secret:create --scope project --name "$key" --value "$value" --type string --force
fi
done
⚠️ Importante: Este passo é necessário apenas uma vez por projeto. As variáveis ficam armazenadas de forma segura no servidor EAS e são injetadas automaticamente durante o build.
eas build --platform android --profile previewO processo irá:
- Fazer upload do código para o servidor EAS
- Compilar o APK na nuvem
- Gerar um link e QR code para download
Após o build ser concluído, você pode:
- Escanear o QR code com seu dispositivo Android
- Compartilhar o link com a equipe para testes
- Baixar o arquivo APK diretamente do link gerado
npm start # Iniciar Expo Dev Server
npm run android # Executar no Android
npm run ios # Executar no iOS
npm run web # Executar na web- QR Code não é lido: Altere para
Tunnelno Expo Dev Tools - App não atualiza: Feche e reabra
Expo Goou limpe o cache comnpx expo start -c adb devicesnão lista o aparelho: Verifique permissões/cabo e as ferramentas do Android