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: May 12, 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 👍 9.79K
Maintenance Status: Good
A wrapper around InheritedWidget to make them easier to use and more reusable.
flutter_bloc
Dart 3 compatible 👍 6.7K
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 👍 3.92K
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.19K
Maintenance Status: Good
A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
bloc
Dart 3 compatible 👍 2.72K
Maintenance Status: Good
A predictable state management library that helps implement the BLoC (Business Logic Component) design pattern.
flutter_riverpod
Dart 3 compatible 👍 2.27K
Maintenance Status: Good
A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
mobx
Dart 3 compatible 👍 1.21K
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.
injectable
Dart 3 compatible 👍 1.17K
Maintenance Status: Good
Injectable is a convenient code generator for get_it. Inspired by Angular DI, Guice DI and inject.dart.
hooks_riverpod
Dart 3 compatible 👍 796
Maintenance Status: Good
A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
hydrated_bloc
Dart 3 compatible 👍 763
Maintenance Status: Good
An extension to the bloc state management library which automatically persists and restores bloc states.
flutter_mobx
Dart 3 compatible 👍 651
Maintenance Status: Good
Flutter integration for MobX. It provides a set of Observer widgets that automatically rebuild when the tracked observables change.
bloc_test
Dart 3 compatible 👍 562
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 👍 433
Maintenance Status: Good
Custom event transformers inspired by ember concurrency. Built to be used with the bloc state management package.
states_rebuilder
Dart 3 compatible 👍 394
Maintenance Status: Good
a simple yet powerful state management technique for Flutter
flutter_data
Dart 3 compatible 👍 347
Maintenance Status: Good
The seamless way to work with persistent data models in Flutter. Inspired by Ember Data and ActiveRecord.
signals
Dart 3 compatible 👍 344
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.
state_notifier
Dart 3 compatible 👍 301
Maintenance Status: Good
ValueNotifier, but outside Flutter and with some extra perks
mobx_codegen
Dart 3 compatible 👍 285
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 👍 160
Maintenance Status: Good
An extension to the bloc state management library which adds support for undo and redo.
kiwi
Dart 3 compatible 👍 154
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 👍 145
Maintenance Status: Good
Redux state management. An optimized Redux version, which is very easy to learn and use, yet powerful and tailored for Flutter. It allows both sync and async reducers.
get_it_mixin
Dart 3 compatible 👍 136
Maintenance Status: Good
mixin on Stateless- and StatefulWidgts that makes binding the Widget to Objects stored in GetIt easier.
flutter_triple
Dart 3 compatible 👍 121
Maintenance Status: Good
Implementation of the Segmented State Pattern (SSP) nicknamed Triple.
watch_it
Dart 3 compatible 👍 102
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 👍 97
Maintenance Status: Good
BlocProvider implementation with riverpod as alternative to provider, similar to StateNotifierProvider
asp
Dart 3 compatible 👍 85
Maintenance Status: Good
ASP (Atomic State Pattern) is a extension to ValueNotifier by transparently applying functional reactive programming (TFRP)
auto_injector
Dart 3 compatible 👍 84
Maintenance Status: Good
Automatic Dependency Injection System, but without build_runner
rx_notifier
Dart 3 compatible 👍 82
Maintenance Status: Good
Extension to ValueNotifier by transparently applying functional reactive programming (TFRP)
hooked_bloc
Dart 3 compatible 👍 80
Maintenance Status: Good
Flutter package that simplifies injection and usage of Bloc/Cubit.
flutter_getit
Dart 3 compatible 👍 75
Maintenance Status: Good
Integrating with 'get_it,' it efficiently manages Flutter project dependencies, providing robust page control, route management, and module flexibility
flutter_command
Dart 3 compatible 👍 69
Maintenance Status: Good
flutter_command is a way to manage your state based on 'ValueListenable' and the 'Command' design pattern.
creator
Dart 3 compatible 👍 65
Maintenance Status: Good
A state management library that enables concise, fluid, readable and testable business logic code.
app_state
Dart 3 compatible 👍 59
Maintenance Status: Good
A state management solution on top of Router API for larger apps.
triple
Dart 3 compatible 👍 55
Maintenance Status: Good
Abstraction for the Segmented State Pattern. Use to create Triple Store.
injector
Dart 3 compatible 👍 54
Maintenance Status: Good
injector is a simple to use and lightweight dependency injection library for dart
flutter_state_notifier
Dart 3 compatible 👍 52
Maintenance Status: Good
Flutter bindings for state_notifier, such as StateNotifierProvider and StateNotifierBuilder
solidart
Dart 3 compatible 👍 51
Maintenance Status: Good
A simple State Management solution for Dart applications inspired by SolidJS
rx_bloc
Dart 3 compatible 👍 49
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 👍 48
Maintenance Status: Good
A light, powerful and quick Reactive State Management, Dependency Injection and Event Management.
bloc_presentation
Dart 3 compatible 👍 48
Maintenance Status: Good
Extends blocs with an additional stream which can serve as a way of indicating single-time events (so-called "presentation events").
flutter_onlooker
Dart 3 compatible 👍 47
Maintenance Status: Good
A state management library that provides a simple solution for updating state and navigation.
flutter_solidart
Dart 3 compatible 👍 46
Maintenance Status: Good
A simple State Management solution for Flutter applications inspired by SolidJS
june
Dart 3 compatible 👍 43
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.
comms
Dart 3 compatible 👍 41
Maintenance Status: Good
Simple communication pattern abstraction on streams, created for communication between logic classes.
flutter_rx_bloc
Dart 3 compatible 👍 38
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 👍 37
Maintenance Status: Good
A light, powerful and quick Reactive State Management, Dependency Injection and Event Management.
mvvm_plus
Dart 3 compatible 👍 36
Maintenance Status: Good
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).
state_machine
Dart 3 compatible 👍 35
Maintenance Status: Good
Finite state machine library. Easily define legal state transitions. Listen to state entrances, departures, and transitions.
fquery
Dart 3 compatible 👍 35
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.
flutter_hooks_bloc
Dart 3 compatible 👍 32
Maintenance Status: Good
A flutter_bloc reimplementation based on flutter_hooks with the same API.
redux_logging
Dart 3 compatible 👍 28
Maintenance Status: Good
Redux.dart Middleware that prints the latest action & state
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
fl_query
Dart 3 compatible 👍 26
Maintenance Status: Good
Asynchronous data caching, refetching & invalidation library for Flutter
flutter_comms
Dart 3 compatible 👍 23
Maintenance Status: Good
Simple communication pattern abstraction on streams, created for communication between logic classes and or widgets.
state_beacon
Dart 3 compatible 👍 22
Maintenance Status: Good
A reactive primitive and simple state managerment solution for dart and flutter
flutter_control
Dart 3 compatible 👍 19
Maintenance Status: Good
Flutter Control is complex library to maintain App and State management, Dependency Injection, Navigation with Routing, Localization and more..
velocity_bloc
Dart 3 compatible 👍 16
Maintenance Status: Good
Minimalist and Easy State Management for Bloc Inspired from Dart Generics.
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.
bloc_tools
Dart 3 compatible 👍 15
Maintenance Status: Good
Tools for building applications using the bloc state management library.
grab
Dart 3 compatible 👍 13
Maintenance Status: Good
A Flutter package with extension methods on Listenable / ValueListenable as an alternative to AnimatedBuilder, ListenableBuilder and ValueListenableBuilder.
lite_ref
Dart 3 compatible 👍 12
Maintenance Status: Good
A lightweight dependency injection package with support for overriding for testing.
state_extended
Dart 3 compatible 👍 10
Maintenance Status: Good
This class extends the capabilities of Flutter's State class and includes a controller.
toor
Dart 3 compatible 👍 9
Maintenance Status: Good
Compile-time safe and easy to manage service locators.
built_redux
Dart 3 compatible 👍 9
Maintenance Status: Good
A state management library written in dart that enforces immutability
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 👍 4
Maintenance Status: Good
An easy and safe DI (Dependency Injection) solution for Dart with support for scoping.
lite_state
Dart 3 compatible 👍 4
Maintenance Status: Good
A simple state management machine for Flutter.
pulse_x
Dart 3 compatible 👍 3
Maintenance Status: Good
Pulse X is the mini state management. It has four features - state management, context-less routing, dependency injection & reaction (side effects)
mu_state
Dart 3 compatible 👍 2
Maintenance Status: Good
A set of helpers for pragmatic state handling as mentioned in my Medium article.
ezbloc_flutter
Dart 3 compatible 👍 2
Maintenance Status: Good
Making blocs easy again. A simplified library for the original bloc approach.
easy_event_bus
Dart 3 compatible 👍 1
Maintenance Status: Good
It's an easy-to-use and elegant event bus-based library.
rxdart
Dart 3 compatible 👍 2.46K
Maintenance Status: Average
RxDart is an implementation of the popular reactiveX api for asynchronous programming, leveraging the native Dart Streams api.
flutter_redux
Dart 3 compatible 👍 513
Maintenance Status: Average
A set of utility Widgets that Provide and Connect to a Redux Store
scoped_model
Dart 3 compatible 👍 268
Maintenance Status: Average
A Widget that passes a Reactive Model to all of it's children
bloc_pattern
Dart 3 compatible 👍 96
Maintenance Status: Average
Just a package with bases to deploy the BloC your code. Modules, Consumers And BLoC!
ioc_container
Dart 3 compatible 👍 82
Maintenance Status: Average
A lightweight, flexible, and high-performance dependency injection and service location library for Dart and Flutter
pmvvm
Dart 3 compatible 👍 70
Maintenance Status: Average
A clean & simple MVVM solution for state management using Provider package.
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
observable_ish
Dart 3 compatible 👍 61
Maintenance Status: Average
Write elegant reactive cross-platform client side application using observable states and event emitters.
functional_listener
Dart 3 compatible 👍 59
Maintenance Status: Average
An rx like extension methods on ValueListenable type, that lets you work with ValueNotifiers almost like with Streams
fbroadcast
Dart 3 compatible 👍 44
Maintenance Status: Average
FBroadcast Help developers build an efficient broadcast system in the application.
statemachine
Dart 3 compatible 👍 43
Maintenance Status: Average
A simple, yet powerful state machine framework for Dart supporting Flutter and web apps.
cubes
Dart 3 compatible 👍 40
Maintenance Status: Average
Simple State Manager (Focusing on simplicity and rebuilding only the necessary)
reduced
Dart 3 compatible 👍 39
Maintenance Status: Average
Unified facade for the basic features of state management frameworks.
angular_bloc
Dart 3 compatible 👍 36
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.
stream_bloc
Dart 3 compatible 👍 33
Maintenance Status: Average
Modern implementation of the Original BLoC that uses asynchronous generators to describe relationships between events and states.
stateless
Dart 3 compatible 👍 33
Maintenance Status: Average
A stateless stateful state management package that is not stateless.
rx_future
Dart 3 compatible 👍 33
Maintenance Status: Average
introducing a new type in getx called RxFuture to listen to future state.
vxstate
Dart 3 compatible 👍 32
Maintenance Status: Average
VxState is an another state management solution for flutter. It is highly inspired from Redux & VueX.
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.
injecteo
Dart 3 compatible 👍 31
Maintenance Status: Average
Service locator for IoC pattern. Export annotations and abstract classes used by injecteo_generator.
bloc_provider
Dart 3 compatible 👍 24
Maintenance Status: Average
Provides bloc to descendant widget (O(1)), and the bloc is disposed appropriately by state which the bloc_provider holds internally.
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 .
rx_redux
Dart 3 compatible 👍 20
Maintenance Status: Average
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: Average
The goal behind is to move as much of the state and logic from the ViewState into a separate entity called the ViewModel.
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
hydro
Dart 3 compatible 👍 4
Maintenance Status: Average
A simple, fast state management & service container solution for Flutter, without acrobatics.
flutter_bloc_pattern
Dart 3 compatible 👍 3
Maintenance Status: Average
Bloc provider. Provides bloc to descendant widget (O(1)), and the bloc is disposed appropriately by state which the bloc_provider holds internally.
fast_mvvm
Dart 3 compatible 👍 1
Maintenance Status: Average
Implemented using the MVVM architecture, quickly build projects to help consumers focus only on the business implementation
hydrated_triple
Dart 3 compatible 👍 0
Maintenance Status: Average
A mixin which automatically persists and restores store state.
event_bus
Dart 3 compatible 👍 605
Maintenance Status: Poor
A simple Event Bus using Dart Streams for decoupling applications
redux
Dart 3 compatible 👍 378
Maintenance Status: Poor
Redux is a predictable state container for Dart and Flutter apps
momentum
Dart 3 compatible 👍 99
Maintenance Status: Poor
MVC pattern for flutter. Works as state management, dependency injection and service locator.
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 👍 69
Maintenance Status: Poor
A lightweight, yet powerful way to bind your application state with your business logic.
redux_thunk
Dart 3 compatible 👍 63
Maintenance Status: Poor
A Redux.dart Middleware that allows you to dispatch functions that perform async work as actions.
state_persistence
Dart 3 compatible 👍 61
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.
property_change_notifier
Dart 3 compatible 👍 54
Maintenance Status: Poor
A drop-in replacement for ChangeNotifier for observing only certain properties of a model.
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.
redux_epics
Dart 3 compatible 👍 37
Maintenance Status: Poor
A redux.dart Middleware that helps you perform side effects using Streams
mvvm
Dart 3 compatible 👍 36
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.
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.
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.
observable
Dart 3 compatible 👍 21
Maintenance Status: Poor
Support for marking objects as observable
redux_persist_flutter
Dart 3 compatible 👍 20
Maintenance Status: Poor
Redux Persist Flutter Integration with custom storage engines
reselect
Dart 3 compatible 👍 18
Maintenance Status: Poor
Efficiently derive data from your Redux Store
rebloc
Dart 3 compatible 👍 17
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.
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
👍 66
Maintenance Status: Good
Fish Redux is an assembled flutter application framework based on Redux state management.
query_stack
👍 9
Maintenance Status: Good
Powerful, yet simple, asynchronous state management for Flutter
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.
after_init
👍 32
Maintenance Status: Poor
Adds a didInitState() lifecycle method to stateful widgets where you can safely access inherited widgets.
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
👍 26
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.