DEV Community

Cover image for Boas práticas em Flutter
Henrique Pomatti dos Santos
Henrique Pomatti dos Santos

Posted on

Boas práticas em Flutter

Então aqui vamos com algumas boas práticas voltadas ao Flutter, já tinha esse documento de forma interna porém é algo interessante a ser compartilhado!

Configuração do projeto

  • Flutter e Dart latest sempre que possível;

  • Configuração do lint para o Flutter;

  • Checar versão do Flutter e do Dart antes do build para evitar erro;

  • Testes unitários com coverage configurado no repositório;

  • Testes de Widgets também são importantes;

  • Prática de versionamento com branches, utilizando Feature Branch;

  • Todo MR (Merge Request) deve ter no mínimo testes para o Happy Path;

Frameworks

  • Uso do Flutter Lint;

  • Uso do GetX como gerenciador de estados;

  • Clean Architecture;

  • Firebase Core para conexão com o Firebase;

  • Biometric Storage para salvar biometria de usuário no seu acesso ao app.

  • Flutter Secure Storage para salvar dados no dispositivo do usuário, de forma que torne a experiência do usuário com um desempenho melhor.

  • Utilização do HTTP e do DIO para realizar as chamadas de API e comunicações HTTP.

Considerações arquiteturais

  • Pasta lib com o código do projeto;

  • Pasta test com o código de testes do projeto;

  • Pasta fonts com as fontes do projeto;

  • Pasta assets com as imagens, ícones, textos do projeto;

  • Pasta build com o bundle se existir;

  • Arquivo pubspec.yaml no root do projeto para configuração das bibliotecas;

  • Tentar separar módulos por features/entidades;

  • Testes sempre referenciando o mesmo nível de pastas do código da Lib.

  • Utilização de nomes de classes, variáveis e afins sempre tendo referência aos conceitos do negócio, de maneira descritiva e clara e deixando explícita sua intenção, como sugere o Clean Code.

  • Criação de nomes e afins sempre em inglês.

  • Utilização do conceito de Clean Architecture;

Monitoramento

Clean Architecture

Valeu mais uma vez pessoal!

Discussion (0)