DEV Community

Martin Jablečník
Martin Jablečník

Posted on

5 Reasons why I don't use GetX for application state management in Flutter

In my last article I created large overview through all possible state management solutions and GetX is second the most popular State management in Flutter community right now.
So why I am not using it?

One year ago I started develop my first Flutter application and I found GetX as a good tool. But unfortunately one year later I found out GetX is not so good solution for me.

I was finding also why GetX is so controversional in Flutter community in Reddit and I found that exists many people which have also some not good experiences with GetX or their opinions are different: Opinion 1, Opinion 2, Opinion 3

Here are some my personal points why I am not using GetX:

1) Documentation isn't actual

In documentation is not everything what is already implemented and it is missing for a long time there.
For example:

In GetX 4.2.0 were released big changes with Navigator 2.0 but without documentation. Exists many opened issues where people request some documentation for Navigator 2.0:

https://github.com/jonataslaw/getx/issues/2077
https://github.com/jonataslaw/getx/issues/2067
https://github.com/jonataslaw/getx/issues/1643
https://github.com/jonataslaw/getx/issues/1380

But there are not any answer from main maintainer of GetX.
Version 4.2.0 was released in July 2021 and today is January 2022 and issues are still without answer.

There is only one small piece of documentation for one month in WIP from some one volunteer: https://github.com/jonataslaw/getx/pull/2032

2) Nobody care about issues

How you can see in previous point, in GetX can exists a lot of issues which can be also duplicit. Here it is obviously that nobody cares about issues like: solving, answering, tagging, remove duplicity, etc.
If maintainer doesn't have a time so he can entrust or find somebody for it -> GetX have a very big community but nobody did it.

3) Many opened pull requests without activity

Around GetX is very big community which are making quite a lot of PR but a lot from this PR are opened without any activity:
https://github.com/jonataslaw/getx/pull/1699
https://github.com/jonataslaw/getx/pull/1787
https://github.com/jonataslaw/getx/pull/1806
https://github.com/jonataslaw/getx/pull/1860
https://github.com/jonataslaw/getx/pull/1866
https://github.com/jonataslaw/getx/pull/1957
https://github.com/jonataslaw/getx/pull/1999
https://github.com/jonataslaw/getx/pull/2017
https://github.com/jonataslaw/getx/pull/2029

All this PRs are ready to merge for a long time during writing this article (1.January 2021)
But nobody check and merged it yet.. Why?

We can also see that main author is merging mostly only himself PRs instead of solve others firstly..:
GetX commits

4) GetX is doing too much things

I feel this project is too big for only one person.
GetX is solving:

  • State management
  • Depency injection
  • Routing
  • Internationalization
  • making http requests
  • many utilities for: dialogs, snackbars, bottomSheets
  • and maybe many more..

But maintainer is only one and he doesn't have a time for fix or improve absolutely everything.
This all is job for minimal 3 full-time people.
But without sponsors you cannot maintain for full-time on this project like author of Bloc package for example..

5) Too many bugs

All previous points are leading into one result:

In this big project will be a lot of bugs.

When come some update so it is danger that bring some bugs. Documentation is not updated and when you create some issue you can wait for a long time then it will be fixed (if sometimes)


Conclusion

After some my experiences I left GetX and started to use Modular for Routing and Dependency injection with Triple for State Management solution. After it I didn't find any problems..

I hope that this my article is useful for you and if it's true let me know it by give a like or some comments below. ;-)

Discussion (0)