ไม่สามารถเล่นวิดีโอนี้
ขออภัยในความไม่สะดวก

Riverpod or Bloc? Which One is Better?

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ก.พ. 2023
  • 📄You will see side by side comparison between two well-known state management solutions in the Flutter framework i-e Bloc & Riverpod. How they are different from each other and what to choose from them for your next project.
    🤖About AI - Please Subscribe :
    🔗 / @theaionline
    ⚡ SUBSCRIBE HERE⚡
    🔗 cutt.ly/2XkZz0X
    🌐 Social Media
    🔗 Linkedin: / taimoorghafar
    / mahdinazmi
    🔗 GitHub: github.com/mah...
    github.com/tai...
    🔗 Twitter: / mahdinazmi
    #flutter #fluttertutorial #flutterwidgets #fluttercourse #flutterinhindi #mobileappdevelopment #vscode #reactnative #flutterbloc #flutterstatemanagement #flutterriverpod #riverpodstatemanagement #difference_between_bloc_riverpod #bloc_vs_riverpod

ความคิดเห็น • 85

  • @RandalLSchwartz
    @RandalLSchwartz ปีที่แล้ว +89

    I believe bloc is the right choice when you're working on a team of varying skill levels. It has one primary way of distributing events, and everything sorta circles around that. Riverpod offers far more flexibility... but with great power comes great responsibility, and some mastery is recommended. Riverpod can even be used in "bloc" mode with streams if you want... That said, I reach for riverpod for pretty much every project I'm influencing, whether it's a few classes, or a few hundred classes. Riverpod scales well.

  • @RandalLSchwartz
    @RandalLSchwartz ปีที่แล้ว +30

    Riverpod *has* a StreamProvider. Most of riverpod has nothing to do with streams, and uses a far simpler but more flexible strategy of ProviderListenables. So the comment mid-video about them both using streams is already wrong. Some of the other things are also marginal.

  • @zdenekkrcal9066
    @zdenekkrcal9066 ปีที่แล้ว +33

    Riverpod is excellent and easier to use now with riverpod annotations.

    • @abrorbobomurodov2361
      @abrorbobomurodov2361 ปีที่แล้ว +2

      Bloc is so easy if you use freeze package with bloc

    • @user-xe5bm4cq2c
      @user-xe5bm4cq2c ปีที่แล้ว +1

      @@abrorbobomurodov2361 Riverpod can too.

    • @Cpmbc279
      @Cpmbc279 9 หลายเดือนก่อน +1

      YES!

  • @noursalman932
    @noursalman932 ปีที่แล้ว +10

    Coming from BLoC (Cubit) background, I actually learned to use Riverpod from this comparison, better than any Riverpod tutorial I came across. Many thanks!

  • @moisesbinzie
    @moisesbinzie ปีที่แล้ว +23

    Well explained. With that comparison, I finally understood a bit of Bloc. Coming from Provider, It was easy for me to transtion to Riverpod than Bloc

  • @akshattamrakar9071
    @akshattamrakar9071 ปีที่แล้ว +23

    Bloc is better as it extracts all the implementation in separate location. It's works great for teams

    • @sahilambure
      @sahilambure ปีที่แล้ว +6

      It is good for beginner to advance app. But riverpod scales better than BLOc

    • @abrorbobomurodov2361
      @abrorbobomurodov2361 ปีที่แล้ว +1

      ​@@sahilamburefor team work Bloc would be great choice

  • @conceptcoder
    @conceptcoder ปีที่แล้ว +17

    It's like "Fireship taste" when see this video... 😎

  • @Quicky121
    @Quicky121 ปีที่แล้ว +15

    I tried Cubit, BLoC and (sadly) Redux and for me BLoC is the better. It has a clean way to write your business logic and all the Builder, Listener widgets keep your code clean. I read some comments that says that Riverpod scales up better and I'm curious to see if it's true. Maybe an hint for next video? :P
    Thanks for the video!

  • @sharbelokzan9673
    @sharbelokzan9673 10 หลายเดือนก่อน +3

    I’m experienced with bloc but was a bit confused with riverpod, this helped a lot! Thanks

    • @flutterguys
      @flutterguys  9 หลายเดือนก่อน

      Glad it helped!

  • @sahilambure
    @sahilambure ปีที่แล้ว +8

    Riverpod is better for big apps.

  • @guycz
    @guycz ปีที่แล้ว +8

    My opinion - Riverpod

  • @jointtask4047
    @jointtask4047 ปีที่แล้ว +15

    Bloc has a lot of boilerplate code involved, I wound prefer Riverpod

    • @justinprakashraj6256
      @justinprakashraj6256 ปีที่แล้ว +3

      what is boilerplate ?

    • @baruchfavour9358
      @baruchfavour9358 ปีที่แล้ว +1

      Much of code could be unnecessary sometimes

    • @justinprakashraj6256
      @justinprakashraj6256 ปีที่แล้ว +1

      @@baruchfavour9358 thanks BFavour

    • @user-rh1sw6ji6t
      @user-rh1sw6ji6t ปีที่แล้ว

      How about getx?

    • @Quicky121
      @Quicky121 ปีที่แล้ว +2

      I don't know man, it has some boilerplate but for events and state you can use freezed library to solve this, resulting in less boilerplate and cleaner code. Give it a try!

  • @robbrooks5263
    @robbrooks5263 ปีที่แล้ว +7

    Explain to me like I'm a 5 year-old why I need to adopt one of these in preference to plain old Provider.
    What am I missing?

    • @phillip_jacobs
      @phillip_jacobs ปีที่แล้ว +1

      Probably just the size of your app.

    • @RandalLSchwartz
      @RandalLSchwartz ปีที่แล้ว +8

      I've migrated three projects from Provider to Riverpod. Each time, the code get simpler, more robust, and more featureful, and easier to maintain.

  • @phillip_jacobs
    @phillip_jacobs ปีที่แล้ว +5

    Looks like Riverpod is the winner in the comments. Riverpod it is then!

  • @nicolaimagnussen1914
    @nicolaimagnussen1914 10 วันที่ผ่านมา

    which editing tricks are you using to get this type of editing, any tips?

  • @edigunawan1062
    @edigunawan1062 ปีที่แล้ว +2

    i only use riverpod now since i found provider lack context control. i'll try bloc when i found lack of riverpod because people said bloc is great for complete separate business logic.

  • @przemysawlusnia720
    @przemysawlusnia720 ปีที่แล้ว +3

    Great comparison, thanks. I found a minor bug in 1:25 on the right example - "state.user == null" is copy-pasted from the left example, but there's no reference to state actually

    • @flutterguys
      @flutterguys  ปีที่แล้ว

      Yes you are right, Thank you ❤✌

  • @fegartyx8271
    @fegartyx8271 9 หลายเดือนก่อน +1

    I'm still confused right now, like many job requirements want to use bloc than riverpod

  • @justinprakashraj6256
    @justinprakashraj6256 ปีที่แล้ว +2

    BLOC 🔹❤️

  • @MarcelinoDavid111
    @MarcelinoDavid111 4 หลายเดือนก่อน +1

    Riverpod

  • @h3w45
    @h3w45 2 หลายเดือนก่อน

    Thank you very well explained

  • @kamil_supabase_enjoyer
    @kamil_supabase_enjoyer ปีที่แล้ว +8

    From my expierience riverpod is more elastic. Bloc is good in simple apps

    • @NOBODYxx09
      @NOBODYxx09 ปีที่แล้ว +8

      No, bloc is the choice for bigger apps believe me i have been there 😉

    • @bouyahyabilel2437
      @bouyahyabilel2437 9 หลายเดือนก่อน +1

      No , bloc is the great choice for bigger app , also when you work with team

  • @davisburnside9609
    @davisburnside9609 6 หลายเดือนก่อน

    Why would I want bloc a river as no competing pods are crossing state crosspods?

  • @site.x9448
    @site.x9448 6 หลายเดือนก่อน

    Wow. Sir, what software do you use for such editing?

  • @alphaNaj
    @alphaNaj ปีที่แล้ว +1

    great content you are making, keep it up

  • @IncompleteTheory
    @IncompleteTheory ปีที่แล้ว +2

    Provider FTW.

  • @erlangparasu6339
    @erlangparasu6339 8 หลายเดือนก่อน

    bloc because more recognize with all class contains prefix "Bloc" :)

  • @joshuanwokoye
    @joshuanwokoye ปีที่แล้ว

    Very straight forward!

  • @YS_Yousef
    @YS_Yousef 7 หลายเดือนก่อน

    please make the soundeffects lower and get some better ones

  • @abasilis
    @abasilis 9 หลายเดือนก่อน

    Hi, Excellent video, thanks. At the end you mentioned depends on the scale of the peoject, so, which one to use in a bigger project?

    • @flutterguys
      @flutterguys  9 หลายเดือนก่อน

      Blo

    • @flutterguys
      @flutterguys  9 หลายเดือนก่อน +1

      Bloc

    • @abasilis
      @abasilis 9 หลายเดือนก่อน

      @@flutterguys Thank yoy very much!

  • @pintalubaf
    @pintalubaf ปีที่แล้ว +3

    The main problem I see with Riverpod is that anyone, from anywhere, can read a notifier and change the state,

    • @flutterguys
      @flutterguys  ปีที่แล้ว +2

      Riverpod document :
      Do not be frightened by the global aspect of providers. Providers are fully immutable. Declaring a provider is no different from declaring a function, and providers are testable and maintainable.

    • @pintalubaf
      @pintalubaf ปีที่แล้ว

      @@flutterguys Yeah, providers are immutable, but their states are mutable, and public.
      I'm not saying it's bad, it's just the problem I see.

    • @RandalLSchwartz
      @RandalLSchwartz ปีที่แล้ว +4

      @@pintalubaf "but their states are mutable, and public.". No, they aren't. You must pass through a function to update the state of a Notifier (sync, Future or Stream). If you're calling that mutable or public, you need to look closer. Perhaps you're thinking of the legacy StateProvider, which was a stopgap introduced to get people at least one step away from globals. But that pattern while still supported, is no longer recommended. Instead, immutable state with defined updating methods is now the primary API.

    • @pintalubaf
      @pintalubaf ปีที่แล้ว +4

      @@RandalLSchwartz This is actually good news to me, because some months ago I could set the state from anywhere like: `ref.read(randomProvider.notifier).state = newState;`, so at that point, either state was mutable/public or not protected. It's good to see its immutable now. Thank you for letting me know about this.

    • @pintalubaf
      @pintalubaf ปีที่แล้ว

      Or, it's the legacy StateProvider as you said.

  • @rsajdok
    @rsajdok ปีที่แล้ว +1

    riverpod has less boiler plate code

  • @mohamedabdelrehem7698
    @mohamedabdelrehem7698 ปีที่แล้ว

    are you real
    this video the first of your videos pop to me and now i just watched mostly all of your videos♥♥♥♥

    • @flutterguys
      @flutterguys  ปีที่แล้ว +1

      Glad it was helpful!

  • @dadlord689
    @dadlord689 3 หลายเดือนก่อน

    Working for years with Unity and Unreal engines... this is frustrating. You can't over complicate messaging more.

  • @algeriennesaffaires7017
    @algeriennesaffaires7017 ปีที่แล้ว +1

    Even i have been developing with flutter for 4 years, but i can't understand this video. The correct question is, what is the problem block or provider solve, and set State can't do it? Im using set State, and it's good enough

    • @flutterguys
      @flutterguys  ปีที่แล้ว

      In big apps, you cannot use set state to manage the state, and you need to manage the structured state and avoid complexity.

    • @algeriennesaffaires7017
      @algeriennesaffaires7017 ปีที่แล้ว +1

      @Flutter Guys thanks, i have a medium-sized app that took me 4 years now to maintain i ts little complicated, yes, but it's well controlled with just set State

    • @bhakinkhantarjeerawat8163
      @bhakinkhantarjeerawat8163 ปีที่แล้ว +2

      @@algeriennesaffaires7017 Interesting! I really like when people can use simple methods to manage things, especially the old staff, and it still works well.

    • @sangamgiri1071
      @sangamgiri1071 ปีที่แล้ว

      Yes I have used default setState in bigger projects too but at some point everything starts getting messy so Bloc is recommended

    • @teajay6545
      @teajay6545 ปีที่แล้ว +2

      I can only imagine the pain and length you have to go through to make your apps conform to using setState only phew 😮‍💨 (I smell anti-pattern)

  • @bilal1708
    @bilal1708 5 หลายเดือนก่อน

    I prefer Provider 😅

  • @miranantamiangr
    @miranantamiangr 7 หลายเดือนก่อน

    You have to change your voiceover ai to elevenlabs or something slower. It’s very bad and rushed now

  • @markosunbro2732
    @markosunbro2732 2 หลายเดือนก่อน

    Mobx )))

  • @TheRealFFS
    @TheRealFFS 10 หลายเดือนก่อน

    You want to go over this any faster pal?

    • @flutterguys
      @flutterguys  10 หลายเดือนก่อน

      What do you mean?

  • @ai_mak354
    @ai_mak354 ปีที่แล้ว

    GetX!!!))

  • @salmaindrianputri164
    @salmaindrianputri164 ปีที่แล้ว

    But im with getx

  • @dolbysoundsofficial9323
    @dolbysoundsofficial9323 ปีที่แล้ว +3

    Riverpod

  • @AbdulRahim-ok1vs
    @AbdulRahim-ok1vs ปีที่แล้ว +1

    Riverpod