Como utilizar o Provider e o Change Notifier | Curso de Flutter

Поділитися
Вставка
  • Опубліковано 9 лис 2024

КОМЕНТАРІ • 78

  • @lucasmatheuscorrealopes4361
    @lucasmatheuscorrealopes4361 Рік тому +9

    Após 1 ano desse vídeo, eu, iniciante em Flutter, tive a imensa facilidade em utilizar o ChangeNotifier a partir dessa explicação! Uma excelente didática. Obrigado, professor!

  • @wiilamaral
    @wiilamaral 3 роки тому +18

    De todos os conteúdos sobre Flutter que procurei as suas aulas são as melhores!! Parabéns professor, está me ajudando bastante e sua didática é muito boa. Com certeza irei indicar aos amigos seus vídeos!! Abraço.

    • @drantunes
      @drantunes  3 роки тому +1

      Valeu William! Feedback é importante para ir melhorando! Grande abraço.

    • @SCORPIONPR
      @SCORPIONPR 2 роки тому

      Concordo demais

  • @williamleal1294
    @williamleal1294 6 місяців тому

    Se uma pessoa iniciante, tem o mínimo de conhecimento de programação, tipagem, poo e logica, essa playlist é um gps para aprender a essência do flutter e já criar sua primeira aplicação, fico grato por disponibilizar esse conteúdo vc está sendo de grande valia para os iniciantes em flutter igual a mim, obrigado

    • @drantunes
      @drantunes  6 місяців тому

      Muito obrigado!!!

  • @alexbleiva
    @alexbleiva Рік тому

    Muito obrigado pela excelente e simples explicação, professor... ganhaste uma maçã! 🍎

  • @cianopaulo
    @cianopaulo Рік тому

    Ótima explicação, consegui entender a lógica para criar um repositório de captura de imagens para utilizar em outras telas a partir deste vídeo.

  • @brmartins
    @brmartins 2 роки тому

    Cara to aprendendo flutter.... como n tenho grana pra cusos isso ta me ajudando muito HAAAA VLWWWW

  • @SCORPIONPR
    @SCORPIONPR 2 роки тому

    Cara, já vi tuas aulas de Bloc e agora essa, mds, vc é top

  • @rafaeldiasdeveloper3697
    @rafaeldiasdeveloper3697 10 місяців тому

    Rapaz, suas aulas são demais. É muito pratica e dinamica. Estou gostando muito. Doido para ver as partes de consumo de API e capitura de dados....

    • @drantunes
      @drantunes  10 місяців тому

      Vamos ate recursos nativos, continua que a playlist é introdutória mas ajuda bastante nessa visão geral ;)

    • @rafaeldiasdeveloper3697
      @rafaeldiasdeveloper3697 10 місяців тому

      Com certeza. Hoje estou na aula 21... Estou seguindo sem pressa... Muito top.

  • @josevitorsousa8245
    @josevitorsousa8245 Рік тому

    Muito boas as suas aulas, está de parabéns, explica muito bem!

  • @alef_bsp
    @alef_bsp 2 роки тому

    obrigado professor, eu estava travado em um projetinho e seu vídeo me ajudou a resolver o problema! obrigado e um abraço :)

  • @notionless2
    @notionless2 2 роки тому +1

    Sensacional Diego. Parabens pelo trabalho. Estou acompanhando sua playlist completa e está me ajudando muito nos estudos. Abraços!!

    • @drantunes
      @drantunes  2 роки тому

      Muito obrigado Ricardo! Vai ser sucesso, essa playlist chega até recursos nativos e animações!!!!! 🚀

  • @alceuwanderleivalimdelimaj4200
    @alceuwanderleivalimdelimaj4200 2 роки тому

    Obrigado professor, você é muito claro, didático e direto. Está me ajudando muito

    • @drantunes
      @drantunes  2 роки тому

      Obrigado! Bons estudos!!!

  • @codigonaveia4213
    @codigonaveia4213 2 роки тому

    Muito top suas aulas. Parabéns!

  • @saulomiqueias4267
    @saulomiqueias4267 3 роки тому

    Testei o riverpod e gostei, um "provider evoluido", como o criador chama, com o estado imutável.

    • @drantunes
      @drantunes  3 роки тому +1

      Parece bem promissor o Riverpod, tomara que ganhe mercado no próximo ano !!!!

  • @guiaflutterflow
    @guiaflutterflow Рік тому

    Que Aula Incrível

  • @wesleymagno5344
    @wesleymagno5344 Рік тому

    Boa noite Prof.
    Os conteúdos os vídeos são ótimos. A didática é ótima. Indique para alguns amigos, e eles também acharam bacana os vídeos.
    Uma dúvida tem como definir uma color em um lado da borda de um widget? A ideia seria definir a cor da borda da esquerda do Card (outro widget)

    • @drantunes
      @drantunes  Рік тому +1

      Depende de como deseja implementar isso. Mas pode usar uma row com um container de width fixo com a cor que deseja e basta fazer o alinhamento correto da row. Outra forma seria encapsular a widget que deseja com um Container, dentro dele você pode fazer um padding somente na esquerda (assim criaria-se uma borda). Outra forma seria especificar a borda do próprio container com a propriedade boxDecoration

    • @wesleymagno5344
      @wesleymagno5344 Рік тому

      @@drantunes A minha ideia é no ListView com ListTile onde teria um widget com a borda esquerda uma cor. Assim conforme o tipo de um campo. A borda da esquerda teria uma cor diferente ou não teria cor nem uma. Obrigado pela dica, se pensar em algo diferente.

  • @eduardodantas6800
    @eduardodantas6800 3 роки тому

    Show... Seria legal também um exemplo com array de povider

  • @charless.9139
    @charless.9139 Рік тому

    show

  • @eduardomonegate2029
    @eduardomonegate2029 3 роки тому +2

    Professor, poderia fazer um vídeo sobre injeção de dependências para flutter ? Obrigado por seus conteúdos.

    • @drantunes
      @drantunes  3 роки тому +1

      Fala Eduardo, visão geral ou algum conteúdo específico?

    • @fernando-felicio
      @fernando-felicio 3 роки тому

      Boa.
      Eu ia fazer essa mesma pergunta.
      Kkkkkkkk
      Teria como o senhor ensinar justamente com o provider?
      Assisti alguns vídeos e conversei com o Renato Motta(ele tem um canal no Yt e também trabalha no Nubank), e ele me informou que só usa o que o senhor ensinou no vídeo.
      Na empresa onde trabalho usamos o get_it, mas eu gostaria de aprender utilizando o provider, já que ele é o recomendado pelo Google.
      Muito obrigado pela aula professor.
      Que Deus sempre continue te iluminando e que Ele te dê em dobro toda a ajuda que o senhor nos oferece.

  • @mateus_lucas.
    @mateus_lucas. Рік тому

    Cara que vídeo perfeito, Muito bom Diego, Poderia fazer um com o multiporvider?

    • @drantunes
      @drantunes  Рік тому

      Acredito que uso nessa série;)

  • @juliocmendonca
    @juliocmendonca 2 роки тому

    Excelente Diego, como você faz ficar mais fácil o desenvolvimento, ótima didática, parabéns. Achei muito mais fácil que o GetX, mas fica uma dúvida, existe algum cenário que é melhor o GetX ao Provider ou os dois trazem o mesmo resultado?

    • @drantunes
      @drantunes  2 роки тому +1

      Muito obrigado 😃
      Recomendo sempre usar os padrões de mercado e o Provider é um deles.
      A única "desvantagem" do Provider é se você quiser recuperar uma instância em uma classe, onde não existe o context, ou seja, se você trabalhar com service locator (como o Get.find). Se você trabalhar corretamente com Injeção de Dependência via Provider, não será necessário o padrão Service Locator. Um substituto para isso seria o GetIt. Se você usa o GetX por conta da reatividade, você pode substituir eles por valuenotifiers ou streams do próprio Dart e criar seus próprios Obx e .obs (alias, pretendo fazer um vídeo mostrando como construir essa reatividade transparente).
      Espero ter ajudado ;)

    • @juliocmendonca
      @juliocmendonca 2 роки тому

      @@drantunes Ajudou demais, e seria um ótimo vídeo... Vlw e sucesso

  • @danilocarneirochristensen5892
    @danilocarneirochristensen5892 2 роки тому

    Obrigado pelo vídeo, me ajudou muito. Só tenho uma dúvida, como q eu posso usar o provider com a dependência do mysql1? Tem algum exemplo ou algum livro que posso estar entendendo isso.

    • @drantunes
      @drantunes  2 роки тому

      Não recomendo esse caso de uso, a menos que esteja no backend, pois neste caso suas credenciais de acesso podem ficar expostas no front. Sugiro usar uma API como intermediário entre app e mysql

  • @cooltutorials6546
    @cooltutorials6546 Рік тому

    Excelente video Prof. Uma duvida: Como eu faço para acessar e disparar um metodo do Provider a partir de um metodo de uma classe Helper por exemplo que nao tem context ?

    • @drantunes
      @drantunes  Рік тому

      Você precisa injetar ( passar como parâmetro no construtor) esse objeto

    • @cooltutorials6546
      @cooltutorials6546 Рік тому

      @@drantunes nao entendi, injetar o que no construtor de quem?

  • @silaspaesnomarketing
    @silaspaesnomarketing 2 роки тому

    Uma dúvida ... to desenvolvendo um app onde o usuario ao se cadastrar no auth do firebase... ele abre uma collection com suas informações no firestore.... qual seria a melhor forma de jogar a uid gerada no auth na coleção e posteriormente puxada as informações desse usuario em em outras telas do app. Parabéns pelo vídeo!!!!

    • @drantunes
      @drantunes  Рік тому +1

      Valeu!!! Você pode fazer de várias formas: 1) após o registro mesmo, via Flutter, você cria uma classe para fazer isso; 2) você pode criar uma callable function que executa no servidor essa lógica (um pouco mais lento); 3) você cria uma cloud function que responde ao evento de registro do usuário (assíncrono, pode ter problema se já precisa do dado logo após o registro).

  • @leandropilz7996
    @leandropilz7996 5 місяців тому

    Uma duvida, uso Go Router, teria como ter uma classe que retorna Widget e nela ter um método static, onde teria o meu ChangeNotifierProvider, nele instanciar o provider no create e dai a page abaixo, assim quando esta rota não mais for necessário o changeNotfiierProvider faz o seu dispose automático certo? Assim posso ter para minha splash page, e outras pages algo gerenciavel na chamada e não na árvore da main

    • @drantunes
      @drantunes  5 місяців тому

      Sim, pode trabalhar em um conceito de módulo, tendo um provider carregando as dependências e o child carrega a página. Ao invés de passar a página para o GoRouter, passa o o módulo.

  • @kevenescovedo6585
    @kevenescovedo6585 2 роки тому

    Muito bom o video, professor em relação a perfomace eu posso criar um provider para o dabatase(firestore) e um para um auth service , tipo manter uma classe sibgleton e só uma instancia de database e auth service isso é uma boa pratica ?, tipo isso consome memoria ?

    • @drantunes
      @drantunes  2 роки тому +1

      Duas classes não irão consumir tanta memória, não se preocupe 👍

  • @GuilhermeCarvalhoCarneiro
    @GuilhermeCarvalhoCarneiro 2 роки тому

    Professor, o senhor indica o Provider para projetos com muitas telas e objetos que devem ser observáveis?

    • @drantunes
      @drantunes  2 роки тому +1

      O que seriam muitas telas? Indico sim, o Provider é uma abordagem sólida, desde que usado de forma correta 👍

  • @tarcisiodeoliveira1140
    @tarcisiodeoliveira1140 Рік тому

    Te dar uma ideia, beleza? Existem vários tipos de inteligência, mas a maioria se beneficia muito de um esboço. É a ideia do "Quer que eu desenhe?" sim! De preferência no início do vídeo, mostrando por alto quais classes fazem o que e com quem. Dai em diante, entendido o macro, a pessoa se ocupa apenas de compreender a implementação da ideia e fica tudo encaixado na mente. Curti o vídeo, só dando as ideia.

    • @drantunes
      @drantunes  Рік тому +1

      Sim, existem várias metodologias de ensino... Essa playlist tentei ser mais prático quanto possível, que é a preferência da maioria por aqui. No meu curso presencial acabo usando outras abordagens também para complementar. Obrigado pela sugestão

  • @edson.rbispo
    @edson.rbispo Рік тому

    Poderia explicar melhor pq utilizou UnmodifiableListView e não o list, uma outra duvida que vive é, a variavel favoritas tem que esta dentro do metodo build, ou posso criar fora. Agradeço

    • @drantunes
      @drantunes  Рік тому

      UnmodifiableListView não permite você modificar a lista manualmente, então todo mundo que usar o get da lista só consegue ler os dados e não consegue manipular, para isso usamos algum método da classe (que tem acesso a versão privada da lista). Pode declarar fora do build sim.

    • @edson.rbispo
      @edson.rbispo Рік тому

      @@drantunes Entendi... Agradeço 🙏🏼 e sucesso.

  • @jonnysJF
    @jonnysJF 2 роки тому

    Professor, caso eu use o SharePreferences, o ideal seria provider ou apenas um setstate?

    • @drantunes
      @drantunes  2 роки тому +1

      O ideal é separar as responsabilidades, logo, o SharedPreferences deve ser separado da aplicação. O Provider vai te ajudar a gerenciar e recuperar a instância onde você precisar. Aí a reatividade que você irá usar e como irá utilizar vai depender de você e do seu caso de uso.

  • @d-apps2699
    @d-apps2699 Рік тому

    Quando eu tenho diversas telas e subtelas, onde cada uma delas usam dependencias diferentes, não tem como eu declarar todas dentro do MultiProvider, até porque tem dependencia que eu quero que instancie somente no momento que eu vou usar, a lib GetX trabalha bem com isso usando Bindings, como é possível fazer isso no provider? Porque se eu declarar tudo no main, vai criar instância de todas as dependencias de uma só vez, certo?

    • @drantunes
      @drantunes  Рік тому

      Você pode usar a mesma estratégia, pode criar uma classe de rota onde instancia o provider para a pagina qie deseja (fazendo o wrap no metodo build) - ou faz o wrap com provider em cada rota 👍

    • @drantunes
      @drantunes  Рік тому

      No main geralmente declaramos apenas os estados globais, exemplo serviço de autenticação

    • @d-apps2699
      @d-apps2699 Рік тому

      @@drantunes Entendi, obrigado professor. Não sei se você ja testou, mas no GetX fica bem clean, cria-se uma classe separada que extende Bindings e registra as dependencias, fica lindão e bem organizado, eu particarmente não gosto muito de recuperar dependencias dentro do build, no GetX da pra recuperar fora ou dentro.

  • @italoferreira5500
    @italoferreira5500 Рік тому +1

    o meu da erro 'Field 'favoritas' has not been initialized.)' como resolvo?

  • @matheusmartinez5455
    @matheusmartinez5455 3 роки тому

    isso substitui as rotas nomeadas?

    • @drantunes
      @drantunes  3 роки тому

      As rotas nomeadas facilitam a navegação apenas (para identificar cada rota)

  • @claudneysartisessa
    @claudneysartisessa 2 роки тому

    Como que faz com.o changeNotifier para trabalhar com objetos personalizados? Não consigo fazer ele refletir quando altero uma propriedade do objeto....

    • @drantunes
      @drantunes  2 роки тому

      Qual o tipo de objeto? Como você está fazendo essa operação…

  • @jarodcavalcante
    @jarodcavalcante 3 роки тому +1

    Eu to cm um problema pq meu list não re-renderiza quando atualiza os dados, parece que ele não ta atualizando os dados :(

    • @drantunes
      @drantunes  3 роки тому

      Você está usando um ListView.builder e acessando os dados via Provider?

    • @jarodcavalcante
      @jarodcavalcante 3 роки тому

      @@drantunes eu consegui, muito obrigado

  • @ChuckyMasterDF
    @ChuckyMasterDF 3 роки тому

    Professor, estou tentando implementar no botão FloatingButton de favoritos, pra quando clicar, além de add a moeda, ser direcionado para a tela de favoritos, mas não tá dando certo... tava tentando reaproveitar a função abrirDetalhes(), do jeito abaixo:
    onPressed: () {
    favoritas.saveAll(selecionadas);
    limparSelecionadas();
    abrirDetalhes(tabela[moeda]);
    },
    Mas dá esse erro: Undefined name 'moeda' >> como faço pra resgatar esse valor?

    • @drantunes
      @drantunes  3 роки тому

      Então, o problema é que a variável tabela está definida no escopo do body, e o FloatingActionButton está em outro escopo. Também, como é possível selecionar mais de uma moeda, daria para navegar somente para uma delas. Uma opção seria fazer abrirDetalhes(selecionadas.first), mas como falei não tem como abrir todas as selecionadas

  • @BrunoHenrique-qv8hc
    @BrunoHenrique-qv8hc Рік тому

    Qual esse tema do vs code?