Este projeto consiste em um aplicativo nativo para a plataforma Android desenvolvido como requisito parcial para a disciplina de Desenvolvimento Mobile na UVA. O software estabelece uma plataforma de panificação 100% digital focada estritamente no modelo de delivery, otimizando o fluxo desde a captação do pedido até a entrega final ao cliente.
O aplicativo foi projetado para atender duas frentes de utilização: a interface do cliente (focada em usabilidade, rapidez e conveniência) e a interface administrativa do gerente (focada no controle operacional e de estoque).
- RF01 - Visualização de Cardápio: Apresentação da lista de produtos de panificação disponíveis para compra.
- RF02 - Carrinho de Compras: Fluxo dinâmico para adição, remoção e alteração de quantidade de itens com cálculo de totais em tempo real.
- RF03 - Fechamento de Pedido: Checkout unificado para seleção de endereço, método de pagamento e consolidação da compra.
- RF04 - Cadastro e Login de Usuários: Autenticação e controle de contas com armazenamento persistente de sessão.
- RF05 - Histórico de Compras: Consulta e acompanhamento dos status das ordens anteriores realizadas pelo cliente.
- RF06 - Gestão de Estoque: Painel exclusivo do administrador para habilitar ou desabilitar a exibição de produtos.
- RN01 - Limitação Geográfica de Entrega: O atendimento é restrito a bairros selecionados do Rio de Janeiro. Pedidos com CEPs fora da zona de cobertura são bloqueados automaticamente durante o cadastro de endereços.
- RN02 - Sincronização com Fornadas: A disponibilidade dos produtos no cardápio do cliente reflete em tempo real a linha de produção física interna gerenciada pelo administrador.
A engenharia do software baseia-se nos padrões recomendados pelo Google para o desenvolvimento nativo, garantindo robustez, alta performance e separação de responsabilidades.
- Linguagem: Java Puro (Compatibilidade mínima definida para a API 26 - Android 8.0)
- Padrão de Arquitetura: MVVM (Model-View-ViewModel) de forma estrita.
- Vinculação de Telas: View Binding ativo em todo o projeto, eliminando o uso de métodos legados como
findViewById. - Persistência de Dados Local: Biblioteca Room (ORM sob o banco de dados SQLite) para o armazenamento de credenciais e endereços salvos do usuário.
- Comunicação com APIs Externas: Retrofit 2 integrado ao conversor Gson para consumo síncrono e assíncrono da API do ViaCEP.
- Interface de Usuário: XML estruturado sob as diretrizes do Material Design 3 (M3). Uso de componentes como
BottomSheetDialogFragmentpara o checkout fluido,NestedScrollViewpara responsividade e tratamento deWindowInsetspara adaptação a telas com tecnologia Edge-to-Edge. - Gerenciamento de Estado: Uso de
LiveDataeMutableLiveDatapara manter a interface reativa às mutações dos repositórios centralizados (Single Source of Truth).
O código-fonte está estruturado por responsabilidade arquitetural dentro do pacote principal com.trigodourado.app:
com.trigodourado.app/
│
├── data/
│ ├── api/ # Configuração do Retrofit, endpoints e DTOs (ex: ViaCepResponse)
│ ├── local/ # Configuração do Room (AppDatabase e interfaces DAO)
│ ├── model/ # Entidades do domínio (Usuario, Produto, Pedido) e DTOs de UI (CartItemUI)
│ └── repository/ # Repositórios centralizadores de dados (AuthRepository, CartRepository)
│
├── viewmodel/ # ViewModels globais da aplicação
│
└── ui/ # Camada de visualização (Views) estruturada por funcionalidade
├── adapter/ # Adaptadores especializados para o RecyclerView (ProdutosAdapter, ItensCarrinhoAdapter)
├── admin/ # Fragmentos e atividades exclusivas da visão do gerente
├── auth/ # Fluxo de login e cadastro de usuários
├── cart/ # Gerenciamento da tela de listagem de carrinho
├── checkout/ # Componentes de fechamento de pedido (CheckoutBottomSheet)
├── history/ # Listagem do histórico de ordens do cliente
└── menu/ # Catálogo principal e navegação por abas de categorias
Para compilar e executar o projeto localmente, certifique-se de cumprir os requisitos de ambiente descritos:
-
Android Studio Ladybug (ou versão superior) instalado
-
Java JDK 17 configurado no sistema (gerenciado opcionalmente via ferramenta mise)
-
Clone o repositório para o seu diretório local.
-
Abra o Android Studio e selecione a opção "Open" apontando para a pasta raiz do projeto.
-
Aguarde a indexação inicial do Gradle e o download das dependências declaradas no arquivo build.gradle.kts.
-
Configure um dispositivo virtual (AVD) no gerenciador do Android Studio (Recomendado: Perfil baseado no Pixel 10 Pro rodando API API 34/35 com aceleração de hardware ativa via Windows Hypervisor Platform).
-
Clique no botão "Run" (ícone de execução verde) para compilar e instalar o arquivo .apk no emulador.
Versão 1.0 (20 de Maio de 2026): Concepção inicial da arquitetura, mapeamento do dicionário de dados em entidades do Room, integração assíncrona do ViaCEP e estabelecimento do fluxo reativo MVVM.