What you'll learn:
- BLoC Core Concepts - cubits, blocs, events, methods
- Flutter BLoC Concepts - BlocProvider, BlocBuilder, BlocListener
- BLoC Architecture - Presentation, Business Logic & Data Layers
- BLoC Testing - Learn how to test your cubits & blocs
- BLoC Access - Learn how to access cubits/blocs globally & locally
- Bloc-to-bloc communication - Learn how two or more blocs/cubits can interact between each other
- BuildContext In-Depth - Complete Tutorial on Flutter BuildContexts
- Possible errors, problems and how to fix them
- Storing app data to local storage by using Hydrated_Bloc Package
- Debugging blocs/cubits
By following this BLoC - From Zero to Hero course, you will successfully learn the BLoC State Management solution, so if you have doubts in understanding or practicing all of its concepts, I really recommend checking it out right here!
Before you check it out though, I would like to tell you that this series is designed with both the theoretical and most importantly, practical (coding) parts of every discussed topic. All of the project files can be found on my github page.
Also, the series was carefully monitored by the amazing creator of bloc_library, Felix Angelov.
On the other hand, without without the slightest restraint I feel like my series is the best bloc_library playlist on the entire internet.
Don't take my word for it, try it by yourself!
A briefing of everything that's been covered in this playlist, so you know what to expect:
Why BLoC? In this video I explained why I chose bloc_library for both the state management solution and the architectural structure of my apps
BLoC Core Concepts - In this tutorial I got really in-depth in explaining streams, and the concepts of blocs & cubits.
Flutter BLoc Concepts - Here, I discussed each and every single one of bloc_library's concept like BlocProvider, BlocBuilder, BlocListener and many many more. These concepts are obviously explained and tested in every tutorial, since they are the base of bloc_library.
BLoC Architecture - In this tutorial I made a short introduction on what I believe it's the best architecture to follow in order to structure and scale your code over time! This video has no code inside my github page, since I'm planning on using it extensively on my follow-up tutorial series on building real world apps!
BLoC Testing - Testing is one of the most important pillars of programming, oftenly omitted by developers. In this video I'll explain what are the basics of testing a bloc-built small application.
BLoC Access & Navigation - In this tutorial I got really in-depth on what are the routing options on which you can successfully provide a cubit/bloc to the widget tree.
Bloc-to-bloc Communication - Here I wanted all my viewers to understand how important it is to know how to make 2 blocs/cubit communicate one with another.
BuildContext In-Depth - This tutorial is not really related to the bloc_library, but since build contexts are used everywhere inside a flutter app, I realised that most of people didn't understand how they really work. This video is also useful as it spreads out the knowledge gained from tutorial number 3 and 6.
Bloc 6.1.0 - During my tutorial series, a new version of bloc_library got released, containing some important changes like context.watch, context.read and context.select. All of these are covered in this video, as always, with intuitive examples.
Bloc State not Updating - In this video, I explained why most of the new developers encounter this popular issue of a state of a bloc/cubit not updating.
Maintaining State with Hydrated_Bloc - In this tutorial I got really in-depth about how you can store the state of multiple blocs/cubits on the app's internal storage on your device. This is a key concept in developing a successful Flutter app, having bloc_library as the state management feature.
Debugging Blocs/Cubits, Naming Conventions and other tips and tricks is the last video of this series, covering other important topics found inside the flutter_bloc library.
Thank you and hopefully you are as excited as I am!