Section Intro
In this section we’ll build a complex shopping cart feature, expanding on these topics:
- app architecture
- state management with Riverpod
- testing
And since this is a complex feature, we will spend some time understanding the requirements. And then we’ll come up with a high level design of the various classes that will help us satisfy those requirements.
As we make progress, we’ll talk about service classes and the application layer, which is also covered in detail in this article:
We will also cover new concepts, including:
- how to use the Sembast package for persistent local storage
- how to use provider overrides to choose between repositories that have the same base abstract class
- how to write and test Dart classes using the Riverpod
ref
object - how to use
ProviderContainer
, andUncontrolledProviderScope
- how to do transform streams and compute values inside a provider