TransportApp System Architecture

Expo SDK 57 + EAS
Firebase Infra
Custo Otimizado

Master Guide de Desenvolvimento & Algoritmo de Match

Documentação completa cobrindo preparação do ambiente, otimização de localização via GPS, mapeamento de APIs, infraestrutura Firebase e o fluxo de emparelhamento (Match) em tempo real.

1. Fases de Desenvolvimento e Instalação

Fase 1: Ambiente Base

Instalação na Máquina
  • Node.js (LTS): v20+ ou v22+.
  • CLI do Expo & EAS: npm i -g eas-cli
  • Simuladores: Android Studio e/ou Xcode (macOS).

Fase 2: Pacotes do Expo

Módulos Essenciais
  • react-native-maps (Exibir mapa)
  • expo-location (Captura de GPS)
  • @gorhom/bottom-sheet (UI estilo Uber)

2. O Processo de Match (Passageiro ↔ Motorista)

1

Solicitação & Orçamento

Passageiro busca o destino via Google Places API. Backend calcula distância/tempo com Distance Matrix API e aplica a fórmula de tarifa.

2

Busca Geoespacial

O pedido muda para SOLICITADO no Firestore. Uma Cloud Function executa consulta no GeoFire em um raio de 3 km por motoristas DISPONIVEL.

3

Oferta & Aceite

O backend dispara um Push via FCM para o motorista mais próximo com timer de 15s. Se aceitar, o pedido vincula o ID do motorista. Se recusar, expande o raio.

4

Execução & Tracking

Motorista entra em GPS de Alta Frequência (3-5s) enviando coordenadas ao Realtime Database. Tela do cliente anima o trajeto até o destino.

3. Estratégia Adaptativa de Atualização GPS (Economia de Custos)

Em Viagem / Entrega

Alta Frequência
  • Frequência: 3s a 5s (ou a cada 15-20m).
  • Filtro: Dispara apenas se mover > 10m.
  • Interpolação: Animação no cliente (Dead Reckoning).

Disponível / Sem Serviço

Modo Econômico
  • Frequência: 30s a 1 min (ou a cada 200-500m).
  • Geofencing: Sinal aproximado via Redes e Celular.
  • Standby: Envio em pausa se o veículo estiver parado.

Offline / Desconectado

Custo Zero
  • Frequência: 0s (Transmissão desativada).
  • Ação: Executa geoFire.removeLocation().
  • Consumo: Zero chamadas de API ou banco de dados.

4. APIs do Google Maps Platform ($200 USD/mês Grátis)

API / Serviço
Função Principal no Projeto
Limites & Franquia Grátis
Maps SDK (Android/iOS)
Renderizar o mapa interativo na tela do aplicativo.
100% Grátis & Ilimitado
Google Places API
Autocomplete de endereços no campo de busca de origem/destino.
~70k a 100k buscas/mês
Google Directions API
Desenhar o trajeto (polilinha) do motorista ao passageiro/destino.
~40.000 chamadas/mês
Distance Matrix API
Calcular distância exata e tempo para estimativa de preço da corrida.
~40.000 elementos/mês

5. Ecossistema de APIs do Firebase

API do Firebase
Função no Projeto
Limites Gratuitos (Plano Spark/Blaze)
Realtime Database + GeoFire
GPS dos motoristas em tempo real e consultas geoespaciais por raio.
100 conexões / 1 GB grátis
Cloud Firestore
Histórico de corridas, cadastro de motoristas, clientes e tarifas.
50k leituras / 20k escritas dia
Firebase Authentication
Login de usuários por E-mail, Social e verificação por SMS.
Ilimitado (E-mail) / 10k SMS
Firebase Cloud Messaging (FCM)
Notificações Push de nova corrida para motoristas e status para clientes.
100% Grátis & Ilimitado
Cloud Functions
Algoritmo backend de Match, cálculo seguro de preços e pagamentos.
2 Milhões chamadas/mês

6. Sugestões de Engenharia & Arquitetura

Session Tokens no Google Places API

Agrupa todas as teclas digitadas pelo cliente durante a busca de um endereço em uma única cobrança de API, reduzindo custos em até 80%.

EAS Development Build (Adeus limitações do Expo Go)

Compile uma build de desenvolvimento local com npx expo run:android para utilizar o Google Maps nativo e habilitar rastreamento em segundo plano ilimitado.

Fallback de Rotas com OSRM

Rode um servidor OSRM (Open Source Routing Machine) gratuito para atualizar os trajetos durante a corrida, economizando a cota da Directions API do Google.