Projeto Flutter de arquitetura limpa
Visão geral do projeto
Este projeto de vibração segue o padrão de arquitetura limpa, que promove a separação de preocupações e a manutenção. O projeto está estruturado em várias camadas:
Camada de apresentação : contém widgets, páginas e lógica de apresentação (bloco). Lida com a interface do usuário e as interações do usuário.
Camada de domínio : contém casos de uso e entidades de domínio e repositório abstrato.
Camada de dados : gerencia fontes de dados, repositórios e modelos de dados. Responsável pela recuperação e armazenamento de dados. Dividido em repositories , model , local_data_sources e remote_data_sources .
Principais recursos
Recurso de login
Nosso aplicativo inclui um sistema de login robusto. Aqui estão os aspectos principais desse recurso:
Validação de entrada : Garantimos que as entradas do usuário, como email e senha, sejam validadas para manter a integridade dos dados.
Autenticação : Ao inserir credenciais válidas, os usuários recebem acesso e concedem acesso às suas contas.
Recurso de inscrição
Criar uma conta é direta com nosso recurso de inscrição. Os principais elementos incluem:
Validação de entrada : semelhante ao recurso de login, validamos as entradas do usuário para garantir a precisão dos dados com a validação de arquivo de imagem.
Criar Accout : Ao inserir credenciais válidas, os usuários são válidos para criar Accout.
Estrutura de pastas
- lib/recursos/recurso/
- Apresentação/ : Contém widgets e lógica de apresentação.
- domínio/ : contém casos de uso e entidades de domínio.
- dados/
- Repositórios/ : implementa repositórios de dados.
- Modelo/ : Define modelos de dados.
- LOCAL_DATA_SOURCES/ : Gerencia fontes de dados locais.
- REMOTE_DATA_SOURCES/ : lida com fontes de dados remotos.
Pacotes
- Flutter : The Flutter SDK.
- Cupertino_icons : fornece os ícones de cupertino usados no projeto.
- Shared_preferências : um plug-in para acessar e armazenar pares de valor-chave no dispositivo.
- get_it : um localizador de serviço para injeção de dependência.
- Dartz : um pacote de programação funcional que fornece tipos e funções de dados algébricos comuns.
- Flutter_bloc : uma biblioteca de gerenciamento de estado com base no padrão de bloco (componente da lógica de negócios).
- Equatável : um pacote de utilitário para comparar objetos para igualdade.
- DIO : Um poderoso cliente HTTP para fazer solicitações de API.
- Formz : um pacote para manusear a validação de formulários e gerenciamento de estado.
- GO_ROUTER : Um roteador declarativo para aplicações de vibração.
- MIME : Um pacote para trabalhar com tipos MIME.
- File_picker : um plug -in para escolher arquivos do dispositivo.
- Mocktail : uma biblioteca zombeteira para testes de dardo e vibração.
- internet_connection_checker : um pacote para verificar a conectividade da Internet.
Além das dependências, também existem algumas dependências de desenvolvimento usadas para testes e geração de código:
- Flutter_test : a estrutura de teste do fleto.
- Mockito : Uma biblioteca zombeteira para testes de dardo e vibração.
- Build_runner : uma ferramenta para gerar código durante o processo de construção.
- Bloc_test : um utilitário de teste para testar blocos.
- Network_image_mock : um pacote para zombar de imagens de rede durante os testes.