Piiicks
Piiicks é um aplicativo de comércio eletrônico Flutter, meticulosamente elaborado com arquitetura limpa e alimentado pelo gerenciamento eficiente de estado BLoC, garantindo escalabilidade, capacidade de manutenção e desempenho ideal. Mergulhe em uma experiência de codificação perfeita com uma interface elegante e recursos robustos projetados para elevar a jornada de compras online.
Estrutura de diretório.
- biblioteca
- main.dart: Ponto de entrada da aplicação.
- aplicação ──blocos/cúbitos: Abriga as classes BLoC (Business Logic Component) ou Cubit responsáveis por gerenciar o estado da aplicação.
- core: contém as principais funcionalidades e utilitários compartilhados pelo aplicativo.
- configs: contém arquivos de configuração do projeto.
- di: Configuração de injeção de dependência para gerenciar dependências e serviços.
- dados: gerencia fontes de dados, repositórios e modelos de dados.
- domínio: define as entidades de domínio, casos de uso e interfaces.
- apresentação ──telas/widgets: Contém componentes de UI, telas e widgets para o aplicativo.
Características
- Arquitetura Limpa: Garanta uma arquitetura modular e escalonável para manutenção de longo prazo.
- Gerenciamento de estado BLoC: gerenciamento de estado eficiente para uma experiência de usuário tranquila e previsível.
Interface do usuário
- Tela do produto: exibição amigável de produtos para navegação sem esforço.
- Categorias: navegação perfeita por várias categorias de produtos.
- Detalhes do produto: informações detalhadas para uma visão abrangente dos produtos.
- Funcionalidade de pesquisa: recurso de pesquisa robusto para descoberta rápida de produtos.
- Resultados da pesquisa: resultados de pesquisa claros e relevantes para conveniência do usuário.
- Tela inicial: vitrine envolvente de produtos e categorias em destaque.
- Opções de filtro: opções intuitivas de filtragem de produtos para uma experiência de compra personalizada.
- Tela inicial: tela de carregamento inicial cativante que define o tom do aplicativo.
- Endereços: gerencie e edite endereços de usuários sem esforço para um processamento de pedidos tranquilo.
- Paginação: implemente a paginação para carregamento eficiente de grandes conjuntos de dados, garantindo uma experiência de usuário mais tranquila.
Interação do usuário
- Classificar produtos: opções para classificar produtos com base em critérios como preço.
- Notificações: mantenha os usuários informados com atualizações sobre o status dos pedidos e muito mais.
Gerenciamento de usuários
- Login/Inscrição: Autenticação segura do usuário para uma experiência personalizada.
- Carrinho de compras: gerenciamento contínuo e intuitivo dos itens selecionados antes da compra.
- Perfil de usuário: seção dedicada para gerenciamento de endereços, visualização de histórico de pedidos e personalização de preferências.
- Gerenciamento de pedidos: permite ao usuário fazer pedidos e mostrar diferentes telas de resultados do pedido com base no status do pedido.
Recursos adicionais
- Otimização de cache e carregamento de imagens: Utilize o pacote
cached_network_image
para carregamento e armazenamento em cache eficientes de imagens de rede, melhorando o desempenho. - Suporte SVG: Aproveite o pacote
flutter_svg
para oferecer suporte a imagens SVG, fornecendo uma interface de usuário nítida e escalável. - Cache de dados: Use o pacote
shared_preferences
para armazenar em cache pequenas quantidades de dados, melhorando a experiência do usuário mantendo determinados estados. - Autenticação e armazenamento seguro: implemente a autenticação segura do usuário com o pacote
flutter_secure_storage
, garantindo que os dados confidenciais do usuário sejam armazenados com segurança. - UI stateful com efeito Shimmer: aprimore a interface do usuário incorporando o efeito cintilante usando o pacote
shimmer
, proporcionando uma experiência de carregamento refinada. - Indicadores de página dinâmica: implemente indicadores de página dinâmica usando o pacote
dots_indicator
, fornecendo dicas visuais para os usuários ao navegar por diferentes telas. - Solicitações HTTP e integração de API: aproveite o pacote
http
para fazer solicitações HTTP e integre-se perfeitamente com APIs externas para buscar e atualizar dados. - Verificação de conectividade de rede: Utilize o pacote
internet_connection_checker
para garantir uma experiência tranquila do usuário, verificando e gerenciando a conectividade de rede. - Injeção de dependência: aproveite o pacote
get_it
para injeção de dependência eficiente, melhorando a capacidade de manutenção do código e gerenciando dependências de maneira eficaz. - Princípios de programação funcional: Explore e implemente princípios de programação funcional do pacote
dartz
, melhorando a clareza do código e o tratamento de erros. - Compartilhe produtos: permita que os usuários compartilhem detalhes do produto usando o pacote
share_plus
para compartilhamento contínuo nas redes sociais e outras plataformas. - Tela de contato com iniciador de URL: Utilize o pacote
url_launcher
para abrir a tela de contato, permitindo que os usuários interajam com links externos, como e-mails ou números de telefone. - Lista de desejos com Get Storage: implemente um recurso de lista de desejos usando o pacote
get_storage
para salvar e recuperar produtos, fornecendo aos usuários uma experiência de lista de desejos personalizada. - Compartilhamento de produto com captura de tela: permita que os usuários compartilhem detalhes do produto com uma captura de tela usando o pacote
screenshot
, aprimorando os recursos de compartilhamento do seu aplicativo.
Dependências
environment :
sdk : ' >=3.0.5 <4.0.0 '
dependencies :
flutter :
sdk : flutter
# the last versions.
equatable :
# Package for handling value equality without explicit overrides
dartz :
# Functional programming library for Dart
shared_preferences :
# Plugin for reading and writing key-value pairs to persistent storage
http :
# Package for making HTTP requests
internet_connection_checker :
# Library for checking internet connectivity
flutter_bloc :
# State management library for Flutter applications
get_it :
# Simple service locator for Dart and Flutter projects
shimmer :
# Package for adding shimmering effect to Flutter applications
cached_network_image :
# Library for loading and caching network images
flutter_svg :
# Library for rendering SVG files in Flutter applications
dots_indicator :
# Customizable dots indicator for PageView in Flutter
flutter_secure_storage :
# Secure storage plugin for Flutter
photo_view :
# Package for displaying images in Flutter with zooming and panning capabilities
dotted_border :
# Package for creating dotted borders in Flutter
flutter_local_notifications :
# Package for displaying local notifications in Flutter applications
share_plus :
# Package for sharing content on social media and more
get_storage :
# Persistent storage for Flutter, allowing key-value pair storage
screenshot :
# Flutter plugin for taking screenshots of widgets
path_provider :
# Plugin for interacting with the file system, including getting the app's temporary and application support directories
url_launcher :
# Flutter plugin for launching URLs, emails, making phone calls, and sending SMS.
flutter_phoenix :
# Easily restart your application from scratch, losing any previous state.
Baixar aplicativo
Telas.
Feito:
- Produtos.
- Categorias.
- Detalhes do produto.
- Procurar.
- Resultado da pesquisa.
- Lar.
- Filtro.
- Conecte-se.
- Inscrever-se.
- Respingo.
- Carrinho.
- Perfil.
- Endereços.
- Adicionar/editar endereço.
- Classificar produtos.
- Termos e Condições.
- Lista de desejos.
- Contate-nos.
- Confira.
- Sucesso no pedido.
- Falha no pedido.
- Pedidos.
- Notificações.
Para mais capturas de tela aqui
Pendência:
Demonstrações.
login.mp4
carrinho de pedidos.mp4
categorias-notificações-perfil-filtro.mp4
pesquisa.mp4
- Normalmente este caso ocorrerá se você abrir o aplicativo pela primeira vez sem conexão com a internet. Se não for a primeira vez, o aplicativo usará dados em cache.
erro-phoenix-refresh.mp4
Começando
- Clone o repositório.
- Navegue até o diretório do projeto.
- Execute
flutter pub get
para buscar as dependências. - Abra o projeto em seu IDE Flutter preferido.
- Execute o aplicativo no emulador ou dispositivo físico desejado.