
Install and use flutter_riverpod to build Riverpod-based Flutter apps. Explore optional tools like riverpod_lint and code generation with riverpod_annotation, build_runner, and riverpod_generator, and manage state with ProviderScope and ProviderContainer.
Discover how the freezed package creates data classes with code generation, leverages json_serializable for json conversion, and adapts to Dart 3's pattern matching and sealed class changes.
Learn to combine freezed with json_serializable for robust model serialization in Flutter, building Hotel and Review models with optional fields, snake_case to camelCase mapping, and a fetchHotels example.
Build a hotel list UI in Flutter with a HotelListPage StatefulWidget that uses setState to fetch hotels, shows a loading indicator, and renders a ListView.separated of hotel items with reviews.
Learn how riverpod's provider pattern supplies values to widgets, derives computed state like completed todos, and uses overrides for development and asynchronous initialization, with starter code for apps.
Set up a Flutter Riverpod app skeleton with provider modifiers (no modifier, autoDispose, family, autoDispose+family), configure dependencies and lint rules, and create a multi-page UI to test each provider.
Learn how to automatically dispose providers with autoDispose, implement onDispose logging, and convert a page to a consumer widget to read and display provider values via ref.watch.
Learn how to pass multiple parameters to Riverpod family providers by using objects with overridden hashCode and equality, and use equatable or freezed to ensure correct provider disposal.
Explore how the flutter riverpod snippets extension for vscode speeds provider creation with ready-made templates. Learn to use riverpod_generator for code generation and the snippets to support manual provider creation.
Explore state provider usage for simple primitive state in flutter riverpod, its app skeleton, and contrast with notifier provider for complex logic, including ref.watch, ref.read, and ref.listen.
Compute derived state with a StateProvider by watching a counterProvider and returning a string like 'Hi, I am $age years old.' Explore ref.watch over ref.read and code generation notes.
Explore how autoDispose and ref.keepAlive enable flexible caching for FutureProvider, keeping data alive across page navigation while handling failed requests and provider lifecycle.
build a counter UI with a NotifierProvider, explore autoDispose and family modifiers, test disposal and state reset, and simplify with riverpod_generator and riverpod_annotation.
Learn how enum and sealed state fetch remote data with notifiers and why initialization should be synchronous. Compare initState with async initialization in AsyncNotifier and the role of AsyncValue.
Refactor sealed activity to sealed async activity, update provider and state names, and print constructors and initialization traces; discuss asynchronous initialization with AsyncNotifier in Riverpod.
Explore the methods of AsyncValue and AsyncValueX, including when, mayBeWhen, whenOrNull, copyWithPrevious, and how skipLoadingOnReload, skipLoadingOnRefresh, and skipError shape data, loading, and error states.
Watch how a weather fetch sequence in Riverpod updates state from async loading to async data or async error across cities, illustrating isLoading, isReloading, hasValue, hasError, value, and error handling.
Learn to split a weather feature into cityProvider and weatherSecondProvider using Riverpod NotifierProvider and FutureProvider, test with ref.watch, handle AsyncValue states, and manage selective rebuilds via ref.invalidate.
Explore RealPath 3 with a hands-on, 14-app curriculum that compares legacy and mutational approaches, covers offline persistence with SQLite and shared preferences, and builds reliability, generic support, and testing skills.
Configure static analysis with analysis-options.yml for RiverPod 3, add flutter lint and RiverPod lint, and exclude build and tool folders to prevent errors and streamline refactoring.
Welcome to the [Flutter Riverpod Essential] course, the most in-depth exploration of Riverpod—the standard for state management in Flutter.
This comprehensive course covers everything from the solid fundamentals of Riverpod 2 to the groundbreaking changes in the recently released Riverpod 3. We don’t just list theories. We adopt a “iterative, hands-on” approach, building small apps to test new concepts as they arise and internalizing them through large-scale, real-world projects.
In addition to the existing 19-hour, meticulously designed curriculum, this course now includes a new 5.5-hour [Riverpod 3 Masterclass] section. Now, master both the legacy of the past and the standard of the future in a single course.
What Makes This Course Special: [NEW] Riverpod 3 Masterclass (5.5 hours added)
In the newly updated Riverpod 3 sections, you’ll master Riverpod 3’s evolution into a data synchronization framework through a 10-step roadmap and 14 dedicated hands-on apps.
Implement 14 Dedicated Hands-On Apps: Directly compare Legacy (v2) and Modern (v3) approaches to gain a practical understanding of their structural differences.
Learn Innovative Features: Gain in-depth coverage of Mutation, the standard for asynchronous data changes, and Persistence, native offline support.
Practical Reliability: Get a complete guide to Automatic Retry, error prevention via `ref.mounted`, Generic Support, and end-to-end testing using enhanced Testing Utilities.
Curriculum Details
1. Fundamentals and Modern Data Management
Dart Data Class: Efficient data modeling using the Data Class Generator and the Freezed package
All Providers: Mastering all providers, from Provider to Notifier, AsyncNotifier, and StreamNotifier
All Modifiers: How to use autoDispose, family, and combinations
2. Advanced Control and Optimization
AsyncValue Deep Dive: Utilizing various properties and extension methods frequently used in real-world projects
Lifecycle & Scoping: Customizing provider lifecycles and scoping techniques for performance optimization
Riverpod Lint: Utilizing a powerful tool to prevent developer errors and boost productivity
3. Real-World Architecture and Library Integration
Pagination: Complete Implementation of Numbered Pagination and Infinite Scroll
Navigation: Examples of Seamless Integration Between Riverpod and GoRouter
Comprehensive Hands-On Projects (The Essence of Repetitive Learning)
We repeat the process until you fully master the concepts.
TODO App (Implemented 5 times total): Sync/Async, Enum/Sealed Class, AsyncValue, Hive Persistence
Weather App (Implemented 4 times total): AsyncValue, Pattern Matching, Geolocator Integration
Firebase Auth: Sign-up, Login, Email Verification, Password Change, etc.
Who is this course for?
Those who are new to Riverpod but want to learn it “properly,” from the basics to a practical level
Those currently using Riverpod 2 but want to immediately incorporate the latest changes in Riverpod 3 into their projects
Those who want to understand the practical aspects of persistence and mutations, which aren’t fully covered in the documentation
Those who want to understand the philosophy behind state management, rather than just copying code
What You’ll Achieve
By the time you finish this course, you’ll have moved beyond being a developer who simply uses state management libraries to become a senior-level developer with a deep understanding of modern data synchronization paradigms. After this 25-hour journey, your code will be simpler and your apps will be more robust.