Most popular Flutter state management libraries in 2021
Tags: flutter, dart
Published: 2021-02-11 12:33:44

Edit: After one year I released new updated article:
{% link https://dev.to/mjablecnik/most-popular-flutter-state-management-in-2022-3he9 %}

<br>
During learning of Flutter I see that exists many various tools and libraries for state management in Flutter apps.
For me as a beginner is very difficult choose which one is the right and also in the official documentation is plenty of  state managers but which is the best for the learning?

Finally I decided to go through all of them and order it by popularity and it can be useful for anybody for better review between.

So here is my list:


## Bloc
With the biggest popularity and probably the most used for a big projects. Maintenance is long (2,5 years) and longer than by others projects.
But unfortunately it can be hard for learning and understanding for newcomers and you need to work with a lot of boilerplate in the code.

**Popularity:** 
pub.dev - 1735 likes
github  - 6900 stars


Active development: yes
[Github link](https://github.com/felangel/bloc/graphs/contributors)
![alt text](https://dev-to-uploads.s3.amazonaws.com/i/j8zyy7qa5cyk3n7uqfh1.png)

## Provider
Second the most popular library and also officialy recomended by Flutter team as a good choice to use.
Using is simple and learning is also faster then by Bloc.

**Popularity:** 
pub.dev - 3384 likes
github  - 3314 stars

Active development: yes
[Github link](https://github.com/rrousselGit/provider/graphs/contributors)
![alt text](https://dev-to-uploads.s3.amazonaws.com/i/irys3spo2cgxbl9pdcbh.png)
 
## GetX
Third the most popular library and also the most growing up in popularity right now.
GetX is very simple (similar as Provider), you cannot generate any code (like by MobX), don't have a lot of unnecessary bolerplate code (like by Bloc), you can learn it very fast and it is good for any newcomers.

**Popularity:** 
pub.dev - 3112 likes
github  - 2342 stars

Active development: yes
[Github link](https://github.com/jonataslaw/getx/graphs/contributors)

![alt text](https://dev-to-uploads.s3.amazonaws.com/i/tx4549udea0erf8nin6b.png)

## GetIt
Library inspired by [Splat](https://github.com/reactiveui/splat) from the React world.
Library is not so popular like previous and maintenance is also a little lower.

**Popularity:** 
pub.dev - 937 likes
github  - 621 stars


Active development: for the last year relatively yes
[Github link](https://github.com/fluttercommunity/get_it/graphs/contributors)
![alt text](https://dev-to-uploads.s3.amazonaws.com/i/85kshkm3vdnye8s52cuy.png)

## Riverpod
Successor of Provider state manager developed by same author with a different [motivation](https://github.com/rrousselgit/river_pod#motivation).
Also nice and very simple like Provider but I don't know if I can use it or not because of lower maintenance during this year..

**Popularity:** 
pub.dev - 496 likes
github  - 1210 stars

Active development: for 2020 year yes but from year 2021 is low

[Github link](https://github.com/rrousselGit/river_pod/graphs/contributors)
![alt text](https://dev-to-uploads.s3.amazonaws.com/i/uorlpl36hd16mj25ozyp.png)

## MobX
Really nice and simple for newcomers without a lot of boilerplate. Unfortunately you need use builder, automatic generate the code after some change and wait for it.
Library is inspired by [MobX](https://mobx.js.org) project from JavaScript.

**Popularity:** 
pub.dev - 529 likes
github  - 1789 stars


Active development: low
[Github link](https://github.com/mobxjs/mobx.dart/graphs/contributors)

![alt text](https://dev-to-uploads.s3.amazonaws.com/i/rvqgu3k2vopfbt2b58sw.png)

## Redux 
Probably choice for everybody who have an experiance with React/Redux. Unfortunately maintenance is not so big.

**Popularity:** 
pub.dev - 213 likes
github  - 1406 stars

[Github link](https://github.com/brianegan/flutter_redux/graphs/contributors)
Active development: a little
![alt text](https://dev-to-uploads.s3.amazonaws.com/i/ck5mqkm2e9xzb92nr7wp.png)


## Fish redux
Alternative to Redux from Alibaba company.


**Popularity:** 
pub.dev - 41 likes
github  - 6900 stars

Active development: no
[Github link](https://github.com/alibaba/fish-redux/graphs/contributors)
![alt text](https://dev-to-uploads.s3.amazonaws.com/i/jifk0zzxm7ikkfeza4mx.png)

 
## Binder
A lightweight, yet powerful way to bind your application state with your business logic. But it's still new yet.

**Popularity:** 
pub.dev - 28 likes
github  - 143 stars

Active development: low
[Github link](https://github.com/letsar/binder/graphs/contributors)

![alt text](https://dev-to-uploads.s3.amazonaws.com/i/k39xpzyxuj2qpwz2gbc5.png)


## Flutter Commands
Reactive state management that uses the Command Pattern and is based on ValueNotifiers.

**Popularity:** 
pub.dev - 28 likes
github  - 17 stars


Active development: no
[Github link](https://github.com/escamoteur/flutter_command/graphs/contributors)

![alt text](https://dev-to-uploads.s3.amazonaws.com/i/y9xn66rpzzxg6959rx9k.png)


## Cube
Simple State Manager with dependency injection and no code generation required. I believe that this project is inspired by  [GetX](https://pub.dev/packages/get) because I see there a lot of similar things. Unfortunately project is still in early phase (version 0.10.7) but in the future it can be also very interesting alternative..

**Popularity:** 
pub.dev - 11 likes
github  - 6 stars
Active development: yes
[Github link](https://github.com/RafaelBarbosatec/cube/graphs/contributors)
![alt text](https://dev-to-uploads.s3.amazonaws.com/i/y4jrouc7m5cd2dtazqeg.png)
 

# Conclusion
After my research I see that really serious candidate for learning from plenty possible libraries, are only three:

1) Bloc
2) Provider
3) GetX

Because of great support, maintenance of and maturity these packages.

**So what is my choice?**
Finally my choice is [GetX](https://pub.dev/packages/get) state manager. 
Although is here only one year and is younger then Bloc or Provider, GetX give me a great, simple and clean solution for my state management and development is really great without any boilerplates.

Moreover GetX give me more then only state management.
GetX contains all ecosystem packages where is State management, Dependency management, Navigation management and other very useful functions which can make my Flutter development simpler and faster.

More about this you can read in my next [article](https://dev.to/mjablecnik/why-i-use-getx-for-my-application-state-management-gal)

I hope that this article is useful for you and you can let me know it by give a like or some comments below.. ;)

Edit: After one year I released new updated article:
{% link https://dev.to/mjablecnik/most-popular-flutter-state-management-in-2022-3he9 %}