Flutter Gems is a curated list of 5600+ useful Dart & Flutter packages that are categorized based on functionality.

Discord Medium LinkedIn Twitter

Top Flutter Dependency Injection and State Management packages

Last updated: April 2, 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.66K
Maintenance Status: Good

A wrapper around InheritedWidget to make them easier to use and more reusable.

flutter_bloc
Dart 3 compatible 👍 6.58K
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.82K
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.13K
Maintenance Status: Good

A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.

bloc
Dart 3 compatible 👍 2.67K
Maintenance Status: Good

A predictable state management library that helps implement the BLoC (Business Logic Component) design pattern.

flutter_riverpod
Dart 3 compatible 👍 2.21K
Maintenance Status: Good

A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.

mobx
Dart 3 compatible 👍 1.19K
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.14K
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 👍 782
Maintenance Status: Good

A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.

hydrated_bloc
Dart 3 compatible 👍 744
Maintenance Status: Good

An extension to the bloc state management library which automatically persists and restores bloc states.

flutter_mobx
Dart 3 compatible 👍 646
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 👍 553
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 👍 419
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 👍 391
Maintenance Status: Good

a simple yet powerful state management technique for Flutter

flutter_data
Dart 3 compatible 👍 342
Maintenance Status: Good

The seamless way to work with persistent data models in Flutter. Inspired by Ember Data and ActiveRecord.

state_notifier
Dart 3 compatible 👍 297
Maintenance Status: Good

ValueNotifier, but outside Flutter and with some extra perks

signals
Dart 3 compatible 👍 287
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.

mobx_codegen
Dart 3 compatible 👍 282
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 👍 156
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 👍 142
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 👍 135
Maintenance Status: Good

mixin on Stateless- and StatefulWidgts that makes binding the Widget to Objects stored in GetIt easier.

flutter_triple Card Image
flutter_triple
Dart 3 compatible 👍 120
Maintenance Status: Good

Implementation of the Segmented State Pattern (SSP) nicknamed Triple.

watch_it
Dart 3 compatible 👍 92
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 👍 92
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)

rx_notifier
Dart 3 compatible 👍 82
Maintenance Status: Good

Extension to ValueNotifier by transparently applying functional reactive programming (TFRP)

auto_injector
Dart 3 compatible 👍 81
Maintenance Status: Good

Automatic Dependency Injection System, but without build_runner

hooked_bloc
Dart 3 compatible 👍 77
Maintenance Status: Good

Flutter package that simplifies injection and usage of Bloc/Cubit.

flutter_getit
Dart 3 compatible 👍 73
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 👍 67
Maintenance Status: Good

flutter_command is a way to manage your state based on 'ValueListenable' and the 'Command' design pattern.

creator
Dart 3 compatible 👍 64
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 👍 53
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 👍 49
Maintenance Status: Good

A simple State Management solution for Dart applications inspired by SolidJS

rx_bloc Card Image
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 👍 47
Maintenance Status: Good

A light, powerful and quick Reactive State Management, Dependency Injection and Event Management.

flutter_solidart
Dart 3 compatible 👍 43
Maintenance Status: Good

A simple State Management solution for Flutter applications inspired by SolidJS

reduced
Dart 3 compatible 👍 39
Maintenance Status: Good

Unified facade for the basic features of state management frameworks.

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.

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.

mvvm_plus Card Image
mvvm_plus
Dart 3 compatible 👍 35
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).

fquery
Dart 3 compatible 👍 32
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_saga
Dart 3 compatible 👍 31
Maintenance Status: Good

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 👍 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

june
Dart 3 compatible 👍 24
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.

state_beacon
Dart 3 compatible 👍 19
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..

provider_for_redux
Dart 3 compatible 👍 16
Maintenance Status: Good

Lets you use Provider with Redux. Uses AsyncRedux, the non-boilerplate version of Redux.

velocity_bloc
Dart 3 compatible 👍 15
Maintenance Status: Good

Minimalist and Easy State Management for Bloc Inspired from Dart Generics.

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.

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.

lite_ref
Dart 3 compatible 👍 9
Maintenance Status: Good

A lightweight dependency injection package with support for overriding for testing.

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.

fast_mvvm
Dart 3 compatible 👍 1
Maintenance Status: Good

Implemented using the MVVM architecture, quickly build projects to help consumers focus only on the business implementation

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.43K
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 👍 510
Maintenance Status: Average

A set of utility Widgets that Provide and Connect to a Redux Store

scoped_model
Dart 3 compatible 👍 267
Maintenance Status: Average

A Widget that passes a Reactive Model to all of it's children

bloc_pattern
Dart 3 compatible 👍 95
Maintenance Status: Average

Just a package with bases to deploy the BloC your code. Modules, Consumers And BLoC!

ioc_container
Dart 3 compatible 👍 80
Maintenance Status: Average

A lightweight, flexible, and high-performance dependency injection and service location library for Dart and Flutter

pmvvm Card Image
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

flutter_onlooker
Dart 3 compatible 👍 46
Maintenance Status: Average

A state management library that provides a simple solution for updating state and navigation.

isolate_bloc
Dart 3 compatible 👍 44
Maintenance Status: Average

A dart package that helps implement the BLoC pattern. BLoC works in Isolate and don't slow down UI.

fbroadcast Card Image
fbroadcast
Dart 3 compatible 👍 43
Maintenance Status: Average

FBroadcast Help developers build an efficient broadcast system in the application.

statemachine
Dart 3 compatible 👍 42
Maintenance Status: Average

A simple, yet powerful state machine framework for Dart supporting Flutter and web apps.

cubes
Dart 3 compatible 👍 39
Maintenance Status: Average

Simple State Manager (Focusing on simplicity and rebuilding only the necessary)

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.

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.

stateless
Dart 3 compatible 👍 32
Maintenance Status: Average

A stateless stateful state management package that is not stateless.

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.

alt_bloc
Dart 3 compatible 👍 12
Maintenance Status: Average

A library that provides components for more easier and boilerplate implementation of the BLoC architecture pattern.

dash
Dart 3 compatible 👍 8
Maintenance Status: Average

Dash library is responsible to offer a service locator pattern that cares about provide and dispose blocs.

kfx_dependency_injection
Dart 3 compatible 👍 5
Maintenance Status: Average

Flutter Dependency Injection library based on dotnet ServiceProvider

phased
Dart 3 compatible 👍 4
Maintenance Status: Average

Simplified state management focused on animations

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.

hydrated_triple
Dart 3 compatible 👍 0
Maintenance Status: Average

A mixin which automatically persists and restores store state.

event_bus
Dart 3 compatible 👍 597
Maintenance Status: Poor

A simple Event Bus using Dart Streams for decoupling applications

redux
Dart 3 compatible 👍 377
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.

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.

inherited_state
Dart 3 compatible 👍 15
Maintenance Status: Poor

Simple and clean state management backed by InheritedWidget and DI backed by the service locator pattern.

flutter_redux_navigation
Dart 3 compatible 👍 13
Maintenance Status: Poor

A simple reactive navigation middleware for Flutter's redux library.

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

mobx_triple
👍 18
Maintenance Status: Average

Segmented State Pattern for MobX

koin
👍 59
Maintenance Status: Poor

A pragmatic lightweight dependency injection framework for Dart projects.

universal_widget
👍 53
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.

sprinkle
👍 17
Maintenance Status: Poor

A convenient, stream-based Flutter architecture

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.