Flutter Bloc Tutorial For Beginners | BLoC Architecture/Pattern & State Management Explained

Поделиться
HTML-код
  • Опубликовано: 22 ноя 2024

Комментарии • 230

  • @GameSteals
    @GameSteals 6 месяцев назад +29

    At 1:04:56, no offense, but the explanation seemed a bit flaky. Here are my 2 cents on why the state is not changing even after adding a new to-do object in the 'state' list.
    When we first initiate the state with an empty list [], this list has an address in memory (say A1), similar to how a house has an address.
    Continuing with this analogy, like how if more people start residing in the house, the address of the house does not change, similarly if we add more elements in the list, the address of the list will also not change.
    The emit() function likely compares two states based on the r-value (which is address in the case of Lists, Maps, and objects, and the actual value in the case of primitives like int, float, double, etc).
    Here emit() concludes that the state has not changed, since the address of the list has not changed, therefore it stops any further processing.
    Therefore, to actually change the address of the list,
    1. We have to create a copy of the list (This creates a new list with a new address (say A2))
    2. Add the items in this new list
    3. Pass this new list to emit()
    Now when emit() compares the two lists, it finds that the address is different, and it updates the state. Hope this helped someone.

    • @RivaanRanawat
      @RivaanRanawat  6 месяцев назад +13

      Good explanation, thanks for taking the time to write & help others!

    • @sagarshah5341
      @sagarshah5341 6 месяцев назад +3

      Man you are good at DSA!

    • @jatindersinghaujla
      @jatindersinghaujla 4 месяца назад

      ​@@sagarshah5341 it's general programming concepts not dsa. It works based on the address of list, map etc. To understand this in details need to know how equals and hashcode works

    • @sagarshah5341
      @sagarshah5341 4 месяца назад

      @@jatindersinghaujla The guy understood what I was implying.

    • @andrewspourgeon
      @andrewspourgeon 3 месяца назад

      Damn Good explanation Bro , But I didn't understood one thing , as per u r explanation
      - When we first initiate the state with an empty list [], this list has an address in memory (say A1) which does not contain any value.
      - Then if we add a value to that list the address of the list will still be the same
      - According to this analogy , why the first element that is being added is getting shown ?
      - If u observe clearly at 1:02:55 the first value is shown , its stopped showing only from 2nd value

  • @MrxAmjad
    @MrxAmjad 11 месяцев назад +78

    As of now, This man is God Gift for flutter developer, His insane contribution for Flutter Developers always be memorable in flutter history, this much quality content absolutely for free is ❤❤❤❤❤.

  • @kevinvishal9071
    @kevinvishal9071 8 месяцев назад +1

    This tutorial is a gem for Flutter developers. The explanations provided are incredibly detailed, making a complex pattern appear straightforward. I'm grateful for the thorough guidance provided by the instructor. Thank you, Master.❤

  • @hashir2749
    @hashir2749 8 месяцев назад +4

    Seen a lot of state management tutorials but this one is on Top.

  • @LinuxUser_
    @LinuxUser_ 11 месяцев назад +5

    As my 7th-semester exams are concluding next week in pursuit of a CS degree, I'm eager to delve into Flutter projects.
    I already have a grasp of Flutter and Dart basics. However, time is limited, and with companies beginning recruitment, I'm feeling the pressure due to the absence of projects.
    I would greatly appreciate your guidance, Rivaan, including video recommendations to kickstart my Flutter journey, project ideas, and tips for both project development and placement preparation.
    Your assistance means a lot 🙏🏻

  • @AkshayGupta-qb1yn
    @AkshayGupta-qb1yn 3 месяца назад +1

    You're a genius! Unlike other RUclipsrs who explain everything at the beginning, you saved the block definition explanation for the end of the video. I really appreciate your content, and thanks to your 2-hour 30-minute tutorial, I successfully cracked the interview. Thank you!

  • @samuelvmoura
    @samuelvmoura 7 месяцев назад +2

    Wow, I've been after some good, well explained bloc tutorials for a while and yours got literally all my questions answered. thank you so much!

  • @numan947
    @numan947 8 месяцев назад

    Hey! Just wanted to say thanks! I was on the fence about whether to invest about 3 hours of my time in it, but I am glad I did. Your shown examples along with the explanations helped clear out a lot of the confusions and questions I had.

  • @synnotus
    @synnotus 11 месяцев назад +6

    You are the best thing ever happened to flutter. Your explanations are beginner friendly. Thanks

  • @Vikram_Naik
    @Vikram_Naik 3 месяца назад +1

    Manhhhh! This is the best tutorial out in RUclips for bloc state management
    You are amazing

  • @Mitsue51
    @Mitsue51 8 месяцев назад +1

    Thanks, it's really helpful because following the login tutorial from the bloc documentation wasn't enough for a beginner like me. You explain really well, thanks for your time

  • @JariyahMindset
    @JariyahMindset 3 месяца назад

    Thanks so much. This course was a long overdue for me but I finally got it done. I feel way more confident about Bloc and Cubit now.

  • @rolesquare3624
    @rolesquare3624 11 месяцев назад +2

    I was wondering when Rivaan will move to bloc and here it is. Thank you for showing me a lot in flutter.

  • @SohaibSanaa
    @SohaibSanaa 9 месяцев назад

    I came to learn Bloc State Management and ended up as his fan. I love the way how he Explain and teach. If this course was on Udemy, he must hai Millions of Students by now. (An this course should be on Platforms like Udemy) 💯❣💫

  • @DataSet
    @DataSet 9 месяцев назад +20

    For those who don't know, Rivaan is only 17

    • @c00per_
      @c00per_ 7 месяцев назад +1

      Ikrrrr💀🗿💥

  • @rakshithadilshan9888
    @rakshithadilshan9888 10 месяцев назад +4

    Very valuable content. No one has taught like this❤

  • @richardwindley7355
    @richardwindley7355 10 месяцев назад +1

    When I started watching, I thought "I won't sit here for 2.5 hours..." but I did. This is a great video which explains the subject matter very clearly with good examples.

  • @roninspect4357
    @roninspect4357 11 месяцев назад +5

    a big project with bloc and supabase would be very awesome & unique.

  • @jatindersinghaujla
    @jatindersinghaujla 4 месяца назад

    This video is worth watching. You cleared so many doubts.

  • @KhawarShahzad-lj9gh
    @KhawarShahzad-lj9gh 4 месяца назад

    For first time I saw a tutorial completely. 🙂

  • @anurudhsingh3397
    @anurudhsingh3397 9 месяцев назад +1

    I have no words!! Fluent like air!!!! Thanks !!!!

  • @pratyushvaibhav
    @pratyushvaibhav 11 месяцев назад +9

    Hats off
    A big round of applause ✋
    A big thanks for this 🙏

  • @hussainrizvi5423
    @hussainrizvi5423 10 месяцев назад

    OH MY GOD!!! THANK YOU SO MUCH SIR... this is by far the best video for bloc tutorial.

  • @justetk
    @justetk 5 месяцев назад +1

    Nice Video! Thanks from Azerbaijan!

  • @arminyazdian6598
    @arminyazdian6598 7 месяцев назад

    Thank you so much for putting huge amount of time and effort!

  • @malukishtiaq
    @malukishtiaq 8 месяцев назад

    You are just awesome my friend. I watch your videos on priority. It helps me stay polished.

  • @manohar.acharya
    @manohar.acharya 11 месяцев назад +2

    was despereatly waiting for bloc wanna see fullstack project on bloc & cubit

  • @muhammadbilal-sd9kf
    @muhammadbilal-sd9kf 7 месяцев назад

    Your way of explaining bloc pattern is amazing.
    Please make a video of about MVVM architecture using provide.
    thanks

  • @andrewspourgeon
    @andrewspourgeon 3 месяца назад

    Dear Rivaan , U have an excellent explanation skills bro ❤‍🔥 , This one is a gem 😍

  • @hokitamo
    @hokitamo 3 месяца назад

    best teacher ever!

  • @hurbangash1302
    @hurbangash1302 7 месяцев назад

    i did not know bloc was so easy .thank you so much rivan bhai

  • @its_suresh_v
    @its_suresh_v 11 месяцев назад

    Riwan love you man the way you explained bloc outstanding brother, Crystal-clear explanation superb 👏

  • @sabinpoudel6969
    @sabinpoudel6969 11 месяцев назад +1

    Rivaan you are gem for a flutter community.
    Thanks for clearing my doubts.!!!

  • @faridahmadov5991
    @faridahmadov5991 10 месяцев назад

    You are the best tutor ever!

  • @jayisampelliwar5065
    @jayisampelliwar5065 11 месяцев назад

    finally, the Most awaited video ✅ best flutter channel exists on YT

  • @VaibhavC-co1bi
    @VaibhavC-co1bi 9 месяцев назад +1

    this is so awesome bloc tutorial and very clear so that developers like me can understand. Can you make a video about the features first appraoch or some project based on bloc

    • @RivaanRanawat
      @RivaanRanawat  9 месяцев назад

      Will be coming soon, hopefully March!

  • @arnaudroncari2468
    @arnaudroncari2468 10 месяцев назад +1

    Such a great teacher !

  • @realcontentfun
    @realcontentfun 2 месяца назад

    Best Video of bloc no doubt just one thing could you explain more about equatable using bloc and why we do it and what error we can face if we dont if you cannot make a video just reply with some answer because i have noticed sometimes we do the same emit twice bloc listener get called once so will equatable do some logic

  • @maulahaz
    @maulahaz 11 месяцев назад

    MashaAllah.. very good explanation. Deep like diving in the ocean. Recommended to watch.

  • @RishabhTiwari-v3l
    @RishabhTiwari-v3l 3 месяца назад

    A Very Big Thanks to You Sir ❤❤

  • @nisafv.a8710
    @nisafv.a8710 11 месяцев назад +1

    Thankyou so much maaan . Really helpful ❤ . God bless

  • @aizen_3438
    @aizen_3438 11 месяцев назад +2

    Hats off waiting for this 🔥

  • @yoskokleng3658
    @yoskokleng3658 2 месяца назад

    bloc VS riverpod, which one better for large scale application? please tell me and why?. thank you

  • @alanta335
    @alanta335 7 месяцев назад

    best tutorial i heard in a long time🤩

  • @chitko1706
    @chitko1706 10 месяцев назад

    awesome sir. you are the mentor who i was looking for🎉.please,upload more.

  • @Csroot667
    @Csroot667 2 месяца назад

    At 1:47:38, to avoid the little error glitch is it a good idea to add a check if state is AuthInitial in the BlocBuilder part of the BlocConsumer and return an empty widget like Center? Ex: if (state is AuthLoading) {
    return const Center(
    child: CircularProgressIndicator(),
    );
    }
    if (state is AuthInitial) {
    return const Center();
    }
    //AuthSuccess Part

  • @sagarshah5341
    @sagarshah5341 6 месяцев назад

    On 25:09 would it be a better idea to create a global object for the class CounterCubit?
    That way we only have to deal with the global instance of the state!
    What do you think?
    class CounterCubit extends Cubit {
    // int counter = 0;
    CounterCubit() : super(0);
    void incr() {
    emit(state + 1);
    }
    void decr() {
    if (state == 0) {
    return;
    }
    emit(state - 1);
    }
    }
    // after creating this object in the same file, no NEED for an extra PROVIDER at all
    final gCounterCubitObj = CounterCubit();

  • @spark-games-uk
    @spark-games-uk 8 месяцев назад

    Man you rock! Thanks a lot for sharing your expertise ❤

  • @giovannygarciaholguin-g7w
    @giovannygarciaholguin-g7w 9 месяцев назад

    this is pure gold

  • @Badshah1614
    @Badshah1614 11 месяцев назад

    Thank you so much sir for uploading a new flutter video again . How long have we been waiting for your next Flutter video?

  • @arthonuy7211
    @arthonuy7211 11 месяцев назад +1

    Hey Rivaan I have a doubt in Todo app , when we first update the empty list by state.add() then emit(state) then why emit is notifying the listeners about the change? I mean todo list page should not show anything right?

  • @footballace8371
    @footballace8371 4 месяца назад

    Please do a video on Stacked MVVM Architecture

  • @abidhasansnigdho
    @abidhasansnigdho 11 месяцев назад

    You are awesome at making complex things easy ❤

  • @muhammadjavedrafique4592
    @muhammadjavedrafique4592 11 месяцев назад

    oh yrr Rivan i dont know who told you what we need on which time 🤣🤣.... tnku Gem

  • @tube-rp1nb
    @tube-rp1nb Месяц назад

    Nicely done.

  • @aouadicharaf1038
    @aouadicharaf1038 7 месяцев назад

    finished!! Amazing content ❤❤❤

  • @kobab4270
    @kobab4270 8 месяцев назад

    Thank you for this! But after finishing this, the weather app didn’t work anymore. The circular progress indicator was just circling infinitely. I tried to run your finished weather app folder on GitHub to check if I didn’t make some kind of error while following the video, but I still got an error, this time "type 'int' is not a subtype of type ‘double' in type cast"

  • @jainambarbhaya1736
    @jainambarbhaya1736 11 месяцев назад +1

    so which is more recommended Bloc or Riverpod ?

  • @livingfreeely
    @livingfreeely 8 месяцев назад

    thanks a lot Rivaan

  • @amityadav85
    @amityadav85 10 месяцев назад

    brilliant! thank you kind sir! very nice method of teaching!

  • @pallabroy8800
    @pallabroy8800 11 месяцев назад

    Pls make a dedicated course on fl_charts and also make a video on how to use fl_charts with api to use real time data for the graphs

  • @RameshA-r2u
    @RameshA-r2u 10 месяцев назад

    Outstanding Explanation.....

  • @NischalDahal-w9j
    @NischalDahal-w9j 8 месяцев назад

    can you create the video like how can we dependency inject, using the annotation, and using of json serizable and more

  • @SangGuChoi
    @SangGuChoi 9 месяцев назад

    your video is very useful!
    So, i have one Question, Is there any no need domain layer that use in clean architecture?

  • @PaoloTshiyole
    @PaoloTshiyole 11 месяцев назад

    That's amazing, good video
    May you do a video with flutter and gemini pro api please

  • @techwithotabek
    @techwithotabek 9 месяцев назад

    Hey Rivaan, great tutorials brother. Can you also make a tutorial for Provider like you did for Bloc?

    • @RashidKhan-kd9xl
      @RashidKhan-kd9xl 7 месяцев назад +1

      He had it.. you can see it ( in his 3rd app in 20h course of flutter for beginners) but there nothing much in providers ❤

  • @scorpionadvertising8808
    @scorpionadvertising8808 5 месяцев назад

    He is a better teacher than a coder😂

  • @azamovdev
    @azamovdev 11 месяцев назад

    Good Bro I wish luck your works

  • @aash1r869
    @aash1r869 11 месяцев назад

    Hey Rivaan, Kindly make a video on Flutter using Stacked state management, tutorials on stacked are almost impossible to find, would be of great helpp!

  • @KaranMehta-y3e
    @KaranMehta-y3e 6 месяцев назад

    An Advantageous tutorial.👋

  • @pravinprince3221
    @pravinprince3221 11 месяцев назад

    Thank you for the wonderful tutorial bro, it is very helpful for me and my team thanks again

  • @sujalutekar9417
    @sujalutekar9417 11 месяцев назад

    I was waiting for this only 🔥🔥

  • @pravinprince3221
    @pravinprince3221 8 месяцев назад

    Good morning bro one more request bro can you please do detailed videos on bloc_concurrency and transformer like this one please

  • @usmanofficial4881
    @usmanofficial4881 7 месяцев назад

    Thank you so much for tutorial sir.. but getting one error in weather app after all functionality done. "int is not subtype of double"
    this error also occurred in your weather app that i got from your github and run it then same error got

  • @hiteshnath7729
    @hiteshnath7729 7 месяцев назад

    Bro can you send your vscode settings json, I loved your theme ❤

  • @__basith__742
    @__basith__742 10 месяцев назад

    see you should also include stream subscrption using bloc it would be
    every much appreciated

  • @faheemahmadofficial7701
    @faheemahmadofficial7701 11 месяцев назад

    Thanks great help, would like to see firebase full using clean arvh and cubit all cruds fcm cloud functions and model based work

  • @Ashu17-y5n
    @Ashu17-y5n 2 месяца назад

    Sir what about equatable package , you didn't even mentioned it while others are using it

  • @River-mm6jw
    @River-mm6jw 11 месяцев назад +2

    Part 2 : Bloc + Freezed with
    Clean Architecture

  • @LelloApp
    @LelloApp 6 месяцев назад

    it was fantastic!!! thanks

  • @vennampallylaxmanmurthy5465
    @vennampallylaxmanmurthy5465 3 месяца назад

    how you are getting logs .please tell me if there is any extension ,as my console is getting filled with unnecessary data but not like your console

  • @shhhhh.
    @shhhhh. 8 месяцев назад

    Great video 👌👌👌

  • @hurbangash1302
    @hurbangash1302 7 месяцев назад

    rivan bhai next responsive design tutorail please

  • @VGoychev
    @VGoychev 24 дня назад

    Hello! I have an issue with the Weather App. It gets me error message -~type 'int' is not a subtype of type 'double' ~-

  • @pradeepg4498
    @pradeepg4498 11 месяцев назад +1

    How to handle stream and bloc state value in another bloc

  • @jayisampelliwar5246
    @jayisampelliwar5246 11 месяцев назад +1

    Which theme are you using? Could you please tell me the name ???

    • @mohamed1khaled2
      @mohamed1khaled2 11 месяцев назад

      .

    • @mohamed1khaled2
      @mohamed1khaled2 11 месяцев назад

      write this in search and we found the theme 'eserozvataf.one-dark-pro-monokai-darker' the name is One Dark Pro Monokai Darker theme

  • @Eunsmoqj
    @Eunsmoqj 8 месяцев назад

    You are insane. Thx for everything. Im learning from u a lot.

  • @drreload6726
    @drreload6726 11 месяцев назад

    Please give a tutorial for getx. Not able to find proper documentation.

  • @HenryCavill-x1s
    @HenryCavill-x1s 11 месяцев назад

    Amazing video, that's very good

  • @daveloperkrishana7559
    @daveloperkrishana7559 11 месяцев назад

    what do you feel which is better bloc or riverpod for state management tool
    ?

    • @pedroluzio
      @pedroluzio 11 месяцев назад +1

      try both and see which one rocks your boat

  • @faridahmadov5991
    @faridahmadov5991 11 месяцев назад

    Quite good explain

  • @gyanupadhyay9473
    @gyanupadhyay9473 11 месяцев назад +1

    1:04:22 is the important point

    • @arthonuy7211
      @arthonuy7211 11 месяцев назад

      when we first update the empty list by state.add() then emit(state) then why emit is notifying the listeners about the change? I mean todo list page should not show anything right?

  • @ramandahiya6977
    @ramandahiya6977 8 месяцев назад

    well explained

  • @skullerhood
    @skullerhood 2 месяца назад

    You are hero

  • @Revanth233
    @Revanth233 11 месяцев назад

    Tqsm bro for making videos most beautiful 😍

  • @zaitoontech
    @zaitoontech 8 месяцев назад

    Awesome thanks bro

  • @vibhor691
    @vibhor691 11 месяцев назад +1

    which plugin are you using for icon theme ?

  • @szyszak9424
    @szyszak9424 11 месяцев назад +1

    1:37:17 when after circular loading indicator ends it shows previous screen for a bit and then goes to next one, is it a glitch or what?

    • @viniciusVS8v
      @viniciusVS8v Месяц назад

      Is not a glich, the state changes really fast and create that effect, add this code below the CircularProgressImdicator if:
      If(state is AuthSuccess){
      return const SizedBox();
      }
      Problem solved

  • @code_-rq1wh
    @code_-rq1wh 4 месяца назад

    which file icon theam your are useing

  • @vikashtiwari8360
    @vikashtiwari8360 11 месяцев назад

    Please make tutorial onfood ordering app or ride sharing app