Flutter Gems is a curated list of 6000+ useful Dart & Flutter packages that are categorized based on functionality.
Top Flutter Dependency Injection and State Management packages
Last updated: November 15, 2024
State management refers to the process of managing the data or state of an application. In other words, it's about keeping track of the various pieces of data that are used by an application and ensuring that they are consistent and up-to-date. State management is an important aspect of building a scalable and maintainable application, as it helps to ensure that the different parts of the application are working together in a predictable and consistent way.
Dependency injection, on the other hand, is a design pattern that is used to create loosely coupled software components. In dependency injection, the dependencies of a particular component (such as a class or function) are passed in to the component from the outside, rather than being created or managed internally. This allows the component to be more easily tested and reused in different contexts, and makes it easier to manage the relationships between different components in an application.
While state management and dependency injection are separate concepts, they can be used together to build scalable and maintainable applications. For example, a state management system can be used to manage the data or state of an application, while dependency injection can be used to create loosely coupled components that can interact with the state management system.
The complete list of Flutter Dependency Injection and State Management packages is provided below.
provider
Dart 3 compatible 👍 10.36K
Maintenance Status: Good
A wrapper around InheritedWidget to make them easier to use and more reusable.
flutter_bloc
Dart 3 compatible 👍 7.29K
Maintenance Status: Good
Flutter Widgets that make it easy to implement the BLoC (Business Logic Component) design pattern. Built to be used with the bloc state management package.
get_it
Dart 3 compatible 👍 4.25K
Maintenance Status: Good
Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App"
riverpod
Dart 3 compatible 👍 3.43K
Maintenance Status: Good
A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
bloc
Dart 3 compatible 👍 2.9K
Maintenance Status: Good
A predictable state management library that helps implement the BLoC (Business Logic Component) design pattern.
rxdart
Dart 3 compatible 👍 2.64K
Maintenance Status: Good
RxDart is an implementation of the popular ReactiveX api for asynchronous programming, leveraging the native Dart Streams api.
flutter_riverpod
Dart 3 compatible 👍 2.49K
Maintenance Status: Good
A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
injectable
Dart 3 compatible 👍 1.28K
Maintenance Status: Good
Injectable is a convenient code generator for get_it. Inspired by Angular DI, Guice DI and inject.dart.
mobx
Dart 3 compatible 👍 1.25K
Maintenance Status: Good
MobX is a library for reactively managing the state of your applications. Use the power of observables, actions, and reactions to supercharge your Dart and Flutter apps.
hooks_riverpod
Dart 3 compatible 👍 857
Maintenance Status: Good
A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
hydrated_bloc
Dart 3 compatible 👍 840
Maintenance Status: Good
An extension to the bloc state management library which automatically persists and restores bloc states.
flutter_mobx
Dart 3 compatible 👍 681
Maintenance Status: Good
Flutter integration for MobX. It provides a set of Observer widgets that automatically rebuild when the tracked observables change.
event_bus
Dart 3 compatible 👍 655
Maintenance Status: Good
A simple Event Bus using Dart Streams for decoupling applications
bloc_test
Dart 3 compatible 👍 597
Maintenance Status: Good
A testing library which makes it easy to test blocs. Built to be used with the bloc state management package.
bloc_concurrency
Dart 3 compatible 👍 492
Maintenance Status: Good
Custom event transformers inspired by ember concurrency. Built to be used with the bloc state management package.
signals
Dart 3 compatible 👍 432
Maintenance Status: Good
Reactivity made simple. Do more by doing less. Supports Flutter and any Dart project including HTML/JS, CLI, Shelf Server, VM and more.
states_rebuilder
Dart 3 compatible 👍 402
Maintenance Status: Good
a simple yet powerful state management technique for Flutter
flutter_data
Dart 3 compatible 👍 359
Maintenance Status: Good
The seamless way to work with persistent data models in Flutter. Inspired by Ember Data and ActiveRecord.
mobx_codegen
Dart 3 compatible 👍 292
Maintenance Status: Good
Code generator for MobX that adds support for annotating your code with @observable, @computed, @action and also creating Store classes.
replay_bloc
Dart 3 compatible 👍 171
Maintenance Status: Good
An extension to the bloc state management library which adds support for undo and redo.
kiwi
Dart 3 compatible 👍 161
Maintenance Status: Good
A simple yet efficient dependency injection container for Dart and Flutter (can be coupled with the kiwi_generator package).
async_redux
Dart 3 compatible 👍 152
Maintenance Status: Good
The modern version of Redux. State management that's simple to learn and easy to use; Powerful enough to handle complex applications with millions of users; Testable.
watch_it
Dart 3 compatible 👍 134
Maintenance Status: Good
The simple state management powered by get_it. It allows to observe changes of objects inside the get_it service locator and rebuild the UI accordingly.
riverbloc
Dart 3 compatible 👍 106
Maintenance Status: Good
BlocProvider implementation with riverpod as alternative to provider, similar to StateNotifierProvider
auto_injector
Dart 3 compatible 👍 93
Maintenance Status: Good
Automatic Dependency Injection System, but without build_runner
asp
Dart 3 compatible 👍 90
Maintenance Status: Good
ASP (Atomic State Pattern) offers a simplified, Predictable and Powerful State Management for Flutter.
hooked_bloc
Dart 3 compatible 👍 84
Maintenance Status: Good
Flutter package that simplifies injection and usage of Bloc/Cubit.
flutter_getit
Dart 3 compatible 👍 82
Maintenance Status: Good
Integrating with 'get_it,' it efficiently manages Flutter project dependencies, providing robust page control, route management, and module flexibility
june
Dart 3 compatible 👍 75
Maintenance Status: Good
June is a lightweight and modern state management library that focuses on providing a pattern very similar to Flutter's native state management.
flutter_command
Dart 3 compatible 👍 74
Maintenance Status: Good
flutter_command is a way to manage your state based on 'ValueListenable' and the 'Command' design pattern.
functional_listener
Dart 3 compatible 👍 64
Maintenance Status: Good
An rx like extension methods on ValueListenable type, that lets you work with ValueNotifiers almost like with Streams
observable_ish
Dart 3 compatible 👍 63
Maintenance Status: Good
Write elegant reactive cross-platform client side application using observable states and event emitters.
app_state
Dart 3 compatible 👍 62
Maintenance Status: Good
A state management solution on top of Router API for larger apps.
solidart
Dart 3 compatible 👍 60
Maintenance Status: Good
A simple State Management solution for Dart applications inspired by SolidJS
injector
Dart 3 compatible 👍 57
Maintenance Status: Good
injector is a simple to use and lightweight dependency injection library for dart
fquery
Dart 3 compatible 👍 56
Maintenance Status: Good
fquery is a powerful async state management solution for Flutter. It caches, updates, and fully manages asynchronous data in your Flutter apps.
property_change_notifier
Dart 3 compatible 👍 55
Maintenance Status: Good
A drop-in replacement for ChangeNotifier for observing only certain properties of a model.
flutter_solidart
Dart 3 compatible 👍 55
Maintenance Status: Good
A simple State Management solution for Flutter applications inspired by SolidJS
rx_bloc
Dart 3 compatible 👍 52
Maintenance Status: Good
A Flutter package that helps implementing the BLoC (Business Logic Component) Design Pattern using the power of reactive streams.
reactter
Dart 3 compatible 👍 49
Maintenance Status: Good
A light, powerful and quick Reactive State Management, Dependency Injection and Event Handler.
flutter_onlooker
Dart 3 compatible 👍 49
Maintenance Status: Good
A state management library that provides a simple solution for updating state and navigation.
rearch
Dart 3 compatible 👍 41
Maintenance Status: Good
A re-imagined declarative approach to application design and architecture
flutter_rx_bloc
Dart 3 compatible 👍 40
Maintenance Status: Good
Set of Flutter Widgets that help implementing the BLoC design pattern. Built to be used with the rx_bloc package.
flutter_reactter
Dart 3 compatible 👍 38
Maintenance Status: Good
A light, powerful and quick Reactive State Management, Dependency Injection and Event Handler.
flutter_hooks_bloc
Dart 3 compatible 👍 34
Maintenance Status: Good
A flutter_bloc reimplementation based on flutter_hooks with the same API.
fl_query
Dart 3 compatible 👍 34
Maintenance Status: Good
Asynchronous data caching, refetching & invalidation library for Flutter
after_init
Dart 3 compatible 👍 33
Maintenance Status: Good
Adds a didInitState() lifecycle method to stateful widgets where you can safely access inherited widgets.
state_beacon
Dart 3 compatible 👍 31
Maintenance Status: Good
A reactive primitive and simple state managerment solution for dart and flutter
meedu
Dart 3 compatible 👍 28
Maintenance Status: Good
A simple State Managment, Dependency Injection, Reactive programming for dart Projects.
rx_bloc_cli
Dart 3 compatible 👍 26
Maintenance Status: Good
rx_bloc_cli that enables quick project setup including: flavors, localization [intl], state management [rx_bloc], routing [go_router], design system, analytics [firebase], tests
lite_ref
Dart 3 compatible 👍 21
Maintenance Status: Good
A lightweight dependency injection package with support for overriding for testing.
velocity_bloc
Dart 3 compatible 👍 20
Maintenance Status: Good
Minimalist and Easy State Management for Bloc Inspired from Dart Generics.
flutter_control
Dart 3 compatible 👍 20
Maintenance Status: Good
Flutter Control is complex library to maintain App and State management, Dependency Injection, Navigation with Routing, Localization and more..
bloc_tools
Dart 3 compatible 👍 17
Maintenance Status: Good
Tools for building applications using the bloc state management library.
provider_for_redux
Dart 3 compatible 👍 16
Maintenance Status: Good
Lets you use Provider with Redux. Uses AsyncRedux, the non-boilerplate version of Redux.
inherited_state
Dart 3 compatible 👍 15
Maintenance Status: Good
Simple and clean state management backed by InheritedWidget and DI backed by the service locator pattern.
grab
Dart 3 compatible 👍 14
Maintenance Status: Good
A Flutter package with extension methods on Listenable / ValueListenable as an alternative to AnimatedBuilder, ListenableBuilder and ValueListenableBuilder.
built_redux
Dart 3 compatible 👍 9
Maintenance Status: Good
A state management library written in dart that enforces immutability
api_bloc
Dart 3 compatible 👍 9
Maintenance Status: Good
Flutter widgets that simplify the BLoC pattern implementation for REST APIs within an MVC architecture, significantly reducing boilerplate code.
multi_bloc_builder
Dart 3 compatible 👍 8
Maintenance Status: Good
A Flutter package that provides a widget to listen to multiple blocs and rebuilds the widget when any of the blocs emit a new state.
flutter_rearch
Dart 3 compatible 👍 8
Maintenance Status: Good
A re-imagined declarative approach to application design and architecture
lite_state
Dart 3 compatible 👍 7
Maintenance Status: Good
A simple state management machine for Flutter.
easy_event_bus
Dart 3 compatible 👍 7
Maintenance Status: Good
It's an easy-to-use and elegant event bus-based library.
karee
Dart 3 compatible 👍 6
Maintenance Status: Good
Another way to build Flutter applications for mobile, web and desktop using Karee Architecture.
flutter_bloc_patterns
Dart 3 compatible 👍 6
Maintenance Status: Good
A set of most common BLoC use cases build on top of flutter_bloc library.
simple_architecture
Dart 3 compatible 👍 5
Maintenance Status: Good
Simple Architecture for Flutter apps with Dependency Injection, Mediator Pattern and Observable Streams
pot
Dart 3 compatible 👍 5
Maintenance Status: Good
An easy and safe DI (Dependency Injection) solution for Dart with support for scoping.
depend
Dart 3 compatible 👍 5
Maintenance Status: Good
Dependencies is a library for managing dependencies in Flutter applications. It provides a convenient way to initialize and access services or repositories via an InheritedWidget.
flutter_bloc_pattern
Dart 3 compatible 👍 4
Maintenance Status: Good
Bloc provider. Provides bloc to descendant widget (O(1)), and the bloc is disposed appropriately by state which the bloc_provider holds internally.
multi_value_listenable
Dart 3 compatible 👍 3
Maintenance Status: Good
A package that provides a MultiValueListenable class that allows you to listen to multiple ValueListenable, ValueNotifier objects at once.
flutter_state_management
Dart 3 compatible 👍 3
Maintenance Status: Good
A collection of helper classes to make the use of ChangeNotifier easier for state management
mu_state
Dart 3 compatible 👍 2
Maintenance Status: Good
A set of helpers for pragmatic state handling as mentioned in my Medium article.
state_notifier
Dart 3 compatible 👍 315
Maintenance Status: Average
ValueNotifier, but outside Flutter and with some extra perks
get_it_mixin
Dart 3 compatible 👍 137
Maintenance Status: Average
mixin on Stateless- and StatefulWidgts that makes binding the Widget to Objects stored in GetIt easier.
flutter_triple
Dart 3 compatible 👍 123
Maintenance Status: Average
Implementation of the Segmented State Pattern (SSP) nicknamed Triple.
ioc_container
Dart 3 compatible 👍 85
Maintenance Status: Average
A lightweight, flexible, and high-performance dependency injection and service location library for Dart and Flutter
rx_notifier
Dart 3 compatible 👍 81
Maintenance Status: Average
Extension to ValueNotifier by transparently applying functional reactive programming (TFRP)
isolator
Dart 3 compatible 👍 70
Maintenance Status: Average
Isolator is a package, which offer to you a simple way for creating two-component states with isolated part and frontend part of any kind - BLoC, MobX, ChangeNotifier and others
creator
Dart 3 compatible 👍 67
Maintenance Status: Average
A state management library that enables concise, fluid, readable and testable business logic code.
bloc_presentation
Dart 3 compatible 👍 58
Maintenance Status: Average
Extends blocs with an additional stream which can serve as a way of indicating single-time events (so-called "presentation events").
triple
Dart 3 compatible 👍 55
Maintenance Status: Average
Abstraction for the Segmented State Pattern. Use to create Triple Store.
flutter_state_notifier
Dart 3 compatible 👍 54
Maintenance Status: Average
Flutter bindings for state_notifier, such as StateNotifierProvider and StateNotifierBuilder
statemachine
Dart 3 compatible 👍 46
Maintenance Status: Average
A simple, yet powerful state machine framework for Dart supporting Flutter and web apps.
comms
Dart 3 compatible 👍 41
Maintenance Status: Average
Simple communication pattern abstraction on streams, created for communication between logic classes.
mvvm_plus
Dart 3 compatible 👍 40
Maintenance Status: Average
MVVM+ is a lightweight Flutter implementation of MVVM, plus a locator for sharing states via a global registry (like GetIt) or inherited widgets (like Provider).
reduced
Dart 3 compatible 👍 39
Maintenance Status: Average
Unified facade for the basic features of state management frameworks.
state_machine
Dart 3 compatible 👍 37
Maintenance Status: Average
Finite state machine library. Easily define legal state transitions. Listen to state entrances, departures, and transitions.
angular_bloc
Dart 3 compatible 👍 37
Maintenance Status: Average
Angular Components that make it easy to implement the BLoC (Business Logic Component) design pattern. Built to be used with the bloc state management package.
injecteo
Dart 3 compatible 👍 32
Maintenance Status: Average
Service locator for IoC pattern. Export annotations and abstract classes used by injecteo_generator.
redux_saga
Dart 3 compatible 👍 31
Maintenance Status: Average
redux_saga is a library that aims to make application side effects easier to manage, more efficient to execute, easy to test, and better at handling failures.
redux_logging
Dart 3 compatible 👍 29
Maintenance Status: Average
Redux.dart Middleware that prints the latest action & state
flutter_comms
Dart 3 compatible 👍 24
Maintenance Status: Average
Simple communication pattern abstraction on streams, created for communication between logic classes and or widgets.
stateful_props
Dart 3 compatible 👍 21
Maintenance Status: Average
Provides a simple way to re-use behaviors across StatefulWidgets. Improves readability and robustness of your components.
solace_flowz
Dart 3 compatible 👍 20
Maintenance Status: Average
state management package built on top of InheritedWidget, that aims to simplify the state managementm work for flutter developers and perofrm the task using the minimal resources .
toor
Dart 3 compatible 👍 9
Maintenance Status: Average
Compile-time safe and easy to manage service locators.
dash
Dart 3 compatible 👍 9
Maintenance Status: Average
Dash library is responsible to offer a service locator pattern that cares about provide and dispose blocs.
phased
Dart 3 compatible 👍 5
Maintenance Status: Average
Simplified state management focused on animations
kfx_dependency_injection
Dart 3 compatible 👍 5
Maintenance Status: Average
Flutter Dependency Injection library based on dotnet ServiceProvider
pulse_x
Dart 3 compatible 👍 4
Maintenance Status: Average
Pulse X is the mini state management. It has four features - state management, context-less routing, dependency injection & reaction (side effects)
hydrated_triple
Dart 3 compatible 👍 0
Maintenance Status: Average
A mixin which automatically persists and restores store state.
flutter_redux
Dart 3 compatible 👍 547
Maintenance Status: Poor
A set of utility Widgets that Provide and Connect to a Redux Store
redux
Dart 3 compatible 👍 394
Maintenance Status: Poor
Redux is a predictable state container for Dart and Flutter apps
scoped_model
Dart 3 compatible 👍 280
Maintenance Status: Poor
A Widget that passes a Reactive Model to all of it's children
momentum
Dart 3 compatible 👍 97
Maintenance Status: Poor
MVC pattern for flutter. Works as state management, dependency injection and service locator.
bloc_pattern
Dart 3 compatible 👍 97
Maintenance Status: Poor
Just a package with bases to deploy the BloC your code. Modules, Consumers And BLoC!
pmvvm
Dart 3 compatible 👍 72
Maintenance Status: Poor
A clean & simple MVVM solution for state management using Provider package.
flutter_simple_dependency_injection
Dart 3 compatible 👍 71
Maintenance Status: Poor
A super simple dependency injection implementation for flutter that behaves like any normal IOC container and does not rely on mirrors
binder
Dart 3 compatible 👍 68
Maintenance Status: Poor
A lightweight, yet powerful way to bind your application state with your business logic.
redux_thunk
Dart 3 compatible 👍 65
Maintenance Status: Poor
A Redux.dart Middleware that allows you to dispatch functions that perform async work as actions.
state_persistence
Dart 3 compatible 👍 63
Maintenance Status: Poor
Persist state across app launches. By default this library store state as a local JSON file called 'data.json' in the applications data directory.
fbroadcast
Dart 3 compatible 👍 48
Maintenance Status: Poor
FBroadcast Help developers build an efficient broadcast system in the application.
isolate_bloc
Dart 3 compatible 👍 44
Maintenance Status: Poor
A dart package that helps implement the BLoC pattern. BLoC works in Isolate and don't slow down UI.
cubes
Dart 3 compatible 👍 40
Maintenance Status: Poor
Simple State Manager (Focusing on simplicity and rebuilding only the necessary)
redux_epics
Dart 3 compatible 👍 38
Maintenance Status: Poor
A redux.dart Middleware that helps you perform side effects using Streams
mvvm
Dart 3 compatible 👍 37
Maintenance Status: Poor
A Flutter MVVM. It uses property-based data binding to establish a connection between the ViewModel and the View, and drives the View changes through the ViewModel.
stream_bloc
Dart 3 compatible 👍 36
Maintenance Status: Poor
Modern implementation of the Original BLoC that uses asynchronous generators to describe relationships between events and states.
stateless
Dart 3 compatible 👍 34
Maintenance Status: Poor
A stateless stateful state management package that is not stateless.
rx_future
Dart 3 compatible 👍 33
Maintenance Status: Poor
introducing a new type in getx called RxFuture to listen to future state.
vxstate
Dart 3 compatible 👍 32
Maintenance Status: Poor
VxState is an another state management solution for flutter. It is highly inspired from Redux & VueX.
hydrated
Dart 3 compatible 👍 28
Maintenance Status: Poor
An automatically persisted BehaviorSubject with simple hydration for Flutter. Intended to be used with the BLoC pattern.
bloc_provider
Dart 3 compatible 👍 24
Maintenance Status: Poor
Provides bloc to descendant widget (O(1)), and the bloc is disposed appropriately by state which the bloc_provider holds internally.
generic_bloc_provider
Dart 3 compatible 👍 22
Maintenance Status: Poor
A generic BloC Provider for your Flutter apps. This package will help you avoid the boilerplate of writing BloC Providers.
redux_persist_flutter
Dart 3 compatible 👍 21
Maintenance Status: Poor
Redux Persist Flutter Integration with custom storage engines
observable
Dart 3 compatible 👍 21
Maintenance Status: Poor
Support for marking objects as observable
rx_redux
Dart 3 compatible 👍 20
Maintenance Status: Poor
Redux implementation based on Dart Stream, with the power of RxDart. Reactive redux store for Dart & Flutter.
mvvm_architecture
Dart 3 compatible 👍 20
Maintenance Status: Poor
The goal behind is to move as much of the state and logic from the ViewState into a separate entity called the ViewModel.
reselect
Dart 3 compatible 👍 19
Maintenance Status: Poor
Efficiently derive data from your Redux Store
rebloc
Dart 3 compatible 👍 16
Maintenance Status: Poor
A state management library for Flutter that combines aspects of Redux and BLoC. Rebloc uses streams and BLoCs to compose middleware and reducers.
flutter_redux_navigation
Dart 3 compatible 👍 13
Maintenance Status: Poor
A simple reactive navigation middleware for Flutter's redux library.
alt_bloc
Dart 3 compatible 👍 12
Maintenance Status: Poor
A library that provides components for more easier and boilerplate implementation of the BLoC architecture pattern.
fountain
Dart 3 compatible 👍 10
Maintenance Status: Poor
The modular state management solution for flutter.
stream_mixin
Dart 3 compatible 👍 6
Maintenance Status: Poor
State management using stream to avoid use of flutter's State/setState/StatefulWidget, boosting the performance and code separation.
disposable_provider
Dart 3 compatible 👍 5
Maintenance Status: Poor
DisposableProvider is thin wrapper of Provider and it calls dispose automatically.
hydro
Dart 3 compatible 👍 4
Maintenance Status: Poor
A simple, fast state management & service container solution for Flutter, without acrobatics.
state_queue
Dart 3 compatible 👍 2
Maintenance Status: Poor
A BLoC implementation for sequentially executed async state updates.
karee_core
Dart 3 compatible 👍 1
Maintenance Status: Poor
Karee core files, Karee core represents a set of amazing libraries, that work together to offer very powerful MVC experience in Flutter App Development
beyond_helpers
Dart 3 compatible 👍 1
Maintenance Status: Poor
Utilities for implementing beyond architecture patterns
with_bloc
Dart 3 compatible 👍 0
Maintenance Status: Poor
A widget to create and manage BLoCs implemented on top of ValueNotifier, such as StateQueue.
fish_redux
👍 67
Maintenance Status: Good
Fish Redux is an assembled flutter application framework based on Redux state management.
query_stack
👍 9
Maintenance Status: Average
Powerful, yet simple, asynchronous state management for Flutter
fast_mvvm
👍 1
Maintenance Status: Average
Implemented using the MVVM architecture, quickly build projects to help consumers focus only on the business implementation
koin
👍 59
Maintenance Status: Poor
A pragmatic lightweight dependency injection framework for Dart projects.
universal_widget
👍 52
Maintenance Status: Poor
A universal widget that can be placed anywhere in your widget tree, with full support of animation & accessibility.
dart_notification_center
👍 31
Maintenance Status: Poor
A wrapper for the observer pattern for Dart in the style of the iOS Notification Center.
livestream
👍 30
Maintenance Status: Poor
LiveStream is a simple class which makes communication easy among different modules of your application.
flutter_bloc_devtools
👍 27
Maintenance Status: Poor
Remote DevTools for flutter_bloc. This package connects all Bloc to the Remote Devtools Server, allowing the developer to inspect changes to the Blocs during runtime.
flutter_mobx_helpers
👍 18
Maintenance Status: Poor
A set of tools for MobX that helps you with common processes making everything easier.
mobx_provider
👍 14
Maintenance Status: Poor
package for binding the UI with your stores (viewmodels) easily , the package is inspired by filled stacks archticture pattern
flutter_flux
👍 9
Maintenance Status: Poor
Flux library for Flutter, featuring unidirectional dataflow inspired by reflux and Facebook's flux architecture.
dartin
👍 8
Maintenance Status: Poor
A pragmatic lightweight dependency injection framework for Flutter developers.