Flutter is the only toolkit that focuses mainly on how to show your Stateful or Stateless widgets but doesn’t solve a lot of problems with state management or architecture design of your application like some other frameworks.
Yet, numerous new mobile app developers can be confused with picking various packages for solving state management problems so I decided to make this overview of the most popular Flutter state management packages with a small description of them.
Bloc is probably the most popular state management solution which makes learn your architectural pattern: Presentation, Bussiness Logic, Data (Repository, Provider)
- Easy for a separate presentation from business logic
- Great documentation with many examples
- Dependency injection: Uses Provider internally to make it easy to provide and access blocs throughout the widget tree.
- Can persist and restore states
- Support for undo and redo states
- Widely used by the Flutter community
- Active development with many sponsors
GetX is the second most famous state management solution and exceptionally quickly developing in popularity. Is also the most controversial and evoking conflict in the Flutter developer community because many developers hate this package due to antipatterns, bad testability, or documentation, but many developers also love it due to its simplicity and very shortcode which you write so then you feel more productive.
Furthermore, there is a conversation between the creator of GetX and creators of other state management solutions (Bloc and Provider) which probably causes much hate in the Flutter community against GetX.
- Very simple for new Flutter developers
- Very shortcode
- Big popularity
- Solving also dependency injection
- The package is solving a number of things: Vendor gets into just a single huge bundle
- With no sponsors: When the writer stops backing this bundle so you can modify entire your application without any preparation
- The too big package which has an excessive number of issues
- When you find some issue you can wait a too very long time for a fix
- At the point when you discover some issue you can stand by too extremely long timespan for fix
- Bad reputation in Flutter community
- Documentation isn’t genuine