🚀 Este projeto foi desenvolvido durante a 9ª edição da Dart Week, um evento de lançamento para a Academia do Flutter (ADF), do Rodrigo Rahman. O objetivo deste projeto é criar uma aplicação que permita aos usuários visualizar produtos, fazer login e logout, cadastrar-se, visualizar detalhes dos produtos e fazer pedidos.
- Consulta da API usando o package Dio: para se comunicar com a API que fornece os dados dos produtos. 📡
- BLoC como Gerenciamento de Estado: gerencia o estado da aplicação fazendo a comunicação entre diferentes telas. 🔥
- Fluxo de Login e Logout com a aplicação: para permitir que os usuários façam login e logout. 🔒
- Persistência de dados com o SharedPreferences: para salvar informações do usuário e mantê-las entre as sessões. 💾
- Pattern Matching com match: para fazer comparações de diferentes tipos de dados de forma mais fácil. 🔍
- Extensions: para adicionar novas funcionalidades às classes já existentes. ⚙️
- Slivers: para criar telas com scroll, permitindo a exibição de grandes quantidades de informações. 📜
- Providers: para gerenciar a dependência de diferentes componentes da aplicação. 🚪
- Mixins: para compartilhar código entre diferentes classes. 🤝
- Singleton: para criar uma única instância de uma classe e permitir o acesso global. 🌎
- Splash: tela inicial do app para transição. ✨
- Home: tela principal do app, lista produtos disponíveis e que serve de fluxo inicial para as demais telas descritas abaixo. 🏠
- Login: onde possui o fluxo de login. 🔑
- Register: onde possui o fluxo de cadastro. 📝
- ProductDetail: detalhe da página do produto, onde temos mais componentes descritivos a respeito do produto. 🔍
- Order: onde podemos escolher a forma de pagamento e finalizar nosso pedido. 💰
Para executar a aplicação, basta clonar este repositório e executar o comando flutter run
. Certifique-se de ter o Flutter instalado em sua máquina. 💻
Este projeto foi desenvolvido com o intuito de fornecer um exemplo de aplicação em Flutter com as técnicas e tecnologias mencionadas acima. Sinta-se à vontade para utilizar este projeto como base para seus próprios projetos. 💻✨