Essa deveria ser a aula 2 de qualquer curso de Flutter. Pessoal explica variável, função, mas quando o aluno vai fazer o projeto nada funciona. Ai tu descobre que tem que mexer o "estado" das coisas. Parabéns professor!
so um adendo, o widget é recriado entretanto o render tree é reaproveitado se não houver alteração, entao não há desperdício de recurso e usar o setState é safe (olhando especificamente para esse ponto)
@@empreendimentosagroindustr7435 O problema que muitas das vezes você possui uma regra de negocio para realizar a alteração do estado e nao fica legal colocar essa regra dentro do widget, dai fica melhor você criar uma controller por exemplo, dai que entra a escolha de um gerenciador de estado
So tem motivo de usar streams ou outras arquiteturas para dados complexos, assyncronos. Pra gerenciar coisa besta de UI como estado de formularios o setState do Flutter é a mellhor opcao
Ola, neste caso vc usou um setState tipo global...e se fosse colocar o setState somente na opcao tipo ao clicar da um setState na funcao de soma ??? nao ficaria certo
@@drantunes Então na minha opnião nao precisa usar estes componente de TERCEIROS...podemos usar somentes os tipos NATIVOS do FLUTTER tipo initState, setState etc. porque a questão da reatividade ta na mão do programador e nao em usar plugin de outros...pra fazer o seu serviço funcionar com reativade ou seja a atualizacao da visualizaçao do que foi alterado.
Você pode usar uma propriedade bool para controlar a exibição do container e no initState você pode chamar um método que contém um Future.delayed com Duration de 20s, que irá mudar o bool para true ;)
Muito interessante essa conceito. Eu sou iniciante e tenho uma duvida, como eu faria para utilizar apenas uma instancia dessa classe _Counter em múltiplos widgets espalhados por diversas telas de forma nativa sem o uso de packages externos como Provider?
O mais simples seria criar uma constante no main.dart e passar esta instância como dependência via construtor. Também é possível fazer o import, como mostrei no vídeo, pois com a constante não será criada uma nova instância (por isso protegi a classe com o _ para ficar com escopo privado). Também é possível com Design Patterns, como o Singleton. E a forma mais avançada seria criar o próprio sistema de gerenciamento ... 😀
@@drantunes vlw professor, eu acabei vendo um exemplo usando singleton com valuenotifier e achei muito interessante essa gerência de estado mais simples, extremamente útil para coisas menores.
Olá Ravel, beleza? Você pode começar entendendo o que é o estado, os estados locais x compartilhados, setState, ValueNotifier, ChangeNotifier, BLoC, MobX e para injeção de dependências Provider e GetIt (acredito que seja uma trilha fundamental) 👍
ValueNotifier é nativo, assim como o ChangeNotifier e Inherited Widget (pode usar sem problemas). A melhor forma seria com Hooks, mas há uma issue desde 2018 e alguns engenheiros estão lutando para aceitar a proposta :\
Bom dia professor, fiz uma calculadora de imc e gostaria que o icone em uma coluna fosse mudado de acordo com o resultado do calculo do imc que sera feito ao clicar um botão. Tentei usando o conteudo deste video mas não deu certo.
Olá Victor, para alterar o ícone você poderia usar uma propriedade ValueNotifier para o IMC. Então, no child referente ao Icon você adiciona um ValueListenableBuilder para essa propriedade. Dentro do método builder você pode usar IF e ELSE IFs para verificar o IMC e retornar o Icon que deseja!!! Abraço!
Essa deveria ser a aula 2 de qualquer curso de Flutter.
Pessoal explica variável, função, mas quando o aluno vai fazer o projeto nada funciona.
Ai tu descobre que tem que mexer o "estado" das coisas. Parabéns professor!
Obrigado Felipe 👍🚀
so um adendo, o widget é recriado entretanto o render tree é reaproveitado se não houver alteração, entao não há desperdício de recurso e usar o setState é safe (olhando especificamente para esse ponto)
Então, por que não usar o "setstate" se não há problema de recursos?
@@empreendimentosagroindustr7435 questão de organização de código e separação de responsabilidade
@@empreendimentosagroindustr7435 O problema que muitas das vezes você possui uma regra de negocio para realizar a alteração do estado e nao fica legal colocar essa regra dentro do widget, dai fica melhor você criar uma controller por exemplo, dai que entra a escolha de um gerenciador de estado
So tem motivo de usar streams ou outras arquiteturas para dados complexos, assyncronos. Pra gerenciar coisa besta de UI como estado de formularios o setState do Flutter é a mellhor opcao
Show de aula como sempre 🎉
Ele recria toda a tela mesmo sem ter alteração. Entendi professor.
show, cara. muito obrigado pelo o conteudo.
Excelente!! Muito obrigado, professor. É muito bom ter essas dicas para melhorar cada vez mais.
Até parece que o Professor fica ouvindo as minhas necessidades. Obrigado🔥🔥
😎 Vidente kkkk
@@drantunes kkkkkkkk
DiegoAntunesListeners
Parabens Teacher!
Mais uma Ótima explicação.
Parabéns.
Obrigado!!
Esse professor é show!
Valeu Bryan!!!
Gratidão professor!
Ótimas aulas!
👊🏽😎
Obrigado Eduardo!!!!
muito bom como sempre,
Quem passa o context pra essa função (context, int count, _)? O valueListenableBuilder?
👍
Ola, neste caso vc usou um setState tipo global...e se fosse colocar o setState somente na opcao tipo ao clicar da um setState na funcao de soma ??? nao ficaria certo
Pode colocar o setState como toggle local sim
@@drantunes Então na minha opnião nao precisa usar estes componente de TERCEIROS...podemos usar somentes os tipos NATIVOS do FLUTTER tipo initState, setState etc. porque a questão da reatividade ta na mão do programador e nao em usar plugin de outros...pra fazer o seu serviço funcionar com reativade ou seja a atualizacao da visualizaçao do que foi alterado.
Professor pode me ajudar gostaria de saber como faço para na tela surgir um container mas ele vai surgir após 20 segundos.
Você pode usar uma propriedade bool para controlar a exibição do container e no initState você pode chamar um método que contém um Future.delayed com Duration de 20s, que irá mudar o bool para true ;)
@@drantunes obg pela ajuda 👍vou colocar em prática.
Caraca, me deu um rumo muito bom! Terei de refazer boa parte dos meus códigos, haha!
É sempre bom uma inquietação dessas 😀
Se eu fizer um widget stateful e colocar esse widget dentro de um widgetStateless fazer o update parcial da tela?
Se entendi bem a pergunta, sim. Fará o update apenas da widget incluida
Muito interessante essa conceito.
Eu sou iniciante e tenho uma duvida, como eu faria para utilizar apenas uma instancia dessa classe _Counter em múltiplos widgets espalhados por diversas telas de forma nativa sem o uso de packages externos como Provider?
O mais simples seria criar uma constante no main.dart e passar esta instância como dependência via construtor. Também é possível fazer o import, como mostrei no vídeo, pois com a constante não será criada uma nova instância (por isso protegi a classe com o _ para ficar com escopo privado). Também é possível com Design Patterns, como o Singleton. E a forma mais avançada seria criar o próprio sistema de gerenciamento ... 😀
@@drantunes vlw professor, eu acabei vendo um exemplo usando singleton com valuenotifier e achei muito interessante essa gerência de estado mais simples, extremamente útil para coisas menores.
Na sua opinião, qual seria a ordem correta para aprender gerenciamento de estado ? Por qual começar?
Olá Ravel, beleza? Você pode começar entendendo o que é o estado, os estados locais x compartilhados, setState, ValueNotifier, ChangeNotifier, BLoC, MobX e para injeção de dependências Provider e GetIt (acredito que seja uma trilha fundamental) 👍
@@drantunes obrigado!
Muito bacana! :)
Muito obrigado
Muuuitoo bom !
Aproveitando a oportunidade. Existe algum curso seu do básico ao avançado.
Você é o melhor professor de todos.
muito bom
Eu não entendo por que o Google fez o setState assim. Não dava pra fazer algo mais perfomatico nativo do flutter?
Ah, então o valueNotifier é nativo do flutter?
ValueNotifier é nativo, assim como o ChangeNotifier e Inherited Widget (pode usar sem problemas).
A melhor forma seria com Hooks, mas há uma issue desde 2018 e alguns engenheiros estão lutando para aceitar a proposta :\
Bom dia professor, fiz uma calculadora de imc e gostaria que o icone em uma coluna fosse mudado de acordo com o resultado do calculo do imc que sera feito ao clicar um botão. Tentei usando o conteudo deste video mas não deu certo.
Olá Victor, para alterar o ícone você poderia usar uma propriedade ValueNotifier para o IMC. Então, no child referente ao Icon você adiciona um ValueListenableBuilder para essa propriedade. Dentro do método builder você pode usar IF e ELSE IFs para verificar o IMC e retornar o Icon que deseja!!! Abraço!
@@drantunes Muito obrigado professor!!! ♥
@@victortostaddos
Top
Valeu!!!!
Melhor usar isolates