Gostei muito da aula, a única coisa que sempre me incomoda nas aulas do youtube é vcs falarem: "poderíamos fazer isso" e n fazer, ainda mais pra exemplos reais q acontecem muito como a questão de error e loading. Não me importo que aula mude de 35min pra 1h se eu terei todo o conhecimento necessário ali pra fazer algo bem feito.
@williamcraftart25827 ай бұрын
Entendo sua questão, porém, se faz vídeos de uma hora, muitos não irão ver, consequentemente o engajamento cai, logo o KZbin não entrega, sendo assim, desanima o criador e por isso não rola fazer
@Retr0wАй бұрын
Bom demais! Deu pra entender perfeitamente, professor! O complicado é achar vaga de Flutter pra Júnior kakakaka
@KuroManX2 жыл бұрын
Pude rever a aula com calma e essa abordagem de ensinar o Bloc sem nenhum package, só no conceito foi um divisor de águas no meu entendimento do padrão, muito obrigado professor, vou sim estudar mais sobre esse padrão que é tão requisitado pelas empresas.
@drantunes2 жыл бұрын
Obrigado pelo comentário Rafael!!!! É a melhor coisa mesmo, tentar entender como estes padrões funcionam, pois no fundo os packages geralmente são abstrações ou implementações deles 👍
@swplogic41582 жыл бұрын
Bloc é o melhor gerenciador de estado que existe até o momento!
@matheusmedeiros75332 жыл бұрын
Caraca ai sim tava precisando dessa aula na empresa que estou atualmente la é bloc e tava precisando de conteudo atualizado! vc é fera professor. Obrigado!!!
@drantunes2 жыл бұрын
Valeu Matheus!!! Sucesso na sua empresa aí!!! 🚀
@glhrme86786 ай бұрын
Sou dev IOS nativo mas também trabalhei com React e RN por 3 anos e apareceu um app para dar manutenção de um cliente em Flutter e tô dando uma estudada. Mas na boa, me parece um bagui de maluco, complexidade gigantesca pra fazer para implementar um CRUD básico. Código verboso demais, um role enorme.
@drantunes6 ай бұрын
Dependendo do projeto será verboso sim, mas pode ser mais funcional se quiser ;)
@TheMathues1232 ай бұрын
tive a mesma impressão estudando flutter, uma cacetada de código pra fazer algo básico
@ViniciusMARTINS-q8l2 ай бұрын
Muito bom, agora só preciso assistir mais 5 vezes. =)
@Alissonsk12 жыл бұрын
Muito bom, aguardando um guia de getx também, like!
@adrianomilhomens2 жыл бұрын
@Alisson Araujo, sei que já há 1 ano desde a publicação, mas é um ótimo conteúdo e ainda muito relevante: Gerenciamento de Estado no Flutter com GetX e Provider - kzbin.info/www/bejne/hYWlg2dmrsqpfZY
@JoaoPaulo-iu2xl2 жыл бұрын
Que aula! Já trabalho com flutter_bloc, mas ver implementação de bloc puro, depois só com packge bloc até chegar no bloc com flutter_bloc foi muito bom.
@drantunes2 жыл бұрын
Obrigado João!!!
@fabioftth Жыл бұрын
Enfim encontrei a aula certa... eu tinha certeza que com o Diego ficaria facil entender esse assunto!
@drantunes Жыл бұрын
Que bom que ajudou!! Grande abraço!
@antoniomarcos-rosa Жыл бұрын
Parabéns pelo conteúdo, é muito bom para a comunidade ter acesso a aulas tão objetivas.
@drantunes Жыл бұрын
Obrigado Antônio!
@Adoracion-Alabanza2 жыл бұрын
Entendi BLoC muchisimas gracias Profesor!!!
@ExpirionGamer2 жыл бұрын
Muito obrigado por essa aula, professor. O senhor é muito didático, comecei essa semana uma vaga de estagiário em desenvolvimento flutter e na empresa eles usam Bloc, e eu to bastante perdido lkkkkkk, obrigado por me ajudar a ter uma luz.
@drantunes2 жыл бұрын
Valeu 👍 vai conseguir pegar logo!!!!
@JoaoVictor-im3pe2 жыл бұрын
Geralmente n uso classe que estende um estado genérico, eu crio uma classe coloco as variáveis dentro e um método copyWith, na minha cabeça fica mais organizado e mais fácil de trabalhar.
@KuroManX2 жыл бұрын
Que coincidência boa, comecei ontem a fazer o curso de Bloc do Flutterly e esse conteúdo mais atualizado e em português vai me ajudar muito!
@KuroManX2 жыл бұрын
Aproveitando, qual o nome dessa extensão que faz você criar o arquivo direto do command palett no vscode?
@drantunes2 жыл бұрын
Valeu Rafael! Bons estudos aí 👍
@drantunes2 жыл бұрын
@@KuroManX Advanced New File 😉
@Cecilxb32 жыл бұрын
Sua didática é 10!
@drantunes2 жыл бұрын
Valeu Rafael!!!!
@SCORPIONPR2 жыл бұрын
Explicou de um jeito super simples que eu entendi, muito obrigadoo
@pedrogiamarco14492 жыл бұрын
Era tudo o que eu estava precisando cara kk, ótima aborgagem, deu pra entender tudo, muito obrigado!!
@stroherdebora2 жыл бұрын
Obrigada professor!!! Sanou diversas dúvidas!
@drantunes2 жыл бұрын
Valeu Debora 👍😎
@nordao12 жыл бұрын
Parabéns, excelente aula e didática!
@saintclairjunior2 жыл бұрын
excelente conteudo, eu tenho preguiça de gerenciamento de estado, mas a forma que explicou me fez interessar, preciso me aprimorar nesse sentido, agradeço e vou usar o conhecimento
@drantunes2 жыл бұрын
Espero ter ajudado!! Desejo sucesso !!
@MangekyouGui2 жыл бұрын
Muito bacana esse material. Parabéns! Ficou bem didático.
@drantunes2 жыл бұрын
Valeu Guilherme 👍🙏
@willianmascimiano Жыл бұрын
Top demais
@odnumiar2 жыл бұрын
Ótima abordagem e didática. Obrigado professor.
@drantunes2 жыл бұрын
Disponha!
@rdrgbaioco2 жыл бұрын
Se aprender é massa, com professor fica melhor ainda, parabéns pelo conteúdo!
@drantunes2 жыл бұрын
Muito obrigado Rodrigo! E bom estudo 🚀
@rdrgbaioco2 жыл бұрын
@@drantunes Professor, poderia trazer mais conteudos sobre banco de dados e drift, coisas tipo como exportar depois de salvo, etc
@drantunes2 жыл бұрын
@@rdrgbaioco Vou pensar aqui em algumas formas de abordar o tema!!!
@charless.91392 жыл бұрын
Obrigado pelo vídeo. Foi bem didático !
@drantunes2 жыл бұрын
Valeu Charles!!!
@if_th4nr634 Жыл бұрын
sensacional
@jacksonmonteiro4658 Жыл бұрын
Ótima a aula, estava preso tentando entender melhor sobre BloC, mas ainda ficou uma dúvida no ar para mim. Como faria caso precisasse utilizar mais de um BloC na aplicação, ou uma aplicação com múltiplas telas e diferentes BloC para cada tela trabalhando em conjunto?
@drantunes Жыл бұрын
Terá mais BLoCs e usara o provider para gerenciar as dependências
@williamcardoso1181 Жыл бұрын
Aula sensacional
@drantunes Жыл бұрын
Obrigado 😃
@lLuccas-programming Жыл бұрын
Obrigado, professor.
@rrrovalle2 жыл бұрын
Boa! É isso que tava faltando
@drantunes2 жыл бұрын
Valeu Rodrigo 👍😎
@alexbleiva8 ай бұрын
muito bom... obrigado pela excelente explicação
@danielaraujo5857 Жыл бұрын
professor, uma duvida simples, no minuto 32:34 o seu vscode fechou as chaves {} automaticamente é um plugin ou configuração do vscode?
@drantunes Жыл бұрын
Era um plugin: autoclose brackets senão me engano
@juniorgutekoski65822 жыл бұрын
muito top a aula, entendi bastante sobre o bloc. Tenho uma dúvida, sobre os estados de error e loading, o chaveamento seria na view mesmo ou posso criar tipo uma viewController para gerenciar esses estados e deixar a view somente como view sem logica.
@drantunes2 жыл бұрын
Pode fazer direto na View com o BlocBuilder 👍
@juniorgutekoski65822 жыл бұрын
@@drantunes massa, obrigado por responder:)
@naplanilha6 ай бұрын
Olá prof. Diego, tudo bem? O Signal seria um substituto adequado para o BLoC? Entendo que é importante visto organização e também por se tratar de um padrão, porém achei pouco produtivo em termos de quantidade de arquivos e classes criadas. Existe alternativa menos complexa e com potencial de benefícios similar? Ou seria esta a melhor prática de mercado?
@drantunes6 ай бұрын
Pode ser um substituto sim, mas os signals são apenas a reatividade... neste caso, você precisa estabelecer um padrão para a interface. O BLoC te dá isso ;)
@drantunes6 ай бұрын
Sobre mercado varia de cada empresa... o BLoC é mais usado muito por ser o mais antigo... Tem também o combo ChangeNotifier + Provider, MobX ou Riverpod.
@leandropilz7996 Жыл бұрын
Uma pergunta Diego, bloc é sempre vinculado a uma tela, ou seja reaproveitamento de bloc/cubit para telas distintas poderia ser uma boa prática???
@drantunes Жыл бұрын
Na prática o pessoal geralmente cria um por tela ou por feature. Mas nada impede de você ter um bloc que seja usado em várias telas. A questão principal é ter os eventos como input e um state como output.
@andreimoreira83732 жыл бұрын
Conteúdo Bacana, o que vc acha da extensão Equatable com o bloc ?
@drantunes2 жыл бұрын
Valeu! Não vejo vantagem em utilizar, acredito que faça mais sentido com Entities e Models 👍
@brisson49932 жыл бұрын
Eu to começando com o Flutter agora, e adorei essa IDE. Alguém poderia me dizer qual ele ta usando?
@drantunes2 жыл бұрын
Estou usando o VSCode mesmo!
@brisson49932 жыл бұрын
Obrigado, @@drantunes. Eu olhei alguns de seus vídeos e acabei achando um que você mostra suas extensões. Agora estou com o ambiente parecido com o seu c:
@fabiovalinhos2 жыл бұрын
Diego vc não tem o projeto inicial no git para codar acompanhando o tutorial?
@drantunes2 жыл бұрын
Projeto inicial não, mas pode pegar pelo histórico no git
@fabiovalinhos2 жыл бұрын
@@drantunes foi mais ou menos o que eu fiz. No git tem apenas 1 commit, então imaginei que vc mandou o projeto pronto. Nao tinha histórico. Para voltar ao início eu apaguei a pasta bloc/ e deu para refazer a clients_page através do vídeo. grato
@EdsonVanderlei-p7e11 ай бұрын
Olá professor, tudo joia ? Caso eu esteja usando o Bloc junto do get it, onde tenho um fluxo e desejo fazer o dispose dele no final desse fluxo, por exemplo um onboarding ou cadastro. Instanciaria como uma factory e daria o dispose do Bloc na ultima tela do fluxo ? Como funcionaria ? Outra dúvida, caso eu use um Bloc por toda aplicação, qual seria a melhor de formar de dar um dispose geral em todas blocs, ao fazer Log Out.
@drantunes11 ай бұрын
Você pode criar uma widget na raiz para cuidar dessas dependências. No dispose da widget você pode fazer o dispose dos blocs
@EdsonVanderlei-p7e11 ай бұрын
@@drantunes Professor surgiu outra dúvida, não há como ter mais de uma property em um state do bloc, por exemplo endereço, dados pessoais, onde cada um seria complementado em duas telas diferentes eu teria que criar um bloc para cada ? Ou tem alguma abordagem para manter elas juntar em "Bloc Person" com copywith ou algo semelhante
@drantunes11 ай бұрын
@@EdsonVanderlei-p7e sim, cria um bloc que contem um objeto User por exemplo como dados.
@EdsonVanderlei-p7e11 ай бұрын
@@drantunes por exemplo dentro deste user contém Address and Contact que serão pegos em pages diferentes. Como seria a abordagem ?
@ggcedicoes65998 ай бұрын
Professor, se os dados viessem de uma API externa, ao adicionar um cliente a lista seria automaticamente atualizada ou teria que fazer um novo load? E se sim qual a melhor forma de fazer isso?
@drantunes8 ай бұрын
A forma tradicional de fazer seria um novo loading, mas a melhor estratégia é usar um cache em memória dos dados (e.g. em uma lista). Assim, você mostra um loading para o cliente e após sucesso na API, você salva apenas o dado inserido na lista.
@oseiasmrib8 ай бұрын
Faz uma aula ensinando como usar Flutter_bloc para atualizar dados entre telas usando navegação com push e pop. Tipo, da tela A mando um Id para tela B, que por sua vez chama e constrói um bloc state com os dados do usuário. Sempre tenho problemas do estado vir desatualizado e as vezes repetir varias vezes.
@drantunes8 ай бұрын
Obrigado pela sugestão!
@thimor2 жыл бұрын
Olá, uma duvida, aos 12:25 você fala que o código da linha quatro pegaria usando provider. Da para pegar uma instancia do provider de fora de um widget? pq nesse caso de onde viria a instancia do BuildContext para fazer o Provider.of(context) ?
@drantunes2 жыл бұрын
Se você executar o Provider no runApp você consegue fazer isso 👍. Caso contrário, sem o context, você precisaria de alguma solução que não utiliza o BuildContext. Também, se for um app mais simples, você poderia usar o ClientRepository como um singleton
@lucas-op6bx2 жыл бұрын
Ótimo vídeo! Deu pra sacar bastante essa parade de block aí... Aliás, alguém sabe o nome da extensão que mostra os erros direto na linha? Igual do professor
@drantunes2 жыл бұрын
Error Lens 😀
@ReinaldoNeto72 жыл бұрын
top prof 🔝🔝🔝
@ramon-dev8 ай бұрын
Qual modelo vc acha mais interessante de trabalhar o Bloc ou o MVVM?
@drantunes8 ай бұрын
Depende do projeto, mas mvvm funciona bem no mobile
@rodrigocardosoantonio7420Ай бұрын
Bloc funciona com geranciador de estado global ?
@drantunesАй бұрын
Pode funcionar, mas não é o recomendado pela abordagem.
@quicksketch16172 жыл бұрын
Estava revendo e fiquei pensando na parte que você falou de captura de erro, eu não faço ideia de como aplicar, seria chamar um evento de erro no lugar de um [ ] vazio do snapshot? minuto 22:47
@drantunes2 жыл бұрын
Você poderia criar um novo state de erro. Quando esse erro ocorrer, o BLoC irá enviar o state de erro para a view. E lá você faz o tratamento, por exemplo, mostrando alguma mensagem com o erro 👍
@quicksketch16172 жыл бұрын
@@drantunes O que fica meio abstrato pra mim, é que eu não vi nada sendo retornado em ClientSuccessState, se fosse criar da mesma forma, eu não saberia como criar, o que colocar. Não é a estrutura, é o que colocar na função, eu nunca sei. No mapEvent passa um evento de erro também no else if e depois um output com erro?
@williamcardoso1181 Жыл бұрын
Ainda tenho duvida quando tenho de tratar com dois provedores: imagina que eu tenha que carregar uma lista de clientes e uma lista de carros. E alguns componentes precisam verificar ambos os loadings das duas operações, que ao meu ver poderiam ser dois blocs. Como proceder? fico em duvida
@drantunes Жыл бұрын
Precisa pensar na modelagem dos dados. Se há um relacionamento de clientes e carros, e você precisa desta informação, pode criar um repositório que agregue esses dados. Pense nos estados do BLoC como "fotos" da sua tela em diferentes momentos (sem dados, carregando, com dados, com erro, etc). Como os dados serão modelados, estruturados e carregados serão de responsabilidade de outra classe ou camada ;)
@williamcardoso1181 Жыл бұрын
@@drantunes muito obrigado!
@BernardoVerasDev2 жыл бұрын
Eu utilizo GetX nas minhas aplicações porém várias pessoas falam que o BLoC é melhor para se trabalhar em app’s grande. Isso procede?
@drantunes2 жыл бұрын
As empresas utilizam mais o BLoC ou outras abordagens que são padrões como MobX e Redux.
@ig0rtiz2 жыл бұрын
valeu!
@teteutheys33662 жыл бұрын
Professor, teria como disponibilizar o codigo utilizado no video? Para dá uma estudada no padrão, pois ele possui tantas caracteristicas que a gente acaba se perdendo kkkkk
@drantunes2 жыл бұрын
Vou colocar na descrição 👍
@antoniomanoel28732 жыл бұрын
entendi mas na hora de usar me embanano todo, dá um nó na cabeça.
@peppokkk9 ай бұрын
Poxa eu não consegui acompanhar, o vídeo já começou com algumas partes dos códigos já prontos e eu não consegui ver. Eu estava conseguindo acompanhar melhor quando pegava pra fazer do zero na hora :(
@cledilsonprogramador2 жыл бұрын
um bloc pode ser instanciado dentro de uma função estática? estou tendo um erro ao tentar fazer isso...
@drantunes2 жыл бұрын
Não deveria dar problema, pois é uma instância como qualquer outra...
@cledilsonprogramador2 жыл бұрын
@@drantunes estava usando o bloc pattern professor, ele fiz que esse meu bloc não está na árvore de Widgets tentando instanciar ele em uma função estática
@cledilsonprogramador2 жыл бұрын
E ele está declarado antes do material
@drantunes2 жыл бұрын
@@cledilsonprogramador Não deveria dar erro de toda forma, a menos que você esteja usando alguma widget que precise do context (neste caso você não o teria mesmo na árvore). O que pode fazer é definir uma variável const para esse bloc e compartilhar ele via import.
@nezabarom18162 жыл бұрын
emit() mb?
@drantunes2 жыл бұрын
Não entendi sua dúvida ...
@sergiowmuller2 жыл бұрын
mto bom
@Pedro5antos_ Жыл бұрын
Showww!
@brunoabreu102 жыл бұрын
Adêdê?
@adrianomilhomens2 жыл бұрын
Tenho uma limitação, que acredito ser de ordem psicológica, muito grande em entender bloc. Honestamente não me sinto confortável. Já tentei de diversas maneira me dar a chance de entender melhor mais parece que a cada vez, só complica!
@drantunes2 жыл бұрын
A forma mais simples de entender o conceito é que ao invés de você manipular uma variável (state), por exemplo, um counter, você irá enviar continuamente um State (dentro desse state você pode ter propriedades, como o counter). Como é utilizada uma stream para enviar os dados de forma contínua, é importante ter outros states como um InitialState. As operações neste state também não são diretas, mas por meio de eventos (IncrementCounter, DecrementCounter, etc). State e Event são classes e, dentro delas, é que você irá realizar as operações. Espero ter ajudado
@_drumering2 жыл бұрын
Finalmente consegui parar pra assistir! Parabéns! Tem alguma forma de ter essas aulas na UTFPR?
@drantunes2 жыл бұрын
Obrigado Anderson!!! As aulas na universidade são apenas para os alunos. Por isso criei este canal pessoal: para levar ao público também conhecimentos sobre Flutter 👍. Você está procurando um curso sobre Flutter?
@_drumering2 жыл бұрын
@@drantunes Isso! Há algum curso na faculdade que aborde flutter?
@drantunes2 жыл бұрын
@@_drumering Bacharelado em Ciência da Computação e Analise e Desencolvimento de Sistemas, na disciplina de Programação de Dispositivos Móveis 👍
@_drumering2 жыл бұрын
@@drantunes Achei que houvesse alguma pós relacionada. Há algum curso que recomende? No mais vou maratonar mais seus vídeos, parabéns pela didática!
@drantunes2 жыл бұрын
@@_drumering Obrigado! Fica de olho aqui no canal que assim que lançar cursos particulares irei avisar aqui no canal 👍
@quicksketch16172 жыл бұрын
👏👏👏👏
@AdeilsonTube2 жыл бұрын
que massa
@thiagochristian61992 жыл бұрын
Aos 26:30 minutos começa a falar das dependencias
@ivensauro2 жыл бұрын
gank da flutterando
@momentslive56972 жыл бұрын
Bem complexo o entendimento do bloc, mostrando a arquitetura e depois a explicação acredito que seria mais facil compartilhar o conhecimento, mas de qualquer maneira parabéns pela didática.
@marcioborges25677 ай бұрын
Aula excelente, porém a arquitetura de bloc se utiliza de muitas classes... escreve muito.