Carlos Batista 2 years ago
carlosbatista.dev

Gerenciamento de Estado no Flutter com GetX

Um gerenciador de estado simples e eficiente!

Quando estamos aprendendo Flutter, chega um momento que nos deparamos com esse conceito "Gerenciamento de Estado", farei um pequeno resumo. :)


Gerenciamento de Estado

É o ato de mudar e tornar essa mudança visível!


Simples assim!

Vamos dar um exemplo para facilitar ainda mais:


Imagine que você tem um aplicativo de tarefas aberto em seu celular, na tela inicial mostra as tarefas que você cadastrou e também tem um botão para adicionar uma nova Tarefa, ao clicar no botão aparece um popup pedindo para você informar o título da sua tarefa e detalhes, após você informar esses dados e clicar em "Salvar", o popup fecha e a tela home mostra a sua tarefa criada recentemente.


Bom... assim que o botão "Salvar" é pressionado, ele executa algumas ações e também faz a atualização do estado.



O estado antigo era:

Uma tela com algumas tarefas criadas.


O novo estado passou a ser:

Uma tela com algumas tarefas criadas + a nova tarefa que acabou de ser criada.



Enfim... Tudo que você consegue ver mudando em seu app, como a cor de um botão, uma imagem, um texto, e etc...

Tudo isso é possível por causa da atualização do estado e existem diversas formas de se fazer essa atualização.


E é por ai que entra o "Gerenciamento de Estado"

Gerenciado o Estado com o setState

Eu tenho certeza que você já viu esse tal de "setState", se você encontrou esse post por acaso, saiba que esse assunto é um pouco avançado, então é normal você ficar perdido, mas mesmo assim vale a leitura para se familiarizar com algumas coisas.



Tem quem diga que usar o StatefulWidget é ruim, mas na verdade é uma mentira!

Ruim é quem não sabe utilizar uma ferramenta corretamente, você pode ter várias ferramentas.



Em muitos casos o setState serve perfeitamente, porém as vezes precisamos de algo que torne o gerenciamento de estado mais simples, mais robusto, as vezes queremos que o nosso estado da tela A altere na tela B, até mesmo para extrair de uma forma mais eficiente as responsabilidades pode ser um pouco mais chatinho, já que você precisa chamar o setState dentro do escopo da classe ( Existe formas de passar o contexto em uma função, porém não bom fazer isso ).



Mas tudo já foi pensado, e hoje temos uma gama de ferramentas para fazer gerenciamento de estado, entre eles estão alguns bem conhecidos como: ChangeNotifier, Mobx e GetX e hoje falaremos do GetX!

Gerenciador de Estado GetX

Um ponto importante a se observar é que o GetX é uma caixa com várias soluções que não são obrigatórias!

Digo isto porque tem alguns Devs que dizem que o GetX é "acoplado", porém a própria documentação diz ao contrário.


Veja:

GetX não está inchado. Possui uma infinidade de recursos que permitem iniciar a programação sem se preocupar com nada, mas cada um desses recursos está em contêineres separados e só são iniciados após o uso. Se você usar apenas o Gerenciamento de estado, somente o Gerenciamento de estado será compilado. Se você usar apenas rotas, nada do gerenciamento de estado será compilado.


Não tenho dificuldade nenhuma em entender isso!

No nosso caso, iremos utilizar apenas o Gerenciamento de Estado do GetX ( Podemos falar sobre as outras soluções nos próximos artigos ).



O GetX como gerenciador de estado trás diversas possibilidades, podemos fazer uma gerenciamento reativo utilizando o Obx ou GetX ou um gerenciamento mais simples com o GetBuilder.


No reativo é importante mostrar:


A programação reativa pode alienar muitas pessoas porque é considerada complicada. GetX transforma programação reativa em algo bem simples:

Você não precisará criar StreamControllers.
Você não precisará criar um StreamBuilder para cada variável
Você não precisará criar uma classe para cada estado.
Você não precisará criar um get para um valor inicial.
Você não precisará usar geradores de código

A programação reativa com Get é tão fácil quanto usar setState.


Note o quanto o GetX facilita as coisas, isso pode ser tornar algo ruim, mas falarei sobre mais para frente.

App em Flutter com o Gerenciador de Estado GetX


1
471

Canais que falam sobre Flutter que eu recomendo

1646920549.png
Carlos Batista
1 year ago

Links úteis para designers, animações, imagens.

Olá a todos, nesse post quero deixar alguns links úteis para quem busca inspirações de des...

1647357567.jpg
Ailton D. Santos
2 years ago
Melhores sites para você aprender programação

Melhores sites para você aprender programação

1724944350.webp
Deyv
2 years ago
Como escolher uma empresa de desenvolvimento de apps?

Como escolher uma empresa de desenvolvimento de apps?

1724944350.webp
Deyv
2 years ago
Devo manter o Dart/Flutter e os packages sempre atualizados ?

Devo manter o Dart/Flutter e os packages sempre atualizados ?

1646920549.png
Carlos Batista
2 years ago