Bloc Library: Basics & Beyond - Felix Angelov | Flutter Europe

Sdílet
Vložit
  • čas přidán 27. 07. 2024
  • Flutter is capable to run on multiple form factors and operating systems. Although desktop support is still in the experimental phase, there are some use cases where Flutter for desktop may be a viable option for greenfield projects.
    In this talk, you'll learn what is the current state of the Flutter desktop embedding project, how to configure a simple cross-platform desktop app and create your own plugin. Dominik will show what are the most serious limitations and what to expect in the upcoming months.
    Speaker: Felix Angelov ( / felangelov )
    ****************************************************
    Flutter Europe → fluttereurope.dev
    Follow us on Twitter → / fluttereurope
    Follow us on Facebook → / fluttereurope
    All talks → • Flutter Europe talks
    ****************************************************
    Learn Flutter → flutter.dev

Komentáře • 89

  • @notmtp566
    @notmtp566 Před rokem +2

    For those who learning Bloc this is the only video you need !!!

  • @filipsavic2165
    @filipsavic2165 Před 4 lety +60

    Thank you (all) so much for an amazing library and a matching talk! It is both a good overview and a good learning material!
    Here are the timestamps:
    00:00 - Intro & About
    01:34 - Goals for the library
    02:41 - BLoC overview
    03:20 - Counter Application example
    04:00 - Coding (starting from dependencies)
    06:22 - Bloc in Action
    07:50 - Async
    10:40 - Testing
    12:47 - Testing (One more time)
    13:35 - Async Tests
    15:40 - flutter_bloc package
    16:10 - coding
    16:55 - Bloc Provider
    18:20 - dispose()
    19:15 - Multiple Blocs
    20:05 - Bloc Builder
    21:57 - Async Bloc Builder
    23:42 - Overview (diagram)
    24:25 - Side effects (SnackBars)
    26:10 - BlocConsumer (listener and builder)
    27:05 - predictability (bloc: onEvent)
    28:45 - bloc: onTransition (old state, event, new state)
    29:25 - bloc: onError
    30:52 - BlocDelegate
    32:40 - maintainability (VS Code & IntelliJ plugins for easier code generating)
    33:30 - documentation @ bloclibrary.dev
    35:10 - hydrated bloc (caches state after app is killed)
    35:37 - dependencies and coding
    39:20 - a nice guy saying a big thanks (i'm sure he's speaking for all of us)
    ....:.... - questions

    • @kshitijjain4852
      @kshitijjain4852 Před 4 lety +5

      I love the people who make timestamps like these. Thanks!

    • @filipsavic2165
      @filipsavic2165 Před 4 lety +2

      Thanks man! I'm happy to help :)

    • @1wisestein
      @1wisestein Před 3 lety +1

      There should be a special place in heaven for commenters who breakdown videos into timestamps like this.

    • @filipsavic2165
      @filipsavic2165 Před 3 lety +2

      Hahaha :D
      Thank you! I hope someone up there loves timestamp comments too :D

    • @pritesh55s
      @pritesh55s Před 3 lety +1

      @@filipsavic2165 We love timestamp comments ......

  • @aaklii
    @aaklii Před 4 lety +2

    Felix Angelov's Bloc Library + Marcin Szałek 's Complex UI = Magic

  • @mradityapatnaik
    @mradityapatnaik Před 4 lety +4

    In just 7.5 minutes this video manages to explain a complex concept like bloc!

  • @thomasmabika7291
    @thomasmabika7291 Před 4 lety +76

    oh snap, Felix Angelov?? Reso Coder is going to be so happy!

    • @ResoCoder
      @ResoCoder Před 4 lety +84

      I was at the conference lol 😂

    • @santoshtemp5834
      @santoshtemp5834 Před 4 lety

      @@ResoCoder Really?

    • @aaklii
      @aaklii Před 4 lety

      @@santoshtemp5834 Marcin was a speaker: czcams.com/video/FCyoHclCqc8/video.html

    • @diogosequeira4873
      @diogosequeira4873 Před 3 lety +4

      @@ResoCoder you need to be a speaker on the next one ahha

  • @verryondrums
    @verryondrums Před 4 lety +28

    Really great talk! First time I don't have to watch a video with 1.5 or 2.0 times increased speed =D! Thanks for sharing

  • @davidacevedo8891
    @davidacevedo8891 Před 4 lety +8

    Not all heroes wear capes, thanks for making this library :)

  • @daanielacosta2395
    @daanielacosta2395 Před 3 lety +17

    Yesterday i expend like 6 hours trying tu understand Bloc library, it would been easier if i saw this video before. Great explanation and great set of libraries! :D

  • @Collins01
    @Collins01 Před 2 lety +1

    Now I understand how the BLOC works, thanks .

  • @rhodyborn
    @rhodyborn Před 3 lety +5

    Wow, really good talk. Understood exactly what was happening and applicable way in which the package could be used!

  • @PrinceDVII
    @PrinceDVII Před 4 lety +7

    Great presentation, straight to the point. Thanks Felix!

  • @kiyotaka627
    @kiyotaka627 Před 4 lety +10

    this package is amazing, if you are not using it I highly recommend it

  • @aytunch
    @aytunch Před 4 lety +3

    It's crazy. I just asked for this video in another talk 10 mins ago:) Thanks Flutter Europe and Felix

  • @krishnakumarramachandran5888

    Thanks Felix Bro, I like your Bloc Package. This is the first time i'm watching long video in CZcams. Now i understand Bloc concepts. Thanks for the Great Talk and Great Package.💙

  • @theonlyarjun
    @theonlyarjun Před 4 lety +51

    he said all that in one breath

  • @kevinliu6002
    @kevinliu6002 Před 4 lety +3

    Amazing library! I am going to start using bloc_test now. Hats off Felix!

  • @LexPrimost
    @LexPrimost Před 4 lety +1

    This guy ! a genius. thanks to you and the team behind the library

  • @stephenopokudamoah
    @stephenopokudamoah Před 3 lety +3

    Great presentation! I just fell in love with bloc and flutter_bloc!

  • @noname85808
    @noname85808 Před 4 lety +2

    Great libraries, thanks Felix!

  • @nivellemendiola5039
    @nivellemendiola5039 Před 4 lety +1

    thank you so much for making bloc easy to work for us

  • @Qizot
    @Qizot Před 4 lety +3

    Besides the talk about advanced UI/UX in flutter this is the second best so far

  • @RishabhAgrawal804
    @RishabhAgrawal804 Před 3 lety +1

    One of the best talk 👏

  • @chetanchoudhary08
    @chetanchoudhary08 Před 4 lety +2

    amazing presentation, liked it

  • @youssifgamal8545
    @youssifgamal8545 Před 2 lety +1

    great video , great explanation , great presenter

  • @GodfatherOfKcontent
    @GodfatherOfKcontent Před 3 lety +2

    A gem 💎

  • @DungNguyen-ex8rh
    @DungNguyen-ex8rh Před 3 lety +1

    very great content, an amazing package

  • @YaoBinThen
    @YaoBinThen Před 4 lety +5

    Great explanation, was skeptical with using bloc due to the complexity when I first learning it, and stuck with provider all this while, now I'm sold with bloc. Thanks!

    • @thomasmabika7291
      @thomasmabika7291 Před 4 lety +1

      same here, are you going to switch tho? I'm 50% into my project, and I'm like...man, bloc isn't really as bad as I thought.

    • @YaoBinThen
      @YaoBinThen Před 4 lety

      @@thomasmabika7291 I'd definitely bring it into my projects whenever I need it

    • @YaoBinThen
      @YaoBinThen Před 4 lety +2

      Update: I’m on bloc! And cubit too! This is exciting

  • @danghaile5528
    @danghaile5528 Před 4 lety +1

    This package is amazing !

  • @theGoldyMan
    @theGoldyMan Před 4 lety +3

    that baby Yoda blink :) , great presentation.

  • @metix1365
    @metix1365 Před 3 lety +1

    Amazing!!

  • @kozimjonkholmirzaev4701
    @kozimjonkholmirzaev4701 Před 3 lety +2

    great job

  • @coolprashantmailbox
    @coolprashantmailbox Před 4 lety +2

    Thanks Felix

  • @mderis
    @mderis Před 4 lety +1

    Thanks, enjoyed it,

  • @Rissmon1
    @Rissmon1 Před 3 lety +1

    Super talk 😃😃

  • @majdkazmoz4434
    @majdkazmoz4434 Před 4 lety +1

    This man amazing

  • @itsLarryAlright
    @itsLarryAlright Před 4 lety

    Wow nice presentation straight to the point. Now if we can have live sessions or maybe a channel that could show how you build complex apps with multiple pages.
    I will be happy to check other peoples channel too if you have any.

  • @GJJ2019
    @GJJ2019 Před 3 lety +2

    best talk ever

  • @khalidmahmud8664
    @khalidmahmud8664 Před 3 lety +1

    really helpful....

  • @justinprakashraj6256
    @justinprakashraj6256 Před rokem +1

    Bloc ❤️

  • @satyamdubey4529
    @satyamdubey4529 Před 3 lety +3

    He is already in 1.5x speed mode

  • @elsaiedsamaka7373
    @elsaiedsamaka7373 Před 4 lety +1

    felix,
    i love u

  • @keanuhero303
    @keanuhero303 Před 4 lety +10

    Missed opportunity to call TheChild as ChildThe.

  • @be_like__prateek
    @be_like__prateek Před 2 lety +1

    Knowledgable

  • @fluttermakers
    @fluttermakers Před 2 lety

    Please explain my practical on the favorite button. Thank you for your great efforts

  • @TheMr82k
    @TheMr82k Před 4 lety +2

    woah I just created a bloc pattern for myself and never noticed that this library had is doing almost everything exactly the same

    • @keanuhero303
      @keanuhero303 Před 4 lety

      Purple Candy Same we’ve created our own BLoC pattern and I think it’s pretty great but this package could be a lot more useful

  • @xaxababa6616
    @xaxababa6616 Před 4 lety +8

    When to use Equatable with Bloc? I see a lot of people using Equatable with Bloc and I am not sure what it does actually

    • @aaulia
      @aaulia Před 4 lety

      Equatable is basically a poor man data class. It override Type's equality operation so that instead of comparing the instance reference, it compares the content instead. So two separate instance of the same Type is equal if both have the same content/data.
      It's okay-ish, and it works, and less hassle to setup. But personally, coming from Kotlin, I'd rather use something like built_value or freezed.

  • @lucifer6099
    @lucifer6099 Před 4 lety +3

    Amazing content! I am a bigger fan of bloc and Flutter in general after this xD
    PS- Am I the only one to notice that hydrated_bloc example started incrementing with 0 ( 37:55 ) and not with the state it maintained ( 3 in this example) ?

    • @Felangelov
      @Felangelov Před 4 lety +8

      Aayush Malhotra that’s just because the gif is playing on a loop haha. You’ll notice it starts back up at 3 and then goes to 0.

    • @lucifer6099
      @lucifer6099 Před 4 lety +2

      @@Felangelov ohhh ok. Haha it almost got me. Really excited to see what's next from you guys.

  • @mallikarjunreddy5229
    @mallikarjunreddy5229 Před 4 lety

    Hey @Felix, How can i create my own generator, as you implemented an extention for bloc to get boilerplate code with dart files even, state and bloc.dart files. I am very helpful on the solution which you guys provided. Thanks

  • @vinceramcesoliveros6739
    @vinceramcesoliveros6739 Před 4 lety +4

    Bloc isn't that hard nor is it verbose for a large app...
    If you've learned Provider, you're comfortable using Bloc by Felix for larger applications.
    Having a counter app tutorial doesn't leverage the full features of Bloc itself. Having too complex tutorial like Todos fits for the job, but beginners will have a hard time following it due to huge chunks of code to be followed.
    Just to take note. State Management solves particular usecase. Bloc + Provider + Abstraction for me is the best combination.

  • @kantulaev
    @kantulaev Před 4 lety +2

    39:30 simple voice 😁

  • @jazimabbas8168
    @jazimabbas8168 Před 3 lety

    can anyone tell me about where i can found some useful resources of rxdart with flutter_bloc ??

  • @azackmatoff2570
    @azackmatoff2570 Před 3 lety +1

    The author of bloc, flutter_bloc

  • @sunilk9760
    @sunilk9760 Před 3 lety

    Provider works well

  • @lukasz.debowski1
    @lukasz.debowski1 Před 3 lety +3

    Great talk :) One question comes to my mind: isn't using BlocListener kind of breaking the rule of decoupling the UI from business logic? If we want to do some side action in response to state change, doing so in a UI code (such as the BlocListener widget used in the build method of some StatelessWidgget) is meh.
    Wouldn't doing those kind of actions fit better inside the bloc itself so that we can test that easly and truly separate UI from business logic? (such as showing a snackbar and what not, that is business logic imo)

  • @TomasAugust
    @TomasAugust Před 4 lety +1

    22:05 first code line - replace int with CounterState ?

    • @Felangelov
      @Felangelov Před 4 lety +1

      Tomas August yup good catch!

  • @prashanthongal1641
    @prashanthongal1641 Před 3 lety

    Hi can you please share GitHub link for this ?

  • @elsaiedsamaka7373
    @elsaiedsamaka7373 Před 4 lety

    hi, can any one provide the source code of these examples he talked about?

    • @Felangelov
      @Felangelov Před 4 lety +2

      The slides and source code can be found at github.com/felangel/bloc_library_basics_and_beyond 👍

  • @peter-ql7gi
    @peter-ql7gi Před 2 lety

    "very very good ventures"?

  • @rockypkr9348
    @rockypkr9348 Před 2 lety

    doesnt it voilate closed and open principle?

  • @petroniobonavides3530
    @petroniobonavides3530 Před 4 lety

    @Flutter Europe Hello, Bloc is cool but GetX is more efficent in my oppinion. GetX has State simple/reactive management(without codegen), route Management and Dependencies management 3-IN-1. This is a hidden and powerfull tool that nobody talks about. Some conten about would be great.

  • @itsLarryAlright
    @itsLarryAlright Před 4 lety

    Wow nice presentation straight to the point. Now if we can have live sessions or maybe a channel that could show how you build complex apps with multiple pages.
    I will be happy to check other peoples channel too if you have any.

  • @itsLarryAlright
    @itsLarryAlright Před 4 lety

    Wow nice presentation straight to the point. Now if we can have live sessions or maybe a channel that could show how you build complex apps with multiple pages.
    I will be happy to check other peoples channel too if you have any.