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

Gerenciamento de estado em Flutter

Comecei um trabalho como junior em uma software house e estou como dev mobile, tenho conhecimentos em flutter e queria entender mais a fundo os gerenciamentos de estado, como Provider, MobX e GetX, atualmente estou utilizando o ValueNotifier que é o gerenciador nativo do flutter, poderiam me dar uma explicação dos outros gerenciadores?

Carregando publicação patrocinada...
2

Gerenciamento de Estado diz como os dados do estado serão armazenados e distribuidos pela aplicação, então teríamos Mobx e Bloc nessas situações. Injeção de Depedência poderíamos encontrar Provider, Get it, etc... então para iniciar precisaria entender qual das duas situações você necessitando aprender e entrar em ação. Um Canal excelente que aborda mto bem cada gerenciador de Estado como Bloc e Mobx é o da Flutterando com lives e videos mto bons de flutter

1

Assim como explicado mto bem no comentário do @KevenMelo, gerenciamento de estado é o processo de guardar/atualizar/propagar informações através do sistema como um todo.
Como está começando agora e, caso seu projeto não demande algo muito específico, te indico seguir usando o ValueNotifier pq não adianta querer aprender tudo se o básico te resolve a vida.

Pra entender um pouco mais sobre Flutter como um todo, eu te indico acompanhar os conteúdos da Flutterando.
Esses dois vídeos recentes deles dão bastante dicas valiosas pra quem está começando agora:

  • Gerenciamento de estados - vídeo
  • Início de um app com flutter em 2024 - vídeo

Os demais vídeos e conteúdos deles também são bem interessantes!


Espero ter ajudado e fico à disposição em caso de dúvidas! :D

1

Quanto a gestão de estado tem muita coisa, mas não precisa se estressar, vai pegando e testando aos poucos pra ver o que melhor tu te adapta.
Pra mim um dos melhores videos de gestão de estado em flutter é esse daqui
Eu gosto de usar o RxNotifier ou o GetX pra programação reativa (o GetX tem tudo, mas prefiro usar só em app que tem que ter uma entrega rápida).
Acho que também vale buscar entender a diferença entre gestão de estado, programação reativa e injeção de dependência. São 3 coisas diferentes mas se conversam entre si, por isso é comum a gente ver um provider junto com bloc, mas eles não precisam estar junto.
Penso que isso seria uma base boa pra trabalhar, qualquer coisa também tem server do discord da flutterando, o pessoal ajuda bastante

1
1

O jeito mais simples na minha opinião é signals, porque são praticamente identicos a variaveis normais so que quem usa a variavel consegue se atualizar quando a variavel muda de valor.

Pacote signals:
https://pub.dev/packages/signals

Suporte a flutter do pacote signals:
https://dartsignals.dev/flutter/watch/

Eu não quero coisas overengineered, quero a solução mais simples para o problema que eu tenho, claro preparando para mudanças futuras mas não demasiado porque é um balanço entre extensibilidade, velocidade e performance.

No caso dos signals podes apenas ter uma variavel em um arquivo dart acessivel na apliação inteira que tu consegues ouvir por mudanças e a API é super simples.

1

Exato. Eu ainda não vi o signals, mas pelo que eu entendi de tu falando, creio que seja mais especifico para reatividade (a variável mudou logo a tela muda). O que acontece é de eu tenho uma variável que indica o estado da tela (carregando/vazia/com erro) e aí a tela vai reagir a essa mudança de estado.
É tipo, nem toda reatividade vai trabalhar com gerência de estado, mas toda gerência de estado vai trabalhar com reatividade.
O que acaba sendo prático nas outras bibliotecas tipo BLoC ou Redux, é que eles criam um "efeito colateral" aquela mudança de estado. Exemplo: eu tenho uma tela que entrou em estado "Com erro" depois de eu submeter um formulario, aí a tela exibe aquele erro erro mas o efeito colateral é que ela salva localmente os dados do formulário pra que eu possa enviar depois.
Normalmente eu faço os estados "na mão", mas quando vejo que precisa dessas outras operações observando o estado, aí uso um gerenciador mais completo