5.6 KiB
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 fluxosauthemain.[🟩]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.pnge o primary. O verde fluorescente sera usado raramente e fica como cor terciaria. - Tipografia base: Plus Jakarta Sans.
Etapa 1 — Fundacao tecnica
[🟩]Etapa geral
[🟩]Projeto Skip e estrutura base.[🟩]Design system (cores/tipo/layout).[🟩]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).
[🟩]Coordinator de navegacao.
[🟩]Feito: fluxoauth->main, tabbar com Home/Cart/Orders/Profile.[🟩]Feito: base de modais over-context (address picker e filtros) viasheetcentralizado.
[🟩]State global (MVP).[🟩]Permissions e GPS.
[🟩]Feito: permissao/obter localizacao no iOS viaCoreLocation, 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
[🟩]Tela Login (MVP).[🟩]Tela Cadastro (MVP UI).[🟨]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.
[🟨]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
[🟩]Home com header, busca e categorias (MVP visual).[🟨]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).
[🟨]Filtros e busca.
[🟩]Feito: UI base de busca/categorias e gatilho de modal de filtros.[🟥]Pendente: filtros reais + query server-side.
[🟨]Favoritos.
[🟩]Feito: estado e affordance visual no card.[🟥]Pendente: persistencia/sync com backend.
Etapa 4 — Store Detail e Catalogo
[🟥]Etapa geral
[🟥]Tela de detalhes da loja.[🟥]Catalogo por categorias.[🟥]Produtos com addons.[🟥]Favoritos de loja.
Etapa 5 — Produto e carrinho
[🟥]Etapa geral
[🟥]Tela de produto (detalhes + adicionais).[🟨]Carrinho (Tab Cart).
[🟩]Feito: tab e tela placeholder.[🟥]Pendente: itens reais, regra de negocio e estados.
[🟥]Quantidade e subtotal.
Etapa 6 — Checkout e pagamento
[🟥]Etapa geral
[🟥]Tela de checkout.[🟥]Endereco de entrega.[🟥]Metodos de pagamento (PIX/credito/debito/dinheiro).[🟥]Criacao de pedido.[🟥]Fluxo de PIX (payload e QR).
Etapa 7 — Pedidos e rastreio
[🟥]Etapa geral
[🟨]Lista de pedidos.
[🟨]Feito: tab Orders criada + tela placeholder.[🟥]Pendente: lista real, detalhe e tracking.
[🟥]Detalhe do pedido.[🟥]Tracking de status.
Etapa 8 — Perfil e enderecos
[🟥]Etapa geral
[🟨]Perfil do usuario.
[🟩]Feito: tela com dados do estado e logout.[🟥]Pendente: edicao completa e dados vindos da API.
[🟥]Lista de enderecos.[🟥]Criar/editar endereco.
Etapa 9 — Mapa e GPS
[🟥]Etapa geral
[🟥]Mapa iOS via MapKit.[🟥]Mapa Android via ComposeView (Google Maps).[🟥]Pinos de loja e localizacao atual.[🟨]Ajustes de permissao e fallback sem GPS.
Etapa 10 — Polimento e release
[🟥]Etapa geral
[🟨]Dark mode (presente em partes de auth).[🟨]Estados vazios e erros.[🟥]Performance e cache.[🟨]Build iOS e Android (estrutura pronta, falta validacao final de fluxo completo).[🟥]Export APK/AAB.
Etapa 11 — Ajustes de UI (referencias)
[🟨]Etapa geral
[🟨]Login (light/dark).[🟨]Cadastro.[🟨]OTP.[🟥]Carrinho.[🟥]Checkout.[🟨]Perfil.[🟨]Pedidos.
Proximos focos recomendados
[🟨]Conectar Home com API real (stores, busca, categoria, favoritos).[🟨]Fechar fluxo auth pos-login (perfil + hidratacao de estado).[🟥]Implementar carrinho real (itens, subtotal, edicao) para destravar checkout.[🟥]Implementar mapa e tracking de pedidos.