Riverpod is primarily used for managing application state. State refers to data that can change over time and affects the UI Consists of Providers that define how the state is created, shared and updated. Secondly, Consumers which are widgets that access state from providers, additionally they rebuild automatically when state changes
Provider creates an object as a state and allows widgets to listen to it. Create from one place and access from multiple locations from the widget tree. Optimizes performance by filtering widget rebuilds or caching expensive state computations Makes code testable since providers can be overridden to behave differently during tests
