Files
LCEssentials/pedifoods_app_plan.md
Daniel Arantes Loverde 54686397b9 Not has address
2026-02-07 17:16:45 -03:00

5.6 KiB

Plano de implementacao do app PediFoods (Skip + SwiftUI)

Legenda

  • [🟥] Nao feito
  • [🟨] Parcial
  • [🟩] Completo

Estado atual (snapshot)

  • [🟩] Base Skip + SwiftUI criada e compilando com fluxos auth e main.
  • [🟩] Design system ativo com paleta, tipografia (Plus Jakarta Sans), raios e sombras.
  • [🟨] Autenticacao com fluxo funcional de login por email/OTP (integracao inicial de API) e cadastro com navegacao pronta.
  • [🟨] Home refeita com layout de referencia (header verde, categorias, cards, specials) e efeito de colapso em iOS.
  • [🟩] Estado global (AppState) em uso para sessao, perfil, endereco, carrinho e favoritos.
  • [🟩] API client/service com envelopes, retry/backoff, tratamento de erros/rate limit, politica de sessao expirada e persistencia segura de JWT no iOS.

Premissas de design e navegacao

  • A tabbar e o centro de navegacao. Toda navegacao que nao for modal/over-context acontece dentro da tabbar.
  • Login e cadastro ficam fora da tabbar. Ao logar/cadastrar, a Home abre ja com as tabs ativas.
  • O verde da imagem home_tabs.png e o primary. O verde fluorescente sera usado raramente e fica como cor terciaria.
  • Tipografia base: Plus Jakarta Sans.

Etapa 1 — Fundacao tecnica

  • [🟩] Etapa geral
  1. [🟩] Projeto Skip e estrutura base.
  2. [🟩] Design system (cores/tipo/layout).
  3. [🟩] Service base de API.
  • [🟩] Feito: camada HTTP, headers padrao, tokens por modulo, tratamento de HTTP e 429, retry/backoff para falhas transientes, decode de erro com payload, politica de sessao expirada (401/403), limpeza de token em expiracao, persistencia de JWT em Keychain (iOS).
  1. [🟩] Coordinator de navegacao.
  • [🟩] Feito: fluxo auth -> main, tabbar com Home/Cart/Orders/Profile.
  • [🟩] Feito: base de modais over-context (address picker e filtros) via sheet centralizado.
  1. [🟩] State global (MVP).
  2. [🟩] Permissions e GPS.
  • [🟩] Feito: permissao/obter localizacao no iOS via CoreLocation, fallback de UX quando localizacao nao e obtida.
  • [🟩] Feito: permissao de localizacao no Android (manifest + runtime request), cache de ultima localizacao valida e fallback para indisponivel/negado.

Etapa 2 — Autenticacao (fora da tabbar)

  • [🟨] Etapa geral
  1. [🟩] Tela Login (MVP).
  2. [🟩] Tela Cadastro (MVP UI).
  3. [🟨] Tela OTP (8 digitos).
  • [🟩] Feito: fluxo OTP integrado no login por email e telefone.
  • [🟥] Pendente: UX final de OTP em 8 digitos conforme referencia final.
  1. [🟨] Fluxo pos-login.
  • [🟩] Feito: login valida token e entra no fluxo principal.
  • [🟥] Pendente: buscar perfil completo e sincronizar estado antes da Home.

Etapa 3 — Home e listagem de lojas (Tab Home)

  • [🟨] Etapa geral
  1. [🟩] Home com header, busca e categorias (MVP visual).
  2. [🟨] Listagem de lojas via API /api/app/stores.
  • [🟩] Feito: metodo de service pronto.
  • [🟥] Pendente: bind real da Home com dados de API (atualmente usa mocks visuais).
  1. [🟨] Filtros e busca.
  • [🟩] Feito: UI base de busca/categorias e gatilho de modal de filtros.
  • [🟥] Pendente: filtros reais + query server-side.
  1. [🟨] Favoritos.
  • [🟩] Feito: estado e affordance visual no card.
  • [🟥] Pendente: persistencia/sync com backend.
  • [🟥] Etapa geral
  1. [🟥] Tela de detalhes da loja.
  2. [🟥] Catalogo por categorias.
  3. [🟥] Produtos com addons.
  4. [🟥] Favoritos de loja.

Etapa 5 — Produto e carrinho

  • [🟥] Etapa geral
  1. [🟥] Tela de produto (detalhes + adicionais).
  2. [🟨] Carrinho (Tab Cart).
  • [🟩] Feito: tab e tela placeholder.
  • [🟥] Pendente: itens reais, regra de negocio e estados.
  1. [🟥] Quantidade e subtotal.

Etapa 6 — Checkout e pagamento

  • [🟥] Etapa geral
  1. [🟥] Tela de checkout.
  2. [🟥] Endereco de entrega.
  3. [🟥] Metodos de pagamento (PIX/credito/debito/dinheiro).
  4. [🟥] Criacao de pedido.
  5. [🟥] Fluxo de PIX (payload e QR).

Etapa 7 — Pedidos e rastreio

  • [🟥] Etapa geral
  1. [🟨] Lista de pedidos.
  • [🟨] Feito: tab Orders criada + tela placeholder.
  • [🟥] Pendente: lista real, detalhe e tracking.
  1. [🟥] Detalhe do pedido.
  2. [🟥] Tracking de status.

Etapa 8 — Perfil e enderecos

  • [🟥] Etapa geral
  1. [🟨] Perfil do usuario.
  • [🟩] Feito: tela com dados do estado e logout.
  • [🟥] Pendente: edicao completa e dados vindos da API.
  1. [🟥] Lista de enderecos.
  2. [🟥] Criar/editar endereco.

Etapa 9 — Mapa e GPS

  • [🟥] Etapa geral
  1. [🟥] Mapa iOS via MapKit.
  2. [🟥] Mapa Android via ComposeView (Google Maps).
  3. [🟥] Pinos de loja e localizacao atual.
  4. [🟨] Ajustes de permissao e fallback sem GPS.

Etapa 10 — Polimento e release

  • [🟥] Etapa geral
  1. [🟨] Dark mode (presente em partes de auth).
  2. [🟨] Estados vazios e erros.
  3. [🟥] Performance e cache.
  4. [🟨] Build iOS e Android (estrutura pronta, falta validacao final de fluxo completo).
  5. [🟥] Export APK/AAB.

Etapa 11 — Ajustes de UI (referencias)

  • [🟨] Etapa geral
  1. [🟨] Login (light/dark).
  2. [🟨] Cadastro.
  3. [🟨] OTP.
  4. [🟥] Carrinho.
  5. [🟥] Checkout.
  6. [🟨] Perfil.
  7. [🟨] Pedidos.

Proximos focos recomendados

  1. [🟨] Conectar Home com API real (stores, busca, categoria, favoritos).
  2. [🟨] Fechar fluxo auth pos-login (perfil + hidratacao de estado).
  3. [🟥] Implementar carrinho real (itens, subtotal, edicao) para destravar checkout.
  4. [🟥] Implementar mapa e tracking de pedidos.