Executando verificação de segurança...
1

Flutter - Qual gerenciador de estado escolher ?

A resposta é óbvia, depende!

Mas antes de qualquer coisa, é importante saber que existe pessoas infectadas que defendem uma ferramenta como se sua vida dependece disso, então muito provavelmente você é ou encontrará uma pessoa assim, e tome cuidado, ela pode ter argumentos bem convicentes inicialmente e só depois você notará que está dependente de algo que não é a melhor solução para todos os problemas.

Agora podemos prosseguir, mas antes se você é iniciante, está entendendo como funciona o Flutter, então esse post não é para você, no seu caso eu recomendo fortemente que brinque bastante com o setState do Flutter, brinque com Streams também e ChangeNotifier.

Mas supondo que você já tem uma noção, provavelmente você já entendeu que existe situações que poderiam ser simplificadas, e procurou um gerenciador de estado, com certeza você se deparou com diversas opções como Bloc, Mobx, GetX, Provider, Riverpod, Redux e por ai vai...

Qual seria a melhor opção ?

Nenhum, ou qualquer um... é que depende se você você está trabalhando sozinho ou não, do que adianta você escolher o Mobx se sua equipe manda bem com GetX ?

A não ser que você não seja um problema toda a equipe ter que aprender o Mobx e você ter que dar um tempo para isso e saber que o tempo de desenvolvimento será um pouco maior.

O mesmo vale para você que quer entrar uma vaga, se ela pede conhecimento em Bloc, porque você vai focar em GetX ?

Se o projeto é simples, o que impede de usar o setState do Flutter mesmo ?

Você entendeu que existe diversas variáveis que precisam ser analisadas ?

O que devo fazer em então ?

Bom, aprenda os mais conhecidos... experimente o Bloc, o Mobx, o Getx e etc...
Pesquise sobre cada um, você não precisa dominar, mas enteder como funciona, conforme você for ganhando experciência, você conseguirá ter uma percepção melhor ao escolher um gerenciador de estado.


Eu particularmente gosto muito do GetX, e eu ainda não sofri nenhum problema com ele...
E você? Qual gerenciador de estado você utilizar com mais frequência?

Carregando publicação patrocinada...
1

Pra mim setState e streamBuilder+RxDart resolvem quase todos os problemas. Em raras ocasiões uso get_it+event_bus para alguma informação global.
Acho que usar ferramentas mais simples é melhor do que usar pacotes como o getx que possuem milhares de funções e possibilidades. Lembro de passar mais de uma semana estudando e querendo aprender tudo sobre o getx, vi que dava pra fazer muita coisa com ele, só que a maioria das coisas nunca precisei usar e o que precisei deu pra fazer com o básico do dart. Desisti do getx depois de aparecer alguns erros e não encontrar resposta de como arrumar. Pelo que vejo, quanto mais básico o código, mais fácil de conseguir resolver os problemas.
No final tudo se resume a rebuilda algum widget após alguma mudança, pra mim esses megas pacote de gerenciamento de estado podem complica mais do que ajudar, alguns parecem um framework dentro de outro framework.

1

Então, umas das coisas que não concordo do GetX também é que tudo está em um lugar só, ai realmente confude.

Porém como a pprópria documentação diz:

GetX não está inchado. Ele possui uma infinidade de recursos que permitem começar a programar sem se preocupar com nada, mas cada um desses recursos fica em containers separados e só são iniciados após o uso. Se você usar apenas o gerenciamento de estado, apenas o gerenciamento de estado será compilado. Se você usar apenas rotas, nada do gerenciamento de estado será compilado.

O ponto é que você tem que observar as importações, no caso se você for só utilizar o gerenciador de estados, precisa importar os arquivos apenas para isso para que na hora da compilação não venha todo o restante...

Nós sempre falamos isso na nossa empresa, o GetX não é tão 'acoplado' como muitos dizem, porém realmente é necessário estudar ele com mais cuidado, para não aprender de forma errada.

1
1

Esse é um ponto chave, se está funcionando para nós então diminui as chances de mudança não mesmo ? Eu não tenho muita experiência com o Provider mas já dei uma olhada nele e é interessante, ele é bem usado também.