Mundo
Dois pacotes que irão ajudar a criar apps flutter mais rápido
Um bom projeto começa por boas ferramentas, conheça dois excelentes pacotes
Por que utilizar pacotes? Flutter não é mais do que o suficiente?
Sim.
Flutter é mais do que o suficiente. A questão é: responsabilidades.
Qual a responsabilidade de usar apenas o Flutter?
A principal é esta: quem vai desenvolver as soluções será você.
Injeção de dependências, navegação, gerenciamento de estado, etc.
Tudo isso será responsabilidade do time de desenvolvimento ou de algum outro time de sua confiança.
A pergunta é:
Você tem tempo e disposição para construir e manter todas as ferramentas necessárias para esse projeto?
Se a resposta for sim, perfeito.
O principal benefício que você perceberá é o controle.
Isso faz muito sentido em alguns projetos.
Porém, se você prefere ceder um pouco de controle em favor de velocidade e maturidade antecipada, então esse artigo é para você.
Injeção de dependências com GetIt
Um problema muito comum enfrentado em projetos é o gerenciamento de dependências.
Cada dependência tem um custo computacional para estar disponível.
Nesse sentido, um mau gerenciamento de dependências (leia-se, criação e descarte) pode causar problemas na performance da aplicação.
Pense no número de apps abertos do seu celular.
Cada app a mais tem um impacto na performance do dispositivo.
Quanto melhor o gerenciamento de memória, maior a chance de sucesso daquele dispositivo.
É o mesmo para o seu app.
Se ele não gerencia a memória tão bem, o usuário pode enfrentar problemas de performance, o que o levará a desistir de usar o seu app e, mantendo-se esse cenário, ao fracasso do projeto.
Para resolver isso, existe a injeção de dependências, que permite criar, fornecer e descartar instâncias de forma conveniente.
No mundo Flutter, a solução mais conhecida é o pacote GetIt.
Para utilizá-lo, basta seguir sua documentação e testar seu app-exemplo.
Gerência de estados com Bloc
Gerência de estados é, de longe, o tema mais controverso dentro do mundo Flutter.
Muito se discute sobre qual solução é melhor.
Neste artigo, serão apresentados os meios para discutir e por que, no geral, a principal solução é o pacote flutter_bloc.
O conceito é simples. A gerência de estados define os meios para acessar e alterar estados.
Mas e na prática?
Na prática, tem-se dois tipos de interesse ao acessar estados:
- Apresentar uma tela;
- Executar uma função.
Exemplos:
- Uma tela: Tela de carregamento, de exceção, de sucesso etc;
- Uma função: Apresentar uma Snack Bar ou uma Dialog; sair da tela etc.
Nesse sentido, para apresentar telas, você pode trabalhar com o widget BlocBuilder; já para executar funções, BlocListener; caso precise de ambos ao mesmo tempo, BlocConsumer.
Mas e o Change Notifier?
Em suma, o pacote flutter_bloc traz uma série de “atalhos” para a gerência de estados.
Você perceberá isso ao comparar, por exemplo, o BlocListener do Bloc com o método addListener do ChangeNotifier.