Shoppe is a Flutter demo app built to explore and experiment with the latest Riverpod 3.0 features — including Notifier, NotifierProvider, and offline persistence.
It demonstrates how to apply the newest Riverpod architecture patterns to a real-world e-commerce layout.
Shoppe is a modular Flutter application that showcases the structure of a modern app powered by Riverpod 3.0.
The app simulates an online shopping experience and focuses on exploring state management using the newest Riverpod APIs and migration concepts.
The goal of this project is to:
- Understand the new unified provider system in Riverpod 3.0
- Replace legacy providers like
StateNotifierProviderandChangeNotifierProviderwith the newNotifier/AsyncNotifierAPIs - Experiment with offline state persistence in Riverpod
- Test lifecycle improvements like pausing providers, delayed disposal, and Ref.mounted checks
- Build a scalable and modular architecture suitable for production apps
| Module | Description |
|---|---|
🛒 cart |
Manage user cart items using Riverpod NotifierProvider. |
🎟️ coupons |
Apply and validate discount coupons. |
🔐 login / register / reset_pass / forgot_password / otp |
Authentication flow built with modern provider patterns. |
🏠 home / layout |
Main layout and home screen navigation. |
📦 product_details |
Product view and detail management using async providers. |
👤 profile |
User profile data with offline persistence. |
🧾 orders |
Order list and tracking implementation. |
⭐ reviews |
Review and rating system. |
🌅 onboarding / start |
Clean onboarding and app start logic. |
- Flutter — latest stable version
- Riverpod 3.0 — for state management
- Dio / retrofit — for networking
- Freezed & JsonSerializable — for immutable models and serialization
| Experiment | Description |
|---|---|
🧱 Notifier & NotifierProvider |
Replaced legacy providers to use the new unified API. |
| 💾 Offline persistence | Cached provider states and restored them on app restart. |
| 🕓 Provider lifecycle | Tested pausing and delayed disposal behavior. |
🧩 @riverpod code generation |
Used riverpod_generator for cleaner provider syntax. |
| 🧍 Ref safety | Implemented ref.mounted checks in async operations. |