
Learn to build a blog web app and a small merchandise store using flutter provider state management, with firebase authentication, post CRUD and like features, and cart operations.
Explain how a provider acts as a wrapper around inherited widgets to pass data down the widget tree, using a delivery-system analogy and provider.of with a specific type.
Build a blog UI in a new Flutter project using a themed home page with a centered avatar, selectable text, and clickable blog tiles.
Refactor a Flutter blog app with provider, wrap the app, pass and read data types, and update the blog title across screens.
Learn to diagnose and fix common Flutter provider errors, including reading a provider from the wrong context, and use builder to expose a context that carries the provider data.
Explore refactoring Flutter apps with multi provider to merge multiple providers into a single list, reduce boilerplate, and improve readability while formatting blog post dates with the intl package.
Refactor the home page into a blog scaffold in Flutter using Provider state management, and build a blog page with avatar, selectable title, and date.
Refactor the project by creating a user model with profile picture and name, and use multi provider to share user and blog post data across the home and blog pages.
Discover how future providers in Flutter manage asynchronous data, showing loading and initial data, then success or error, with a string future feeding a child widget.
Configure firebase firestar in the flutter blog app by adding a web project, script tags, and cloud firestar package, then activate cloud firestar and create blogs collection with sample documents.
Refactor the blog project by adding a future provider to fetch blog posts from Firestar and map documents to blog post objects with a factory constructor.
Create a blog entry page in Flutter using a scaffolded floating action button to navigate from home, then add multi-line title and body text fields styled with text themes.
Create a blog post by capturing title and body via text editing controllers, mapping to a blog post map, and adding to the blogs collection in firestar, then navigate back.
Explore how a stream delivers asynchronous updates and how a stream provider exposes that live data to descendants, contrasting streams with futures using a Firestar database example.
Refactor the blog data layer from a future provider to a stream provider that streams blog posts from Firestore, newest-first, enabling automatic UI updates for add and delete.
Explore a blog post edit and delete workflow in a Flutter provider app, with a pop-up menu, action enum, blog entry navigation, and Firestore update and create handling.
Trigger a delete flow for a blog post by showing a material design dialog, asking for confirmation, and on success removing the post from Firebase Firestore and closing the dialog.
Enable Firebase authentication with email and password in a Flutter app, wire auth state through a stream provider, and show or hide UI elements based on login status.
Build a login dialog in Flutter using showDialog and an alert dialog, with email and password fields, controllers, Firebase authentication, closing on success, and show errors via a value notifier.
Learn how a value notifier stores a single value and drives updates in a counter app, using a value listenable builder to rebuild only the text when the value changes.
Use a value notifier and value listenable builder to show Firebase auth errors in a login dialog, map exceptions to messages, and prevent unnecessary calls with input validation.
Learn how to refactor with provider.value to pass updated values into a text error widget, ensuring efficient rebuilds and syncing with login logic.
Use provider.value inside a stateful widget to supply an already created counter model, avoiding redundant instantiation and sharing the model with child widgets.
Create a like button for blog posts in Flutter, placed in the blog list tile, and compare change notifier with value notifier for two-state like logic.
Discover how change notifier decouples state from the user interface to create cleaner, reusable code across screens, with easy testing and updates via notifyListeners.
Replace the counter app with a ChangeNotifierProvider, add a CounterNotifier, pass it to descendants, listen to it to update the counter on increment, and extend to a like button.
Refactor a like button using change notifier provider by creating a like notifier, exposing isLiked, toggling with notifyListeners, and wiring the UI with context to share state across pages.
Add a reusable like button to the blog page, wire it to a change notifier via provider's value constructor, and persist like state across article navigation.
Learn how to persist the like button status with a backend database, adding the is liked field, updating Firestore documents via a like notifier, and initializing state on page load.
Refactor the blog user provider into a proxy provider to create a blog user from a firebase user and login state, updating is logged in and profile data.
Build a simple merch store page with Flutter provider, modeling store items with name, image URL, and price, and connect them to the app using a provider.
This lecture shows how to display store items in a Flutter provider app using context.watch and explains a BuildContext extension to retrieve the items.
Create a responsive store grid using grid view count to render store items as item cards with network images, names, prices, and an add-to-cart button.
Create a responsive store grid by adjusting cross axis, main axis spacing, and aspect ratio, then style cards with borders and white background, and display prices with a dollar sign.
Create a checkout page by implementing a change notifier card notifier with provider, exposing cart items and rendering them in a list view with leading images and delete actions.
Implement a remove(item) method in the checkout notifier to delete a specific item and notify listeners via context.read() for performance, and compute the total price with fold for display.
Build a provider-based cart to add items to checkout using an add method and contains to track in-cart items. Disable buttons when items are in cart and consider rebuild optimizations.
Explore how to optimize rebuilds using the provider's consumer widget, exposing the provided value in context and rebuilding only the targeted button within an item card.
Discover how the selector in Flutter provider state management filters updates to prevent unnecessary rebuilds, using two data types and a boolean is in cart example to reduce boilerplate.
Discover how to optimize widget rebuilds using context.select in Flutter provider, implement selective data access, and explore three methods to minimize unnecessary rebuilds.
Compare Flutter provider rebuild strategies, highlighting consumer, selector, and select methods; learn when to filter a single value or broadcast updates to many widgets.
Finish your flutter blog web app by adding a shopping bag button that navigates to the store and then to checkout, using a single-expression function and pushNamed navigation.
Why provider?
There are tons of state management solutions out there. However, which one is the best?
There isn't.
It is like saying the best flavour of ice cream is chocolate. Some might disagree, and say it's strawberry. Others would suggest it's cookies and cream.
However, there is one flavour that you get started with, which is vanilla. Therefore, provider is the flavour that you should start, before you try the others.
Provider has been the state management the Flutter team used to describe, state management. This is because it is easy to understand. And currently, it is the most liked package.
Moreover, it is a building block for some state management as well such as flutter_bloc.
And the best way to learn providers, personally, is to create a real life projects with it. Not only you gain experience, you can add these projects into your portfolio.
You will learn
To create real life projects - You would build a responsive blog web app, and a dummy e-commerce web app (no Firebase or payment integration). This can build up your portfolio of projects under your belt.
How to use provider with Firebase - Many times in development, you have to combine your state management with 3rd party services like Firebase. This course will expose to you on how to do it.
Different Providers - Just like a toolbox, the Provider has different tools for different purposes. The MultiProvider is to combine all providers to one list. The FutureProvider and StreamProvider deals with asynchronous tasks. And these are common widgets, professionals used.
Optimisation of widgets - Fast and smooth apps are qualities of a great user experience. Luckily, you will learn how to build a lag free app. This is possible with Provider widgets: consumer and selector.
If you are looking for a State Management to start, this is for you.
Learning to control the data flow and how the data should react is vital to a user experience. Therefore, get the basics of state management using Provider to get started. This is for you:
Self-taught Developers
Computer Science/Engineering Students
Professional Developers
Mobile Freelancers
What's Inside
6+ Hours of Video Content
10 topics
11 Exercises
2 Projects
Lifetime updates