A minha versão...
Tags: flutter, dart, tips, tricks
Published: 2021-11-18 14:44:11

Aqui estão algumas dicas e truques que descobri ao longo dos meus quatro anos de criação de aplicativos e conteúdo Flutter. Tenho certeza de que eles vão melhorar seu fluxo de trabalho, se você ainda não os conhece.

Essa documentação teve como incentivo um artigo do medium, aonde o desenvolvedor mostrou alguns itens e eu vou dar a minha versão!

![Flutterzão!](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3fsumgnui3340phco0f8.png)


###Use muitos pacotes!

Isso pode parecer errado, mas para muitas pessoas, apenas concluir um projeto é a primeira etapa para que os usuários reais testem seu aplicativo. Com o tempo, quando o aplicativo for publicado e você receber feedback, será necessário examinar os pacotes e substituí-los por seu próprio código para ter mais controle.

Para ver todos os pacotes para o Flutter, veja este link: [Pub.dev](https://pub.dev/)


###Use Snippets!

Um tempo atrás, eu só usei os blocos de código fornecidos para coisas como StatelessWidget, mas quando você realmente desenvolve blocos personalizados para tarefas que você faz repetidamente, você economiza muito tempo! Vou mostrar um exemplo de snippets. Eles vieram originalmente do FilledStacks e tenho usado-os desde então!
Se você estiver usando o VSCode, basta pressionar F1, pesquisar “Snippets” e deverá encontrar “Configure user snippets”. Adicione um arquivo de sua preferência e o código de sua escolha. Abaixo está meu snippet de teste:

```Dart
{
  "Main Test Suite Setup": {
		"prefix": "testm",
		"body": [
			"import 'package:flutter_test/flutter_test.dart';",
			"",
			"void main() {",
			" group('${1:${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g}} -', (){",
			"",
			" });",
			"}"
		],
		"description": "Main Test Suite Setup"
	},
	"Test Group Setup": {
		"prefix": "testg",
		"description": "Creates a Test group with a test",
		"body": [
			"group('${1} -', () {",
			" test('${2}', () {",
			"",
			" });",
			"});",
		]
	},
	"Single Test Setup": {
		"prefix": "tests",
		"description": "Creates a single test",
		"body": [
			" test('${1}', () {",
			"",
			" });",
		]
	},
}
```


###Use o Lint! Muito importante!

Existem várias maneiras diferentes de configurar o linting, mas eu recomendaria apenas configurar o pacote [lint](https://pub.dev/packages/lint), que é super fácil!


###Use os recursos da IDE!

Aproveite ao máximo todos os recursos da IDE que você tá utilizando, sabe aquela lampadazinha? Então, ela é uma das peças mais importantes, não tenha medo, só vai!


###Siga o Clean Code!

O clean code é uma das premissas mais importantes quando se trata de projetos grandes, ele basicamente diz que o que é bom ser feito e o que não é dentro de um código.

Aqui um artigo do medium que exemplifica bastante!
[Link mágico!](https://blog.flutterando.com.br/sua-arquitetura-est%C3%A1-limpa-clean-architecture-no-flutter-458c68fad120)


###Boas práticas!

Isso é algo muito legal de ser aplicado, eu montei um artigo e ele pode ser visto aqui!
[Boas práticas!](https://drive.google.com/file/d/1oC8lT6W8w5i89Abi27rKrSgBFDQW1XpL/view?usp=sharing)


###A cara do seu App!

Hoje em dia nos apps atuais, há muita coisa que gera valor para o usuário final, porém algo de extrema importância que o usuário irá ver no mesmo momento que abrir o seu app será o seu ícone e a splash screen! Montar algo que seja bonito e que mostre o poder do seu app ao usuário final é de extrema importância, para isso temos dois pacotes que nos auxiliam!
[Ícones!](https://pub.dev/packages/flutter_launcher_icons)
[Splash!](https://pub.dev/packages/flutter_native_splash)


###Operadores null

Existem vários operadores diferentes com reconhecimento de null, como ??, ?? = e mais. Aprendê-los não apenas tornará seu código mais limpo e fácil agora, mas também simplificará muito as coisas.


###Widget de responsabilidade única!

Se você conhece os princípios SOLID, isso já pode soar muito familiar. 

Bem, é porque é. 

Com “responsabilidade única”, queremos dizer que um widget deve fazer apenas uma coisa.
Não faça mega widgets que fazem um monte de coisas diferentes. Por exemplo, se você percebeu que tem um widget contendo outros widgets que compõem seu botão personalizado, quebre-o! Extraia-o e crie seu próprio widget separado. Isso o tornará muito mais gerenciável e agora você saberá que a única regra desse widget específico é veicular e manipular esse botão.

Aqui um artigo do medium que mostra um pouco sobre SOLID em dart.
[SOLID!](https://ankitgg66.medium.com/being-solid-in-dart-1933037168ae)


###Conclusão

Bom, acho que é isso ai pessoal, sintam-se a vontade para me mandarem mais dicas para o Flutter para crescermos esse documento!

E-mail: henriquepomatti@hotmail.com