<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Martin Jablečník</title>
    <description>The latest articles on DEV Community by Martin Jablečník (@mjablecnik).</description>
    <link>https://dev.to/mjablecnik</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F297262%2F290891de-eb8d-4304-aeae-65c6b979a293.jpg</url>
      <title>DEV Community: Martin Jablečník</title>
      <link>https://dev.to/mjablecnik</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mjablecnik"/>
    <language>en</language>
    <item>
      <title>Most popular Flutter state management libraries in 2023</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Fri, 10 Feb 2023 22:07:58 +0000</pubDate>
      <link>https://dev.to/mjablecnik/most-popular-flutter-state-management-libraries-in-2023-amc</link>
      <guid>https://dev.to/mjablecnik/most-popular-flutter-state-management-libraries-in-2023-amc</guid>
      <description>&lt;p&gt;Every year I compare the most popular state management libraries for Flutter. Here you can see some description, pros/cons, popularity and developer activity for every single package.&lt;br&gt;
This can be very useful for anybody who start development in Flutter and is finding some state management for their usage.&lt;/p&gt;

&lt;p&gt;Here are my results:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Bloc
&lt;/h2&gt;

&lt;p&gt;Bloc is probably the most popular state management solution which learn you also architectural pattern: Presentation, Bussiness Logic, Data (Repository, Provider)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy for separate presentation from business logic&lt;/li&gt;
&lt;li&gt;Great documentation with many examples&lt;/li&gt;
&lt;li&gt;Dependency injection: Uses Provider internally to make it easy provide and access blocs throughout the widget tree.&lt;/li&gt;
&lt;li&gt;Can persist and restore states&lt;/li&gt;
&lt;li&gt;Support for undo and redo states&lt;/li&gt;
&lt;li&gt;Widely used by Flutter community&lt;/li&gt;
&lt;li&gt;Active development with many sponsors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maybe hard to understand for new developers&lt;/li&gt;
&lt;li&gt;Too many boilerplate code &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 10070 stars&lt;br&gt;
Pub.dev: 5081 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official Page: &lt;a href="https://bloclibrary.dev" rel="noopener noreferrer"&gt;https://bloclibrary.dev&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://bloclibrary.dev/#/gettingstarted" rel="noopener noreferrer"&gt;https://bloclibrary.dev/#/gettingstarted&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/felangel/bloc" rel="noopener noreferrer"&gt;https://github.com/felangel/bloc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0b5is0bl9upn4vnovmlb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0b5is0bl9upn4vnovmlb.png" alt="Bloc" width="800" height="302"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  GetX
&lt;/h2&gt;

&lt;p&gt;GetX is second most popular state management solution. Is also the most controversional and evoking conflicts in Flutter developer community because many developers hate this package due to antipatterns, bad testability or documentation, but many developers also love it due to simplicity and very short code which they write.&lt;/p&gt;

&lt;p&gt;I found some interesting opinions about this package in Reddit so you can make your own opinion: &lt;a href="https://www.reddit.com/r/FlutterDev/comments/po1bei/why_is_getx_such_a_bad_state_management/" rel="noopener noreferrer"&gt;Opinion 1&lt;/a&gt;, &lt;a href="https://www.reddit.com/r/FlutterDev/comments/kr2ld4/do_you_really_use_getx_to_build_flutter_app/gi82ihe/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3" rel="noopener noreferrer"&gt;Opinion 2&lt;/a&gt;, &lt;a href="https://www.reddit.com/r/FlutterDev/comments/kr2ld4/do_you_really_use_getx_to_build_flutter_app/gi7n987/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3" rel="noopener noreferrer"&gt;Opinion 3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And here is discussion between author of GetX and authors of other state management solutions (Bloc and Provider) which probably cause many hates in Flutter community against GetX: &lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/issues/243" rel="noopener noreferrer"&gt;https://github.com/jonataslaw/getx/issues/243&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very simple for new Flutter developers&lt;/li&gt;
&lt;li&gt;Very short code&lt;/li&gt;
&lt;li&gt;Big popularity&lt;/li&gt;
&lt;li&gt;Solving also dependency injection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Package is solving too many things =&amp;gt; Vendor lock into only one big package&lt;/li&gt;
&lt;li&gt;Without any sponsors =&amp;gt; When author stop support of this package so you can rewrite whole your app from scratch&lt;/li&gt;
&lt;li&gt;Too big package with many functionality which have too many issues&lt;/li&gt;
&lt;li&gt;Development isn't very active&lt;/li&gt;
&lt;li&gt;Bad reputation in Flutter community&lt;/li&gt;
&lt;li&gt;Documentation is not actual&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 8096 stars&lt;br&gt;
Pub.dev: 11555 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: Only Github README&lt;br&gt;
Github: &lt;a href="https://github.com/jonataslaw/getx" rel="noopener noreferrer"&gt;https://github.com/jonataslaw/getx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftqciqd3mrhtc1fqc0iuc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftqciqd3mrhtc1fqc0iuc.png" alt="GetX" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Provider
&lt;/h2&gt;

&lt;p&gt;Provider is a wrapper around &lt;a href="https://api.flutter.dev/flutter/widgets/InheritedWidget-class.html" rel="noopener noreferrer"&gt;InheritedWidget&lt;/a&gt; for make it easier and simple use. This package is good for anybody who want to manage data with InheritedWidget but in more simple way. &lt;br&gt;
Provider is also used internally in Bloc package for provide and access bloc objects in widget tree and can be used also with: Triple, ValueNotifier, ChangeNotifier or other state objects. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make InheritedWidget more simple &lt;/li&gt;
&lt;li&gt;Widely used and popular&lt;/li&gt;
&lt;li&gt;Supported by Flutter team
&lt;/li&gt;
&lt;li&gt;Many sponsors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can't persist and restore states&lt;/li&gt;
&lt;li&gt;Doesn't support undo and redo states&lt;/li&gt;
&lt;li&gt;Some problems which are solved in Riverpod&lt;/li&gt;
&lt;li&gt;Can be deprecated or stopped in development (due to Riverpod)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 4636 stars&lt;br&gt;
Pub.dev: 8090 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: Only Github README&lt;br&gt;
Github: &lt;a href="https://github.com/rrousselGit/provider" rel="noopener noreferrer"&gt;https://github.com/rrousselGit/provider&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg0yn2krj4e7l5qz27cux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg0yn2krj4e7l5qz27cux.png" alt="Provider" width="800" height="299"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Riverpod
&lt;/h2&gt;

&lt;p&gt;Riverpod is from same author as Provider and it is a reimplementation of &lt;a href="https://api.flutter.dev/flutter/widgets/InheritedWidget-class.html" rel="noopener noreferrer"&gt;InheritedWidgets&lt;/a&gt; from scratch because during development of Provider author was faced with some problems which removed in Riverpod.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Similar to Provider&lt;/li&gt;
&lt;li&gt;Very fast grow in popularity&lt;/li&gt;
&lt;li&gt;Very simple documentation&lt;/li&gt;
&lt;li&gt;Many sponsors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can't persist and restore states&lt;/li&gt;
&lt;li&gt;Doesn't support undo and redo states&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 4068 stars&lt;br&gt;
Pub.dev: 2307 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: &lt;a href="https://riverpod.dev" rel="noopener noreferrer"&gt;https://riverpod.dev&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://riverpod.dev/docs/getting_started" rel="noopener noreferrer"&gt;https://riverpod.dev/docs/getting_started&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/rrousselGit/river_pod" rel="noopener noreferrer"&gt;https://github.com/rrousselGit/river_pod&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1rs3tmov7twpyf5e8bqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1rs3tmov7twpyf5e8bqu.png" alt="Riverpod" width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  MobX
&lt;/h2&gt;

&lt;p&gt;MobX is a state-management library that makes it simple to connect the reactive data of your application with the UI. This wiring is completely automatic and feels very natural. As application-developer, you focus purely on what reactive-data needs to be consumed in the UI without worrying about keeping the two in sync.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very simple&lt;/li&gt;
&lt;li&gt;Nice for beginners&lt;/li&gt;
&lt;li&gt;Have some sponsors&lt;/li&gt;
&lt;li&gt;Without boilerplate code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have to generate code after every change&lt;/li&gt;
&lt;li&gt;Developer activity looks very poor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 2244 stars&lt;br&gt;
Pub.dev: 1027 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: &lt;a href="https://mobx.netlify.app" rel="noopener noreferrer"&gt;https://mobx.netlify.app&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://mobx.netlify.app/getting-started" rel="noopener noreferrer"&gt;https://mobx.netlify.app/getting-started&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/mobxjs/mobx.dart" rel="noopener noreferrer"&gt;https://github.com/mobxjs/mobx.dart&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7n8rih4l9yl0v6aosi5v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7n8rih4l9yl0v6aosi5v.png" alt="MobX" width="800" height="296"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Redux
&lt;/h2&gt;

&lt;p&gt;Probably good choice for somebody who know Redux from React world. But this version for Dart seems that is not very popular, doesn't any good documentation and development is also very low. (Last update was 10 months ago)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Looks simple&lt;/li&gt;
&lt;li&gt;Can persist Redux State&lt;/li&gt;
&lt;li&gt;Good for somebody who already know React/Redux&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not good documentation&lt;/li&gt;
&lt;li&gt;Development activity is very poor&lt;/li&gt;
&lt;li&gt;Not very used in Flutter community&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 1593 stars&lt;br&gt;
Pub.dev: 457 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: Only Github README&lt;br&gt;
Github: &lt;a href="https://github.com/brianegan/flutter_redux" rel="noopener noreferrer"&gt;https://github.com/brianegan/flutter_redux&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F37ptyqw1lje0aiwff5e6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F37ptyqw1lje0aiwff5e6.png" alt="Redux" width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  States_Rebuilder
&lt;/h2&gt;

&lt;p&gt;States_Rebuilder is Flutter state management combined with a dependency injection solution and integrated router. &lt;br&gt;
I didn't tried a lot this package but when I see into documentation so I feel that author want to do too much things in one package (similar like GetX) instead of focus only into state management solution..&lt;br&gt;&lt;br&gt;
Package solve also: &lt;br&gt;
internationalization, form validation, authentication, server queries, etc..&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Separate presentation from business logic&lt;/li&gt;
&lt;li&gt;Can persist and restore states&lt;/li&gt;
&lt;li&gt;Support for undo and redo states&lt;/li&gt;
&lt;li&gt;Built-in dependency injection system&lt;/li&gt;
&lt;li&gt;Development is active&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is doing too much things (not only state management)&lt;/li&gt;
&lt;li&gt;Only one maintainer without sponsors&lt;/li&gt;
&lt;li&gt;Isn't widely used in Flutter community&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 480 stars&lt;br&gt;
Pub.dev: 374 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: &lt;a href="https://github.com/GIfatahTH/states_rebuilder/tree/master/states_rebuilder_package#readme" rel="noopener noreferrer"&gt;https://github.com/GIfatahTH/states_rebuilder/tree/master/states_rebuilder_package#readme&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/GIfatahTH/states_rebuilder" rel="noopener noreferrer"&gt;https://github.com/GIfatahTH/states_rebuilder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0zf5g20q22nrtdy4dh6f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0zf5g20q22nrtdy4dh6f.png" alt="States_Rebuilder" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Creator
&lt;/h2&gt;

&lt;p&gt;Creator is a state management library which is very similar to Riverpod but more simple.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very simple package&lt;/li&gt;
&lt;li&gt;Nice for beginners&lt;/li&gt;
&lt;li&gt;Development without boilerplate code
&lt;/li&gt;
&lt;li&gt;Simple documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can't persist and restore states&lt;/li&gt;
&lt;li&gt;Doesn't support undo and redo states&lt;/li&gt;
&lt;li&gt;Is not very known in Flutter community&lt;/li&gt;
&lt;li&gt;Doesn't have any sponsors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 191 stars&lt;br&gt;
Pub.dev: 54 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: &lt;a href="https://github.com/liangxianzhe/creator/blob/master/README.md" rel="noopener noreferrer"&gt;https://github.com/liangxianzhe/creator/blob/master/README.md&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/liangxianzhe/creator" rel="noopener noreferrer"&gt;https://github.com/liangxianzhe/creator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftt622zewflhjroo413zs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftt622zewflhjroo413zs.png" alt="Creator" width="800" height="301"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Triple
&lt;/h2&gt;

&lt;p&gt;Triple is simple package for manage your state by Segmented State Pattern.&lt;br&gt;
This package is developed by Flutterando Community which is huge Flutter community from Brasil.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very simple package&lt;/li&gt;
&lt;li&gt;Development without boilerplate code
&lt;/li&gt;
&lt;li&gt;Developed by community of developers&lt;/li&gt;
&lt;li&gt;Can persist and restore states&lt;/li&gt;
&lt;li&gt;Support for undo and redo states&lt;/li&gt;
&lt;li&gt;Very nice and simple documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is not very known in Flutter community&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 135 stars&lt;br&gt;
Pub.dev: 105 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: &lt;a href="https://triple.flutterando.com.br" rel="noopener noreferrer"&gt;https://triple.flutterando.com.br&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://triple.flutterando.com.br/docs/intro" rel="noopener noreferrer"&gt;https://triple.flutterando.com.br/docs/intro&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/Flutterando/triple_pattern" rel="noopener noreferrer"&gt;https://github.com/Flutterando/triple_pattern&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79059vln31sb1ss54crm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79059vln31sb1ss54crm.png" alt="Triple" width="800" height="299"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;And that's all. I hope that this article is useful for you and here you can read also other my comparations from previous years:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/mjablecnik" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F297262%2F290891de-eb8d-4304-aeae-65c6b979a293.jpg" alt="mjablecnik"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/mjablecnik/most-popular-flutter-state-management-in-2022-3he9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Most popular Flutter state management libraries in 2022&lt;/h2&gt;
      &lt;h3&gt;Martin Jablečník ・ Jan 1 '22&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/mjablecnik" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F297262%2F290891de-eb8d-4304-aeae-65c6b979a293.jpg" alt="mjablecnik"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/mjablecnik/most-popular-flutter-libraries-for-state-management-l53" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Most popular Flutter state management libraries in 2021&lt;/h2&gt;
      &lt;h3&gt;Martin Jablečník ・ Feb 11 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>devto</category>
      <category>web3</category>
      <category>community</category>
      <category>announcement</category>
    </item>
    <item>
      <title>Flutter vs React Native community in 2022</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Sun, 02 Jan 2022 13:22:49 +0000</pubDate>
      <link>https://dev.to/mjablecnik/flutter-vs-react-native-community-in-2022-2do6</link>
      <guid>https://dev.to/mjablecnik/flutter-vs-react-native-community-in-2022-2do6</guid>
      <description>&lt;p&gt;One year ago I made &lt;a href="https://dev.to/mjablecnik/how-large-is-flutter-vs-react-native-community-in-2021-2df5"&gt;a survey comparing size of Flutter vs React Native community&lt;/a&gt; of various social network sites because still between developers can exists myth that Flutter community is small or smaller than React Native.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is useful to know size of developer community?&lt;/strong&gt;&lt;br&gt;
Because this can be crucial requirement for new developers (finding some multiplatform mobile framework) or companies which would like to choose it for their application development. &lt;/p&gt;

&lt;p&gt;Large community means that many of problems can be already solved and new developers have a good support in finding any problem solutions or finding a new job oportunities. &lt;/p&gt;

&lt;p&gt;Companies gain valuable information about how many developers are interesting about this tools and how many developers can be potencionaly hired.&lt;/p&gt;

&lt;p&gt;I walked through this social platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reddit&lt;/li&gt;
&lt;li&gt;Stack Overflow&lt;/li&gt;
&lt;li&gt;Dev.to&lt;/li&gt;
&lt;li&gt;Facebook&lt;/li&gt;
&lt;li&gt;Twitter&lt;/li&gt;
&lt;li&gt;Instagram&lt;/li&gt;
&lt;li&gt;LinkedIn&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For developers are probably important Reddit, Stack Overflow and Dev.to where can find a lot of information about news or how to fix some bugs.&lt;/p&gt;

&lt;p&gt;For companies can be useful Facebook, Twitter or LinkedIn where they can find their potencional employers.&lt;/p&gt;

&lt;p&gt;For every site I compare number of people/followers of the site which says me size of the community.&lt;/p&gt;

&lt;p&gt;Here are my data:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Reddit
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 84.0k followers&lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 86.8k followers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/FlutterDev/"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kLjYo8Rw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e6n0cwjempsis7o01nfe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kLjYo8Rw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e6n0cwjempsis7o01nfe.png" alt="Flutter - Reddit" width="880" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/reactnative/"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--swxMdR_Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nvajces3m7k8kte19qx4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--swxMdR_Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nvajces3m7k8kte19qx4.png" alt="React Native - Reddit" width="880" height="349"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Stack Overflow
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 111,456 questions&lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 120,793 questions&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/tagged/flutter"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WWNtzldO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/78bzjlpyqravmmngqlq7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WWNtzldO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/78bzjlpyqravmmngqlq7.png" alt="Flutter - Stack Overflow" width="739" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/tagged/react-native"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3AVRzQQH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dosawy6gjxlcp82z8xwf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3AVRzQQH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dosawy6gjxlcp82z8xwf.png" alt="React Native - Stack Overflow" width="746" height="448"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 25,131 questions with no answers&lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 31,119 questions with no answers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/tagged/flutter?sort=Newest&amp;amp;filters=NoAnswers&amp;amp;edited=true"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V7Uefhv4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4grggwkb8g40suoq4s0p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V7Uefhv4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4grggwkb8g40suoq4s0p.png" alt="Flutter - Stack Overflow" width="737" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/tagged/react-native?sort=Newest&amp;amp;filters=NoAnswers&amp;amp;edited=true"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fAvbMF05--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozskscg88pcyo9ufndjy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fAvbMF05--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozskscg88pcyo9ufndjy.png" alt="React Native - Stack Overflow" width="749" height="451"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stars: 134K&lt;/li&gt;
&lt;li&gt;forks: 20K&lt;/li&gt;
&lt;li&gt;contributors: 957&lt;/li&gt;
&lt;li&gt;commits: 27 034&lt;/li&gt;
&lt;li&gt;contributors only for last year (2021): 68&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;React Native:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stars: 100K&lt;/li&gt;
&lt;li&gt;forks: 21.6K&lt;/li&gt;
&lt;li&gt;contributors: 2 270&lt;/li&gt;
&lt;li&gt;commits: 23 859&lt;/li&gt;
&lt;li&gt;contributors only for last year (2021): 37&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here it is interesting because React Native have a lot of contributors contributing for a short time but Flutter have more contributors contributing for a long time.&lt;br&gt;
I compared also number of contributors only for last year (2021) and I found that Flutter project had almost 2 times more contributors than React Native.&lt;br&gt;
Result is that Flutter project is growing faster in number of commits then React Native.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/flutter/flutter"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gcoW84yu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lme7tkywk0raeudf2ei3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gcoW84yu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lme7tkywk0raeudf2ei3.png" alt="Flutter - GitHub" width="880" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/facebook/react-native"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pKk_rTmz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hk0oguks3n6me8kluo7o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pKk_rTmz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hk0oguks3n6me8kluo7o.png" alt="React Native - GitHub" width="880" height="140"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Dev.to
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;posts published (in tag detail): 2037 &lt;/li&gt;
&lt;li&gt;posts published (in overview of tags): 3713&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;React Native:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;posts published (in tag detail): 2342 &lt;/li&gt;
&lt;li&gt;posts published (in overview of tags): 4312 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is interesting because I found that Dev.to show in 2 different places 2 different values for one same thing :D&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/tags"&gt;Source&lt;/a&gt; &lt;a href="https://dev.to/t/flutter"&gt;Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hH7nDFQR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w7lysroyiohn1jakln0h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hH7nDFQR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w7lysroyiohn1jakln0h.png" alt="Flutter - Dev.to" width="729" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/tags"&gt;Source&lt;/a&gt; &lt;a href="https://dev.to/t/reactnative"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rkrjjmIY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/twcp34kdey0w3k00r9tu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rkrjjmIY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/twcp34kdey0w3k00r9tu.png" alt="React Native - Dev.to" width="749" height="257"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Facebook
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 188K people and 39K people&lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 159K people and 46K people&lt;br&gt;
&lt;strong&gt;React:&lt;/strong&gt; 103K people and 36K people&lt;/p&gt;

&lt;p&gt;This is interesting because I found that Flutter developers are very active on Facebook. More than React or React Native developers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/search/groups/?q=flutter%20developer%20community&amp;amp;sde=AbotKqEx6VFO7Xg9wiFDgE3hDSnw1teizHLB49vZpXF3bLbxyZ0OOuvrfrGEGCpzofDakrn8opGG9ML5UM4eRoBs"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f6auFGZA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jw3e7dab6u7cuhkqic6t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f6auFGZA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jw3e7dab6u7cuhkqic6t.png" alt="Flutter - Facebook" width="880" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/search/top?q=react%20native%20developer%20community"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ix3Tn7v0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iia2xivs3aobo07853gn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ix3Tn7v0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iia2xivs3aobo07853gn.png" alt="React Native - Facebook" width="880" height="569"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I09MTly5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebaa1utl5tznfb7s2rzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I09MTly5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebaa1utl5tznfb7s2rzv.png" alt="React - Facebook" width="880" height="575"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Twitter
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;followers: 167.5K&lt;/li&gt;
&lt;li&gt;tweets: 1 734&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;React Native:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;followers: 130.4K&lt;/li&gt;
&lt;li&gt;tweets: 579&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://twitter.com/flutterdev"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BuIA7Vi3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2g8nrwhtx2cclccpxozt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BuIA7Vi3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2g8nrwhtx2cclccpxozt.png" alt="Flutter - Twitter" width="880" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/reactnative"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--O5IKheRO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3rr4lyluwk6o1btz3asz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--O5IKheRO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3rr4lyluwk6o1btz3asz.png" alt="React Native - Twitter" width="880" height="619"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Instagram
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;flutter.developers: 44.9K followers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;React Native:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reactnativeworld: 10.4K followers&lt;/li&gt;
&lt;li&gt;reactnative.modules: 6.8K followers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/flutter.developers/"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oQqKNBsx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3xz267fd6a4y9maixkvp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oQqKNBsx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3xz267fd6a4y9maixkvp.png" alt="Flutter - Instagram" width="880" height="289"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.instagram.com/reactnativeworld/"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I1COELmm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wvd460vl4ztgexk7m82f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I1COELmm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wvd460vl4ztgexk7m82f.png" alt="React - Instagram" width="880" height="244"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;a href="https://www.instagram.com/reactnative.modules/"&gt;React Native - Instagram&lt;/a&gt;&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3jk9FkGS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/plkzhhdhxkcac6a2n4da.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3jk9FkGS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/plkzhhdhxkcac6a2n4da.png" alt="Image description" width="880" height="319"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  LinkedIn
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 36.5K members and 21.4K members&lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 44.9K members &lt;/p&gt;

&lt;p&gt;Note: I count only clear React Native groups without mixing with ReactJS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/search/results/groups/?keywords=flutter&amp;amp;origin=SWITCH_SEARCH_VERTICAL&amp;amp;sid=pfz"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Yzz8OTOA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hmxm5jngxsnzvcp2look.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Yzz8OTOA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hmxm5jngxsnzvcp2look.png" alt="Flutter - LinkedIn" width="875" height="657"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/search/results/groups/?keywords=react%20native&amp;amp;origin=GLOBAL_SEARCH_HEADER&amp;amp;sid=02l"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BRpySNgR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/di2clqg79enoag3zfauh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BRpySNgR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/di2clqg79enoag3zfauh.png" alt="React Native - LinkedIn" width="880" height="868"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;So after comparing this two communities in various platform I can say that Flutter and React Native communities have almost same sizes.&lt;/p&gt;

&lt;p&gt;You can say of course that React community is bigger but it is due to ReactJS library for web but nobody which is building web with ReactJS want to also create a mobile apps with React Native. Hence I try to not mix ReactJS and React Native people into one group.&lt;/p&gt;

&lt;p&gt;And when we see into data of GitHub, Facebook or Twitter so we can say that Flutter developers are a little more active and Flutter is growing up by incredible speed: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PHjwBt4T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dnc7mwybm1q2iw0gl24w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PHjwBt4T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dnc7mwybm1q2iw0gl24w.png" alt="Stars Graph" width="880" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And is also more loved:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s5jhZUyi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qv2qn3yqi3or9mvr5jw2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s5jhZUyi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qv2qn3yqi3or9mvr5jw2.png" alt="Stack overflow survey" width="880" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to compare this survey with my survey from last year, you can go into this link:&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/mjablecnik" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--amuOGMqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--GJGgANX_--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/297262/290891de-eb8d-4304-aeae-65c6b979a293.jpg" alt="mjablecnik"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/mjablecnik/how-large-is-flutter-vs-react-native-community-in-2021-2df5" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How large is Flutter vs React Native community in 2021&lt;/h2&gt;
      &lt;h3&gt;Martin Jablečník ・ Mar 3 '21 ・ 4 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#reactnative&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#mobile&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>flutter</category>
      <category>reactnative</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>5 Reasons why I don't use GetX for application state management in Flutter</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Sat, 01 Jan 2022 17:20:06 +0000</pubDate>
      <link>https://dev.to/mjablecnik/5-reasons-why-i-dont-use-getx-for-application-state-management-in-flutter-4d5m</link>
      <guid>https://dev.to/mjablecnik/5-reasons-why-i-dont-use-getx-for-application-state-management-in-flutter-4d5m</guid>
      <description>&lt;p&gt;In my last &lt;a href="https://dev.to/mjablecnik/most-popular-flutter-state-management-in-2022-3he9"&gt;article&lt;/a&gt; I created large overview through all possible state management solutions and GetX is second the most popular State management in Flutter community right now.&lt;br&gt;
So why I am not using it?&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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: &lt;a href="https://www.reddit.com/r/FlutterDev/comments/po1bei/why_is_getx_such_a_bad_state_management/"&gt;Opinion 1&lt;/a&gt;, &lt;a href="https://www.reddit.com/r/FlutterDev/comments/kr2ld4/do_you_really_use_getx_to_build_flutter_app/gi82ihe/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3"&gt;Opinion 2&lt;/a&gt;, &lt;a href="https://www.reddit.com/r/FlutterDev/comments/kr2ld4/do_you_really_use_getx_to_build_flutter_app/gi7n987/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3"&gt;Opinion 3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are some my personal points why I am not using GetX:&lt;/p&gt;

&lt;h2&gt;
  
  
  1) Documentation isn't actual
&lt;/h2&gt;

&lt;p&gt;In documentation is not everything what is already implemented and it is missing for a long time there.&lt;br&gt;
For example:&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/jonataslaw/getx/issues/2077"&gt;https://github.com/jonataslaw/getx/issues/2077&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/issues/2067"&gt;https://github.com/jonataslaw/getx/issues/2067&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/issues/1643"&gt;https://github.com/jonataslaw/getx/issues/1643&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/issues/1380"&gt;https://github.com/jonataslaw/getx/issues/1380&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But there are not any answer from main maintainer of GetX.&lt;br&gt;
Version 4.2.0 was released in July 2021 and today is January 2022 and issues are still without answer.&lt;/p&gt;

&lt;p&gt;There is only one small piece of documentation for one month in WIP from some one volunteer: &lt;a href="https://github.com/jonataslaw/getx/pull/2032"&gt;https://github.com/jonataslaw/getx/pull/2032&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2) Nobody care about issues
&lt;/h2&gt;

&lt;p&gt;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.&lt;br&gt;
If maintainer doesn't have a time so he can entrust or find somebody for it -&amp;gt; GetX have a very big community but nobody did it.&lt;/p&gt;

&lt;h2&gt;
  
  
  3) Many opened pull requests without activity
&lt;/h2&gt;

&lt;p&gt;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:&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/pull/1699"&gt;https://github.com/jonataslaw/getx/pull/1699&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/pull/1787"&gt;https://github.com/jonataslaw/getx/pull/1787&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/pull/1806"&gt;https://github.com/jonataslaw/getx/pull/1806&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/pull/1860"&gt;https://github.com/jonataslaw/getx/pull/1860&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/pull/1866"&gt;https://github.com/jonataslaw/getx/pull/1866&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/pull/1957"&gt;https://github.com/jonataslaw/getx/pull/1957&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/pull/1999"&gt;https://github.com/jonataslaw/getx/pull/1999&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/pull/2017"&gt;https://github.com/jonataslaw/getx/pull/2017&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/pull/2029"&gt;https://github.com/jonataslaw/getx/pull/2029&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;We can also see that main author is merging mostly only himself PRs instead of solve others firstly..:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p_IYjNbI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p6yzq7gcr7ime0oqmaas.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p_IYjNbI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p6yzq7gcr7ime0oqmaas.png" alt="GetX commits" width="822" height="929"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4) GetX is doing too much things
&lt;/h2&gt;

&lt;p&gt;I feel this project is too big for only one person. &lt;br&gt;
GetX is solving: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;State management &lt;/li&gt;
&lt;li&gt;Depency injection &lt;/li&gt;
&lt;li&gt;Routing&lt;/li&gt;
&lt;li&gt;Internationalization &lt;/li&gt;
&lt;li&gt;making http requests&lt;/li&gt;
&lt;li&gt;many utilities for: dialogs, snackbars, bottomSheets&lt;/li&gt;
&lt;li&gt;and maybe many more..&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h2&gt;
  
  
  5) Too many bugs
&lt;/h2&gt;

&lt;p&gt;All previous points are leading into one result: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;In this big project will be a lot of bugs.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When come some update so it is danger that bring some bugs. Documentation is not updated and when you create some issue you can &lt;a href="https://github.com/jonataslaw/getx/issues?q=is%3Aissue+is%3Aopen+mjablecnik+"&gt;wait for a long time&lt;/a&gt; then it will be fixed (if sometimes) &lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;After some my experiences I left GetX and started to use &lt;a href="https://modular.flutterando.com.br/docs/intro"&gt;Modular&lt;/a&gt; for Routing and Dependency injection with &lt;a href="https://triple.flutterando.com.br/docs/intro/"&gt;Triple&lt;/a&gt; for State Management solution. After it I didn't find any problems.. &lt;/p&gt;

&lt;p&gt;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. ;-)&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
    </item>
    <item>
      <title>Most popular Flutter state management libraries in 2022</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Sat, 01 Jan 2022 01:37:05 +0000</pubDate>
      <link>https://dev.to/mjablecnik/most-popular-flutter-state-management-in-2022-3he9</link>
      <guid>https://dev.to/mjablecnik/most-popular-flutter-state-management-in-2022-3he9</guid>
      <description>&lt;p&gt;Edit: After one year I released new updated article here:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/mjablecnik" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--amuOGMqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--GJGgANX_--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/297262/290891de-eb8d-4304-aeae-65c6b979a293.jpg" alt="mjablecnik"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/mjablecnik/most-popular-flutter-state-management-libraries-in-2023-amc" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Most popular Flutter state management libraries in 2023&lt;/h2&gt;
      &lt;h3&gt;Martin Jablečník ・ Feb 10 ・ 5 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;

&lt;p&gt;Flutter is only toolkit which focus mainly into how to show your Statefull or Stateless widgets but doesn't solve a lot of problems with state management or architecture design of your application like some other frameworks.&lt;/p&gt;

&lt;p&gt;You are very free in how you will manage states and community around Flutter bring a lot of solutions how to do it.&lt;/p&gt;

&lt;p&gt;But many new developers can be confused too large choose of different packages solving state management problems so I decided to make this overview of the most popular Flutter state management packages with small description about them.&lt;/p&gt;

&lt;p&gt;I hope that you gain good overview about all packages which exists and will be helpful for choose right solution for you.&lt;/p&gt;




&lt;h2&gt;
  
  
  Bloc
&lt;/h2&gt;

&lt;p&gt;Bloc is probably the most popular state management solution which learn you also architectural pattern: Presentation, Bussiness Logic, Data (Repository, Provider)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easy for separate presentation from business logic&lt;/li&gt;
&lt;li&gt;Great documentation with many examples&lt;/li&gt;
&lt;li&gt;Dependency injection: Uses Provider internally to make it easy provide and access blocs throughout the widget tree.&lt;/li&gt;
&lt;li&gt;Can persist and restore states&lt;/li&gt;
&lt;li&gt;Support for undo and redo states&lt;/li&gt;
&lt;li&gt;Widely used by Flutter community&lt;/li&gt;
&lt;li&gt;Active development with many sponsors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maybe hard to understand for new developers&lt;/li&gt;
&lt;li&gt;Too many boilerplate code &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 8282 stars&lt;br&gt;
Pub.dev: 1400 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official Page: &lt;a href="https://bloclibrary.dev"&gt;https://bloclibrary.dev&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://bloclibrary.dev/#/gettingstarted"&gt;https://bloclibrary.dev/#/gettingstarted&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/felangel/bloc"&gt;https://github.com/felangel/bloc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OMm2g1HD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zlqxmmc6fgkk34fflw30.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OMm2g1HD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zlqxmmc6fgkk34fflw30.png" alt="Development activity" width="880" height="332"&gt;&lt;/a&gt; &lt;/p&gt;




&lt;h2&gt;
  
  
  GetX
&lt;/h2&gt;

&lt;p&gt;GetX is second most popular state management solution and very fast growing in popularity. Is also the most controversional and evoking conflicts in Flutter developer community because many developers hate this package due to antipatterns, bad testability or documentation, but many developers also love it due to simplicity and very short code which you write so then you feel more productive.&lt;/p&gt;

&lt;p&gt;I found some interesting opinions about this package in Reddit so you can make your own opinion: &lt;a href="https://www.reddit.com/r/FlutterDev/comments/po1bei/why_is_getx_such_a_bad_state_management/"&gt;Opinion 1&lt;/a&gt;, &lt;a href="https://www.reddit.com/r/FlutterDev/comments/kr2ld4/do_you_really_use_getx_to_build_flutter_app/gi82ihe/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3"&gt;Opinion 2&lt;/a&gt;, &lt;a href="https://www.reddit.com/r/FlutterDev/comments/kr2ld4/do_you_really_use_getx_to_build_flutter_app/gi7n987/?utm_source=reddit&amp;amp;utm_medium=web2x&amp;amp;context=3"&gt;Opinion 3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And here is discussion between author of GetX and authors of other state management solutions (Bloc and Provider) which probably cause many hates in Flutter community against GetX: &lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/issues/243"&gt;https://github.com/jonataslaw/getx/issues/243&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very simple for new Flutter developers&lt;/li&gt;
&lt;li&gt;Very short code&lt;/li&gt;
&lt;li&gt;Big popularity&lt;/li&gt;
&lt;li&gt;Solving also dependency injection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Package is solving too many things =&amp;gt; Vendor lock into only one big package&lt;/li&gt;
&lt;li&gt;Without any sponsors =&amp;gt; When author stop support of this package so you can rewrite whole your app from scratch&lt;/li&gt;
&lt;li&gt;Too big package which have too many issues&lt;/li&gt;
&lt;li&gt;Development isn't very active&lt;/li&gt;
&lt;li&gt;When you find some issue you can wait too very long time for fix&lt;/li&gt;
&lt;li&gt;Bad reputation in Flutter community&lt;/li&gt;
&lt;li&gt;Documentation is not actual&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 5687 stars&lt;br&gt;
Pub.dev: 7479 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: Only Github README&lt;br&gt;
Github: &lt;a href="https://github.com/jonataslaw/getx"&gt;https://github.com/jonataslaw/getx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0qgujckr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8v1c1ipr4yl2n6iw7d0w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0qgujckr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8v1c1ipr4yl2n6iw7d0w.png" alt="Development activity" width="880" height="326"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  States_Rebuilder
&lt;/h2&gt;

&lt;p&gt;States_Rebuilder is Flutter state management combined with a dependency injection solution and integrated router. &lt;br&gt;
I didn't tried a lot this package but when I see into documentation so I feel that author want to do too much things in one package (similar like GetX) instead of focus only into state management solution..&lt;br&gt;&lt;br&gt;
Package solve also: &lt;br&gt;
internationalization, form validation, authentication, server queries, etc..&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Separate presentation from business logic&lt;/li&gt;
&lt;li&gt;Can persist and restore states&lt;/li&gt;
&lt;li&gt;Support for undo and redo states&lt;/li&gt;
&lt;li&gt;Built-in dependency injection system&lt;/li&gt;
&lt;li&gt;Development is active&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is doing too much things (not only state management)&lt;/li&gt;
&lt;li&gt;Only one maintainer without sponsors&lt;/li&gt;
&lt;li&gt;Not so popular (Isn't widely used) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 442 stars&lt;br&gt;
Pub.dev: 332 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: &lt;a href="https://github.com/GIfatahTH/states_rebuilder/tree/master/states_rebuilder_package#readme"&gt;https://github.com/GIfatahTH/states_rebuilder/tree/master/states_rebuilder_package#readme&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/GIfatahTH/states_rebuilder"&gt;https://github.com/GIfatahTH/states_rebuilder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ir7tv4bv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/drg5zb5yonj0r342385s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir7tv4bv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/drg5zb5yonj0r342385s.png" alt="Development activity" width="880" height="338"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Provider
&lt;/h2&gt;

&lt;p&gt;Provider is a wrapper around &lt;a href="https://api.flutter.dev/flutter/widgets/InheritedWidget-class.html"&gt;InheritedWidget&lt;/a&gt; for make it easier and simple use. This package is good for anybody who want to manage data with InheritedWidget but in more simple way. &lt;br&gt;
Provider is also used internally in Bloc package for provide and access bloc objects in widget tree and can be used also with: Triple, ValueNotifier, ChangeNotifier or other state objects. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make InheritedWidget more simple &lt;/li&gt;
&lt;li&gt;Widely used and popular&lt;/li&gt;
&lt;li&gt;Supported by Flutter team
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some problems which are solved in Riverpod&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 4007 stars&lt;br&gt;
Pub.dev: 5734 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: Only Github README&lt;br&gt;
Github: &lt;a href="https://github.com/rrousselGit/provider"&gt;https://github.com/rrousselGit/provider&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fLZBFIjy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vndhylmlpyapsnbew1ku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fLZBFIjy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vndhylmlpyapsnbew1ku.png" alt="Development activity" width="880" height="330"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Riverpod
&lt;/h2&gt;

&lt;p&gt;Riverpod is from same author as Provider and it is a reimplementation of &lt;a href="https://api.flutter.dev/flutter/widgets/InheritedWidget-class.html"&gt;InheritedWidgets&lt;/a&gt; from scratch because during development of Provider author was faced with some problems which removed in Riverpod.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple&lt;/li&gt;
&lt;li&gt;Similar to Provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Isn't widely used &lt;/li&gt;
&lt;li&gt;Is not so mature as Provider =&amp;gt; Recently left its experimental status&lt;/li&gt;
&lt;li&gt;Isn't fully stable yet&lt;/li&gt;
&lt;li&gt;Can be used in production but with caution (more info here: &lt;a href="https://github.com/rrousselGit/river_pod#is-it-safe-to-use-in-production"&gt;https://github.com/rrousselGit/river_pod#is-it-safe-to-use-in-production&lt;/a&gt;) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 2289 stars&lt;br&gt;
Pub.dev: 1282 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: &lt;a href="https://riverpod.dev"&gt;https://riverpod.dev&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://riverpod.dev/docs/getting_started"&gt;https://riverpod.dev/docs/getting_started&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/rrousselGit/river_pod"&gt;https://github.com/rrousselGit/river_pod&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GuDXpa6c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2gteereow4fqe28eazeu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GuDXpa6c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2gteereow4fqe28eazeu.png" alt="Development activity" width="880" height="332"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Modular + Triple
&lt;/h2&gt;

&lt;p&gt;Modular and Triple are 2 different packages but work great with together.&lt;br&gt;
These packages (and many others) are developed by Flutterando Community which is huge Flutter community from Brasil.&lt;br&gt;
Triple is simple package for manage your state by Segmented State Pattern and Modular provide DI and Routing with &lt;a href="https://dev.to/mjablecnik/flutter-modular-architecture-2f15"&gt;modular project structure&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very simple development without boilerplate code
&lt;/li&gt;
&lt;li&gt;Developed by community of developers&lt;/li&gt;
&lt;li&gt;Separate presentation from business logic&lt;/li&gt;
&lt;li&gt;Can persist and restore states&lt;/li&gt;
&lt;li&gt;Support for undo and redo states&lt;/li&gt;
&lt;li&gt;Very nice dependency injection with Modular&lt;/li&gt;
&lt;li&gt;Very nice documentation&lt;/li&gt;
&lt;li&gt;Triple is one simple package so you can use it also without Modular&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Triple is only one year old so it isn't known yet a lot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity of Modular:&lt;/strong&gt;&lt;br&gt;
GitHub: 1015 stars&lt;br&gt;
Pub.dev: 789 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity of Triple:&lt;/strong&gt;&lt;br&gt;
GitHub: 87 stars&lt;br&gt;
Pub.dev: 63 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links for Modular:&lt;/strong&gt; &lt;br&gt;
Official page: &lt;a href="https://modular.flutterando.com.br"&gt;https://modular.flutterando.com.br&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://modular.flutterando.com.br/docs/intro"&gt;https://modular.flutterando.com.br/docs/intro&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/Flutterando/modular"&gt;https://github.com/Flutterando/modular&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links for Triple:&lt;/strong&gt; &lt;br&gt;
Official page: &lt;a href="https://triple.flutterando.com.br"&gt;https://triple.flutterando.com.br&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://triple.flutterando.com.br/docs/intro"&gt;https://triple.flutterando.com.br/docs/intro&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/Flutterando/triple_pattern"&gt;https://github.com/Flutterando/triple_pattern&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity for Modular:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ps4SraWn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ow4xi7ygn26hzj90b857.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ps4SraWn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ow4xi7ygn26hzj90b857.png" alt="Development activity for Modular" width="880" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity for Triple:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j9u1O2pG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d34hubnjjqsne0ibef7a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j9u1O2pG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d34hubnjjqsne0ibef7a.png" alt="Development activity for Triple" width="880" height="331"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  GoRouter + GetIt + Triple
&lt;/h2&gt;

&lt;p&gt;If you don't like Modular or you don't want to be dependent on library which is doing 2 different things. So this is good alternative combination I think. &lt;br&gt;
Triple you know from previous point and GoRouter with GetIt are doing almost same things like Modular.&lt;br&gt;
This combination is good if you don't want to be depending only on one big package maintained by only one developer (like GetX or States_Rebuilder).&lt;br&gt;
But you have 3 different nice things developed from different developers and anyone from these packages can be changed anytime with some alternative.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very simple development without boilerplate code
&lt;/li&gt;
&lt;li&gt;Developed by more different developers&lt;/li&gt;
&lt;li&gt;Separate presentation from business logic&lt;/li&gt;
&lt;li&gt;Can persist and restore states&lt;/li&gt;
&lt;li&gt;Support for undo and redo states&lt;/li&gt;
&lt;li&gt;GoRouter and GetIt make same nice things like Modular&lt;/li&gt;
&lt;li&gt;GetIt is quite popular alternative for Provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Triple and GoRouter are only one year old so they aren't known yet a lot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity of GoRouter:&lt;/strong&gt;&lt;br&gt;
GitHub: 274 stars&lt;br&gt;
Pub.dev: 442 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity of GetIt:&lt;/strong&gt;&lt;br&gt;
GitHub: 833 stars&lt;br&gt;
Pub.dev: 1742 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links for GoRouter:&lt;/strong&gt; &lt;br&gt;
Official page: &lt;a href="https://gorouter.dev"&gt;https://gorouter.dev&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://gorouter.dev/getting-started"&gt;https://gorouter.dev/getting-started&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/csells/go_router"&gt;https://github.com/csells/go_router&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links for GetIt:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: Only GitHub README&lt;br&gt;
Github: &lt;a href="https://github.com/fluttercommunity/get_it"&gt;https://github.com/fluttercommunity/get_it&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity for GoRouter:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9PBwcO1w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/be0134czrj2vwup3kczc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9PBwcO1w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/be0134czrj2vwup3kczc.png" alt="Development activity for GoRouter" width="880" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity for GetIt:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2uNStKmD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ocsu6nji6cvy5swbp2vf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2uNStKmD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ocsu6nji6cvy5swbp2vf.png" alt="Development activity GetIt" width="880" height="330"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Cube
&lt;/h2&gt;

&lt;p&gt;If you are fan of GetX so probably you will like also this package because it is very similar to GetX state management. I am very curious if author of Cube will also want to create some big framework similar as author of GetX or not. :-) &lt;br&gt;
Cubes doesn't rely on RxDart but use of ChangeNotifier because it is a feature already available in Flutter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very simple for new users&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/RafaelBarbosatec/cube/issues/49"&gt;Have some interesting features which GetX doesn't have&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Author doesn't have a bad reputation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Young project (It is not known yet)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 12 stars&lt;br&gt;
Pub.dev: 19 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: Only Github README&lt;br&gt;
Github: &lt;a href="https://github.com/RafaelBarbosatec/cube"&gt;https://github.com/RafaelBarbosatec/cube&lt;/a&gt;&lt;br&gt;
Pub.dev: &lt;a href="https://pub.dev/packages/cubes"&gt;https://pub.dev/packages/cubes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3QxfofCV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lmepru67yutdir67mh60.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3QxfofCV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lmepru67yutdir67mh60.png" alt="Development activity" width="880" height="329"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Meedu
&lt;/h2&gt;

&lt;p&gt;Meedu is very interesting young project. In one package solves: State Management which is very similar to Riverpod, Dependency Injection which is very similar to DI from GetX and contains also Reactive programming which is very similar like State management in GetX.&lt;br&gt;
So if you like Riverpod and GetX DI this package is right for you ;-) &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple as Riverpod&lt;/li&gt;
&lt;li&gt;Simple DI like in GetX&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very young project&lt;/li&gt;
&lt;li&gt;Router module doesn't support Navigator 2.0 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 17 stars&lt;br&gt;
Pub.dev: 61 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: &lt;a href="https://flutter.meedu.app"&gt;https://flutter.meedu.app&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://flutter.meedu.app/docs/5.x.x/intro"&gt;https://flutter.meedu.app/docs/5.x.x/intro&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/darwin-morocho/flutter-meedu"&gt;https://github.com/darwin-morocho/flutter-meedu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jg2Ldw6U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g42ni8srauh43y0yb81e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jg2Ldw6U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g42ni8srauh43y0yb81e.png" alt="Development activity" width="880" height="330"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  MobX
&lt;/h2&gt;

&lt;p&gt;MobX is a state-management library that makes it simple to connect the reactive data of your application with the UI. This wiring is completely automatic and feels very natural. As the application-developer, you focus purely on what reactive-data needs to be consumed in the UI without worrying about keeping the two in sync.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very simple&lt;/li&gt;
&lt;li&gt;Nice for begginers&lt;/li&gt;
&lt;li&gt;Have some sponzors&lt;/li&gt;
&lt;li&gt;Without boilerplate code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You have to rebuild code after every change&lt;/li&gt;
&lt;li&gt;Developer activity looks very poor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 2051 stars&lt;br&gt;
Pub.dev: 758 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: &lt;a href="https://mobx.netlify.app"&gt;https://mobx.netlify.app&lt;/a&gt;&lt;br&gt;
Documentation: &lt;a href="https://mobx.netlify.app/getting-started"&gt;https://mobx.netlify.app/getting-started&lt;/a&gt;&lt;br&gt;
Github: &lt;a href="https://github.com/mobxjs/mobx.dart"&gt;https://github.com/mobxjs/mobx.dart&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qfhpD8IW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zmo93pcgjf1wh17zggvl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qfhpD8IW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zmo93pcgjf1wh17zggvl.png" alt="Development activity" width="880" height="330"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Redux
&lt;/h2&gt;

&lt;p&gt;Probably good choice for somebody who know Redux from React world. But this version for Dart seems that is not very popular, doesn't any good documentation and development is also very low. (Last update was 10 months ago)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maybe good for somebody who already know Redux&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I didn't found any good documentation&lt;/li&gt;
&lt;li&gt;Low development&lt;/li&gt;
&lt;li&gt;Not very used in Flutter community&lt;/li&gt;
&lt;li&gt;Last commit is old for 10 months &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt;&lt;br&gt;
GitHub: 1527 stars&lt;br&gt;
Pub.dev: 330 likes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;br&gt;
Official page: Only GitHub and Pub.dev&lt;br&gt;
Documentation: Only Github README&lt;br&gt;
Github: &lt;a href="https://github.com/brianegan/flutter_redux"&gt;https://github.com/brianegan/flutter_redux&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development activity:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pTsYlKQ4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/urgu7glwcmcd63w42ra1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pTsYlKQ4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/urgu7glwcmcd63w42ra1.png" alt="Development activity" width="880" height="332"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Packages which you can find but development is in too early stage:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Renesanse/bolter_flutter/graphs/contributors"&gt;Bolter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Packages which you can find but development is not so active:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/alibaba/fish-redux/graphs/contributors"&gt;Fish Redux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/letsar/binder/graphs/contributors"&gt;Binder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/escamoteur/flutter_command/graphs/contributors"&gt;flutter_command&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ragokan/okito/graphs/contributors"&gt;Okito&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/xamantra/momentum/graphs/contributors"&gt;Momentum&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I tried many various solutions and I had some bad or very bad experiences with some solutions.&lt;br&gt;&lt;br&gt;
Here are some my personal short opinions about every solutions which I described here. You can agree with me or not:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;Bloc&lt;/td&gt;
&lt;td&gt;Quite good, but for somebody it can be too complex or too boilerplate code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GetX&lt;/td&gt;
&lt;td&gt;For somebody it can be too controversional and too many bugs in one package with incomplete docs &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Provider&lt;/td&gt;
&lt;td&gt;I am not sure if use Provider or Riverpod &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RiverPod&lt;/td&gt;
&lt;td&gt;I am not sure if this is really ready for production &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;States_Rebuilder&lt;/td&gt;
&lt;td&gt;Too much things in one package like GetX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Modular + Triple&lt;/td&gt;
&lt;td&gt;Very nice solution and I didn't find any problems yet after half year of usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GoRouter + GetIt + Triple&lt;/td&gt;
&lt;td&gt;Very nice alternative for previous solution, but I didn't tried it yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MobX&lt;/td&gt;
&lt;td&gt;Very nice solution but package is finding maintainer and I am not sure about future of this project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redux&lt;/td&gt;
&lt;td&gt;I feel that this package is already abandoned&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cube&lt;/td&gt;
&lt;td&gt;Package is in too early stage and I am not sure if development will be also active in the future&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meedu&lt;/td&gt;
&lt;td&gt;Package is in too early stage and I am not sure if development will be also active in the future&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bolter&lt;/td&gt;
&lt;td&gt;Package is in too early stage&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Thank you very much for read this my long overview and if this article is useful for you, let me know it by give a like or some comments below. ;-)&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
    </item>
    <item>
      <title>Flutter Modular Architecture</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Sat, 04 Dec 2021 17:07:54 +0000</pubDate>
      <link>https://dev.to/mjablecnik/flutter-modular-architecture-2f15</link>
      <guid>https://dev.to/mjablecnik/flutter-modular-architecture-2f15</guid>
      <description>&lt;p&gt;If you are working on some big project, you can find that this project is bigger and bigger after some time and your controller, repository or view folders are full of hundred files..&lt;/p&gt;

&lt;p&gt;Normal MVC project structure:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7Jx1f18I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0wpx62po0m0tkpejy28u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7Jx1f18I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0wpx62po0m0tkpejy28u.png" alt="Normal MVC project structure" width="836" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But with Modular you can split your application into more modules/features by scope and make your software more readable.&lt;/p&gt;

&lt;p&gt;Project structure with modular:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ueblI-5F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9w0ymbcq4egvqcl3d3x8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ueblI-5F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9w0ymbcq4egvqcl3d3x8.png" alt="Project structure with modular" width="819" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is example of my project structure with modular:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bbL7-W9w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gv84ghoq2ev4u8gae14o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bbL7-W9w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gv84ghoq2ev4u8gae14o.png" alt="Project structure with modular" width="425" height="782"&gt;&lt;/a&gt;&lt;br&gt;
Where in core folder I have classes, widgets and utils which are shared for every module. And every module is one peace of my project which is very simple and replaceable without any big impact in other modules.&lt;/p&gt;

&lt;p&gt;Modular also solve dependency injection and routing between modules which are very nice solved.&lt;/p&gt;

&lt;p&gt;Here is example of my main module file:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CRdWgZpH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tfailw9nhdhtw8a336u9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CRdWgZpH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tfailw9nhdhtw8a336u9.png" alt="Example of my main module file" width="704" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And my other module files:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Yqf7djLo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w1vegay0rgtborp9q9q7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Yqf7djLo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w1vegay0rgtborp9q9q7.png" alt="Picking module file" width="838" height="279"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6qdlLNuK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dmxjhyku82ykp45ynx3m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6qdlLNuK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dmxjhyku82ykp45ynx3m.png" alt="Inventory module file" width="837" height="268"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Modular also works with any type of State Manager like Provider, RiverPod, Bloc, Cubit, Triple, MobX,  GetX, etc..&lt;/p&gt;

&lt;p&gt;More about Modular you can find here:&lt;br&gt;
&lt;a href="https://modular.flutterando.com.br/docs/intro"&gt;https://modular.flutterando.com.br/docs/intro&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Flutterando/modular"&gt;https://github.com/Flutterando/modular&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>architecture</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Take screenshot during Flutter integration tests</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Sun, 24 Oct 2021 22:40:52 +0000</pubDate>
      <link>https://dev.to/mjablecnik/take-screenshot-during-flutter-integration-tests-435k</link>
      <guid>https://dev.to/mjablecnik/take-screenshot-during-flutter-integration-tests-435k</guid>
      <description>&lt;p&gt;I would like introduce you a simple manual about how take screenshot during integration tests in Flutter.&lt;/p&gt;

&lt;p&gt;From Flutter 2.5.0 you can take screenshot in your integration tests by very simple way.&lt;/p&gt;

&lt;p&gt;First if you didn't setup integration tests yet, setup it by this manual: &lt;a href="https://flutter.dev/docs/cookbook/testing/integration/introduction"&gt;https://flutter.dev/docs/cookbook/testing/integration/introduction&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you have already it, you can continue by this way:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  1) Replace your test_driver/integration_test.dart by this code:
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'dart:io'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:integration_test/integration_test_driver_extended.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;Future&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="kd"&gt;async&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;integrationDriver&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="nl"&gt;onScreenshot:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;screenshotName&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;screenshotBytes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="kd"&gt;async&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;File&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'screenshots/&lt;/span&gt;&lt;span class="si"&gt;$screenshotName&lt;/span&gt;&lt;span class="s"&gt;.png'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nl"&gt;recursive:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;writeAsBytesSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;screenshotBytes&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Error occured: &lt;/span&gt;&lt;span class="si"&gt;$e&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It add &lt;strong&gt;onScreenshot&lt;/strong&gt; event handler into your integration tests and after take your screenshot it will save it into &lt;em&gt;screenshots&lt;/em&gt; directory in your project. (This directory will be created when doesn't exists.)&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  2) Go into your integration_test/app_test.dart and add:
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;binding&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;IntegrationTestWidgetsFlutterBinding&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;IntegrationTestWidgetsFlutterBinding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ensureInitialized&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This must be before all your testWidgets when tests are initialized.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  3) Into your test add:
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;binding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;takeScreenshot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'test-screenshot'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;If you run your tests on Android device, you must also add &lt;code&gt;convertFlutterSurfaceToImage()&lt;/code&gt; function before &lt;code&gt;takeScreenshot()&lt;/code&gt; because there must be converted a Flutter surface into image:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;binding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;convertFlutterSurfaceToImage&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;pumpAndSettle&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;binding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;takeScreenshot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'test-screenshot'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For iOS or web you don't need this convert function.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  4) You can create a simple helper function for take screenshot in various devices:
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'dart:io'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/foundation.dart'&lt;/span&gt; &lt;span class="kd"&gt;show&lt;/span&gt; &lt;span class="n"&gt;kIsWeb&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;takeScreenshot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;binding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="kd"&gt;async&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kIsWeb&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;binding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;takeScreenshot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'test-screenshot'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Platform&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;isAndroid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;binding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;convertFlutterSurfaceToImage&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;pumpAndSettle&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;binding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;takeScreenshot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'test-screenshot'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;So your tests can finally looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter/material.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:flutter_test/flutter_test.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:integration_test/integration_test.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'package:example_integration_test_screenshot/main.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="s"&gt;'helper.dart'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;


&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Test App'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="n"&gt;binding&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;IntegrationTestWidgetsFlutterBinding&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;IntegrationTestWidgetsFlutterBinding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ensureInitialized&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="n"&gt;testWidgets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Test with take screenshot'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="kd"&gt;async&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;pumpWidget&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MyApp&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;pumpAndSettle&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;tap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;byIcon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Icons&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;tap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;byIcon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Icons&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;tap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;byIcon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Icons&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;add&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;pumpAndSettle&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;takeScreenshot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tester&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;binding&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;So that is all. After run of your tests you can see a generated screenshot in &lt;code&gt;screenshots/test-screenshot.png&lt;/code&gt; file:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WAKd_ZhS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ijyqdd9r3tke05uo3tpa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WAKd_ZhS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ijyqdd9r3tke05uo3tpa.png" alt="Screenshot" width="720" height="1184"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope that this article was useful and you can support me by ❤️ or some comments below. 🙂&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>testing</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Most popular programming technology stacks</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Sun, 05 Sep 2021 20:29:52 +0000</pubDate>
      <link>https://dev.to/mjablecnik/most-popular-programming-technology-stacks-part-1-p2b</link>
      <guid>https://dev.to/mjablecnik/most-popular-programming-technology-stacks-part-1-p2b</guid>
      <description>&lt;p&gt;If you are on the start of your programming career, you are probably thinking about what technology stack you should to learn.&lt;/p&gt;

&lt;p&gt;You can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Application developer(multiplatform or specific platform)

&lt;ul&gt;
&lt;li&gt;Desktop (Windows, Linux, MacOS)&lt;/li&gt;
&lt;li&gt;Mobile (Android, iOS)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Web developer (Firefox, Chrome, Safari, Edge) &lt;/li&gt;
&lt;li&gt;Backend Service developer&lt;/li&gt;
&lt;li&gt;Game developer&lt;/li&gt;
&lt;li&gt;System developer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As application developer you can choose if you want to develop software for some specific platform (Mobile, Desktop, Web) or for all platforms as Multiplatform software developer.&lt;br&gt;
Here is list of the most popular programming technology stacks:&lt;/p&gt;

&lt;h1&gt;
  
  
  Desktop
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Windows
&lt;/h3&gt;

&lt;p&gt;If you want to develop only for Microsoft Windows, you will need to go into Microsoft stack:&lt;br&gt;
Language: C#&lt;br&gt;
Framework .NET and Windows Forms&lt;br&gt;
Editor: Microsoft Visual Studio&lt;br&gt;
OS family: Windows &lt;br&gt;
This technology is good for every fans of Microsoft.&lt;/p&gt;

&lt;h3&gt;
  
  
  MacOS
&lt;/h3&gt;

&lt;p&gt;If you want to develop only for Apple Mac OS, you will need to go into Apple stack:&lt;br&gt;
Language: Swift&lt;br&gt;
Framework SwiftUI&lt;br&gt;
Editor: Xcode&lt;br&gt;
OS family: MacOS&lt;br&gt;
This technology is good for every fan of Apple.&lt;/p&gt;

&lt;h1&gt;
  
  
  Mobile
&lt;/h1&gt;

&lt;h3&gt;
  
  
  iOS
&lt;/h3&gt;

&lt;p&gt;If you want to develop only for Apple iOS, you will need to go into Apple stack:&lt;br&gt;
Language: Swift&lt;br&gt;
Framework SwiftUI&lt;br&gt;
Editor: Xcode&lt;br&gt;
OS family: iOS&lt;br&gt;
This technology is good for every fan of Apple.&lt;/p&gt;

&lt;h3&gt;
  
  
  Android
&lt;/h3&gt;

&lt;p&gt;If you want to develop only for Android, you will need to go into Android stack:&lt;br&gt;
Language: Java or Kotlin&lt;br&gt;
Framework: Android SDK&lt;br&gt;
Editor: Android Studio&lt;br&gt;
OS family: Android&lt;br&gt;
This is good for every fans of Android applications and you can develop your software on any operating system.&lt;/p&gt;

&lt;h1&gt;
  
  
  Web
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Pages
&lt;/h3&gt;

&lt;p&gt;Language: JavaScript&lt;br&gt;
Framework: jQuery, Wordpress&lt;br&gt;
Editor: Any editor (MS Code, WebStorm or Atom)&lt;br&gt;
OS family: Browser in any platform&lt;br&gt;
This is for everybody who love web technologies but want to create only simple web pages (blog, personal or company page, eshop, etc).&lt;/p&gt;

&lt;h3&gt;
  
  
  Application
&lt;/h3&gt;

&lt;p&gt;Language: JavaScript or TypeScript&lt;br&gt;
Frameworks: React, Vue, Angular or Svelte&lt;br&gt;
Editor: Any editor (MS Code, WebStorm or Atom)&lt;br&gt;
OS family: Browser in any platform&lt;br&gt;
This is for everybody who love web technologies and want to create PWA (Progressive web application) or SPA (Single Page Application).&lt;/p&gt;

&lt;h1&gt;
  
  
  Cross-platform
&lt;/h1&gt;

&lt;p&gt;If you want to develop for Android, iOS, Windows, MacOS, Linux and Web browser with only one code, you can choose from this stacks:&lt;/p&gt;

&lt;h3&gt;
  
  
  Any Mobile
&lt;/h3&gt;

&lt;p&gt;Language: TypeScript&lt;br&gt;
Frameworks: React Native&lt;br&gt;
Editor: MS Code&lt;br&gt;
OS family: Android, iOS&lt;br&gt;
This is for everybody who already know React with web technologies and want to create some multiplatform mobile applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Any Desktop
&lt;/h3&gt;

&lt;p&gt;Language: TypeScript&lt;br&gt;
Frameworks: Electron&lt;br&gt;
Editor: MS Code&lt;br&gt;
OS family: Windows, MacOS or Unix like OS&lt;br&gt;
This is for everybody who already know web technologies and want to create some multiplatform mobile applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Any OS (All mobiles and all desktops)
&lt;/h3&gt;

&lt;p&gt;Language: Dart&lt;br&gt;
Framework: Flutter&lt;br&gt;
Editor: Android Studio or MS Code&lt;br&gt;
OS family: Android, iOS, Fuchsia, Windows, MacOS, Unix like OS&lt;br&gt;
Dart is very universal programming language and with Flutter it is very strong technology for creating really multiplatform applications.&lt;/p&gt;

&lt;h1&gt;
  
  
  Other alternatives
&lt;/h1&gt;

&lt;h3&gt;
  
  
  GNU/Linux
&lt;/h3&gt;

&lt;p&gt;If you want to develop for some Linux distro, you will need choose from two technologies:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gnome:&lt;/strong&gt;&lt;br&gt;
Language: C/C++/Vala&lt;br&gt;
Framework: GObject&lt;br&gt;
Editor: GNOME Builder&lt;br&gt;
OS family: Any Linux distribution&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;KDE:&lt;/strong&gt;&lt;br&gt;
Language: C++/QML&lt;br&gt;
Framework: Qt&lt;br&gt;
Editor: Qt Creator&lt;br&gt;
OS family: Any Linux distribution&lt;/p&gt;

&lt;p&gt;This is good for everyone who is fan into Free &amp;amp; Open Source software and want to develop software for freedom world.&lt;/p&gt;

&lt;h3&gt;
  
  
  Alternative mobile phones (Ubuntu phone, Plasma mobile, Sailfish, pureOS)
&lt;/h3&gt;

&lt;p&gt;Language: C/C++/QML/Vala/Python&lt;br&gt;
Framework: GObject or Qt&lt;br&gt;
Editor: GNOME Builder or Qt Creator&lt;br&gt;
OS family: Any Linux distribution&lt;br&gt;
This is for every fans who love open source software and any mainstream alternatives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I know it is a lot of technologies which you can learn and use.. But this is only for programming Mobile, Desktop or Web applications..&lt;br&gt;
We have also a lot of technologies for develop Games, Backend services or Embedded systems.&lt;br&gt;
These I want to add into my next articles. If you are interested in about this so you can follow me and you will be notified for my next articles.. ;-)&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Best CSS frameworks in 2021</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Mon, 09 Aug 2021 13:35:12 +0000</pubDate>
      <link>https://dev.to/mjablecnik/best-css-frameworks-in-2021-1fb5</link>
      <guid>https://dev.to/mjablecnik/best-css-frameworks-in-2021-1fb5</guid>
      <description>&lt;p&gt;During development of web Frontend you can see a huge amount of CSS frameworks which you can use for simplification of your development.&lt;br&gt;
But which you should really use? That can be very hard to answer this question.&lt;br&gt;
I decided to try answer it by comparison of all frameworks what exists right now.&lt;/p&gt;

&lt;p&gt;Here is my list:&lt;/p&gt;

&lt;h1&gt;
  
  
  Bootstrap
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 5.1.0&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 152K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; active&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 10 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 2&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 1236&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 21K&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 2,662,212 Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; 12.4K&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gUzEEuWj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fwnsszuiob7f3r19m05g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gUzEEuWj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fwnsszuiob7f3r19m05g.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Foundation
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 6.6.3&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 29.1K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; without activity for last 1 year&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 8 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 0&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 1028&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 17K&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 24 Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W35ODo5---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/27itba1lq2xbc8wetnxw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W35ODo5---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/27itba1lq2xbc8wetnxw.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Bulma
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 0.9.3&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 44K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; low activity&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 5.5 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 1&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 362&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 1631&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 160K Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; 71&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y5USfiMO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sjiw15ewime6k63v2qwc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y5USfiMO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sjiw15ewime6k63v2qwc.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Tailwind CSS
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 2.2.7&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 45.4K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; quite good activity&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 3 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 1&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 184&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 4K&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 265K Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; 4.5K&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7sB8qiRR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f029m58r7txp8y6bza2i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7sB8qiRR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f029m58r7txp8y6bza2i.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  HTML5 Boilerplate
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 8.0.0&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 51K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; low activity&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 11 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 2&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 258&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 2123&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 2.1K Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M85diADO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pf52t1y55wifsb50sxy3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M85diADO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pf52t1y55wifsb50sxy3.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Metro UI
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 4.5.0&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 6.8K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; very active&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 6.5 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 1&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 51&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 3010&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 173 Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w9q3VRTE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/03v7rby0gqsrxmveghb1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w9q3VRTE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/03v7rby0gqsrxmveghb1.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  UIkit
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 3.7.2&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 17K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; active&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 6.5 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 2&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 32&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 4606&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 8.8K Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; 17&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g5rg8d8e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uufcke11a9dvwdg1aqc3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g5rg8d8e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uufcke11a9dvwdg1aqc3.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Materialize
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 1.0.0&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 38.6K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; very low activity&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 4 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 0&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 261&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 4K&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 76.2K Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; 22&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9vWhGK7b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xig8vcfmolhit5cgjz9v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9vWhGK7b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xig8vcfmolhit5cgjz9v.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  MUI
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 0.10.2&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 4.4K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; without activity&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 4 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 0&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 28&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 647&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 2.4K Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u6TOkRez--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qa1mgnlb5v6xl91h4ahg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u6TOkRez--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qa1mgnlb5v6xl91h4ahg.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Cirrus
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 0.6.2.1&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 812&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; active&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 4,5 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 1&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 8&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 904&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 0 Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--J6K-_-Wp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j9xm2w3wp2x93ri33t0g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J6K-_-Wp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j9xm2w3wp2x93ri33t0g.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Montage
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 17.2.1&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 1.5K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; without activity for 1,5 years&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 7 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 0&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 35&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 5697&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; BSD&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 0 Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PFOVKEjQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cvpgerg12cxnej93uehx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PFOVKEjQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cvpgerg12cxnej93uehx.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Pure.css
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; v2.0.6&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 21.8K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; very low activity&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 1.5 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 0 (project is finding maintainer)&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 64&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 659&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; BSD&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 4.1 Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ss30_We3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xkrnm8ebnp2itz1l5msw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ss30_We3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xkrnm8ebnp2itz1l5msw.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Semantic UI
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 2.4.1&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 49.5K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; without activity for 3 years&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 6 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 0&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 201&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 6684&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 12.6 Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uc6bX_A0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/35fbg87k5ltu6jpclv1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uc6bX_A0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/35fbg87k5ltu6jpclv1g.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Fomantic UI
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 2.8.8&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 2.6K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; active&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 9 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 1&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 252&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 8K&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 1K Github projects&lt;br&gt;
&lt;strong&gt;Reddit followers:&lt;/strong&gt; -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Qnuxt1dG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/il4437wgkr1xdx9kcgik.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qnuxt1dG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/il4437wgkr1xdx9kcgik.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Material Components Web
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; v12.0.0&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 15.7K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; active&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 8 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 2&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 380&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 6835&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 6K Github projects&lt;br&gt;
&lt;strong&gt;Git repository:&lt;/strong&gt; &lt;a href="https://github.com/material-components/material-components-web"&gt;https://github.com/material-components/material-components-web&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kEjN4VA---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cnuyvu6b8eitmo7bwhcd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kEjN4VA---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cnuyvu6b8eitmo7bwhcd.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Material Design Lite
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 1.3.0&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 31.8K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; without activity for 5 years&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 2 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 0&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 178&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 2872&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; Apache&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 11.1K Github projects&lt;br&gt;
&lt;strong&gt;Git repository:&lt;/strong&gt; &lt;a href="https://github.com/google/material-design-lite"&gt;https://github.com/google/material-design-lite&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IT4bfjOR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d56okzftip5f68i1yo4a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IT4bfjOR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d56okzftip5f68i1yo4a.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Skeleton
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Latest stable version:&lt;/strong&gt; 2.0.4&lt;br&gt;
&lt;strong&gt;Github stars:&lt;/strong&gt; 18.3K&lt;br&gt;
&lt;strong&gt;Development:&lt;/strong&gt; without activity for 7 years&lt;br&gt;
&lt;strong&gt;Long of active development:&lt;/strong&gt; 1 years&lt;br&gt;
&lt;strong&gt;Active maintainers:&lt;/strong&gt; 0&lt;br&gt;
&lt;strong&gt;Contributors:&lt;/strong&gt; 25&lt;br&gt;
&lt;strong&gt;Number of commits:&lt;/strong&gt; 167&lt;br&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;br&gt;
&lt;strong&gt;Used by:&lt;/strong&gt; 0 Github projects&lt;br&gt;
&lt;strong&gt;Git repository:&lt;/strong&gt; &lt;a href="https://github.com/dhg/Skeleton"&gt;https://github.com/dhg/Skeleton&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ASpmVdrn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m8cu3k3iha1k5q5nsu1r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ASpmVdrn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m8cu3k3iha1k5q5nsu1r.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;So from 17 the most known CSS frontend frameworks we can choose only 9 projects which are under active mainteinance yet:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; Name &lt;/th&gt;
&lt;th&gt; Activity &lt;/th&gt;
&lt;th&gt; Number of maintainers &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Metro UI &lt;/td&gt;
&lt;td&gt; very active &lt;/td&gt;
&lt;td&gt; 1 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Bootstrap &lt;/td&gt;
&lt;td&gt; active &lt;/td&gt;
&lt;td&gt; 2 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; UIkit &lt;/td&gt;
&lt;td&gt; active &lt;/td&gt;
&lt;td&gt; 2 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Material Components Web &lt;/td&gt;
&lt;td&gt; active &lt;/td&gt;
&lt;td&gt; 2 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Tailwind CSS &lt;/td&gt;
&lt;td&gt; good activity &lt;/td&gt;
&lt;td&gt; 1 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Cirrus &lt;/td&gt;
&lt;td&gt; good activity &lt;/td&gt;
&lt;td&gt; 1 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Fomantic UI &lt;/td&gt;
&lt;td&gt; good activity &lt;/td&gt;
&lt;td&gt; 1 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; HTML5 Boilerplate &lt;/td&gt;
&lt;td&gt; low activity &lt;/td&gt;
&lt;td&gt; 2 &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; Bulma &lt;/td&gt;
&lt;td&gt; low activity &lt;/td&gt;
&lt;td&gt; 1 &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Probably on the first place is &lt;strong&gt;Bootstrap&lt;/strong&gt; which have the most active developers and community around this project.&lt;br&gt;
On second and third place are &lt;strong&gt;UIkit&lt;/strong&gt; and &lt;strong&gt;Material Components Web&lt;/strong&gt; which are maintained very well with two maintainers.&lt;/p&gt;

&lt;p&gt;But if you want to use some alternative to this 3 top frameworks, you can choose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Metro UI&lt;/strong&gt; -&amp;gt; if you want to have design like Metro UI in Microsoft Windows &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS&lt;/strong&gt; -&amp;gt; where you can style your project in very different way&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cirrus&lt;/strong&gt; -&amp;gt; if you want to have some lightweight framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fomantic UI&lt;/strong&gt; -&amp;gt; if you want have successor for Semantic UI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also you can try &lt;strong&gt;Bulma&lt;/strong&gt; or &lt;strong&gt;HTML5 Boilerplate&lt;/strong&gt; but only for personal home made projects because there is not so big development like in prevous frameworks and is here a risk that it become dead after some years like other frameworks from my list.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How large is Flutter vs React Native community in 2021</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Wed, 03 Mar 2021 10:49:24 +0000</pubDate>
      <link>https://dev.to/mjablecnik/how-large-is-flutter-vs-react-native-community-in-2021-2df5</link>
      <guid>https://dev.to/mjablecnik/how-large-is-flutter-vs-react-native-community-in-2021-2df5</guid>
      <description>&lt;p&gt;In some blogs or articles I am often reading that Flutter community is small or smaller then React Native community. &lt;/p&gt;

&lt;p&gt;So I decided to create a small survey where I went through various social sites and compared how Flutter community is really large opposite to React Native.&lt;/p&gt;

&lt;p&gt;Here are my results:&lt;/p&gt;

&lt;h1&gt;
  
  
  Reddit
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 63.8k&lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 70.5k&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/FlutterDev/"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TeYZqzlI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rpjk18n3rlsdn70mgbkg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TeYZqzlI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rpjk18n3rlsdn70mgbkg.png" alt="alt text" width="880" height="397"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.reddit.com/r/reactnative/"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K7m3iCS5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z6jvbgo2gykzflmvtudr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K7m3iCS5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z6jvbgo2gykzflmvtudr.png" alt="alt text" width="880" height="434"&gt;&lt;/a&gt;&lt;br&gt;
  &lt;br&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  StackOverflow
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 78,544 questions &lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 95,080 questions &lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/tagged/flutter?sort=Newest&amp;amp;edited=true"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kLBNwE1G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/01nfze6gkd7a65bkigmd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kLBNwE1G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/01nfze6gkd7a65bkigmd.png" alt="alt text" width="880" height="487"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://stackoverflow.com/questions/tagged/react-native?sort=Newest&amp;amp;edited=true"&gt;Source&lt;/a&gt; &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I3WRsu_W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nmmgkt7eaxnmkl93aarf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I3WRsu_W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nmmgkt7eaxnmkl93aarf.png" alt="alt text" width="880" height="491"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Flutter:&lt;/strong&gt; 19,383 questions with no answers&lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 25,101 questions with no answers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/tagged/flutter?sort=Newest&amp;amp;filters=NoAnswers&amp;amp;edited=true"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3H_cMl7v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/68yxiwle7rehvyrdz84m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3H_cMl7v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/68yxiwle7rehvyrdz84m.png" alt="alt text" width="880" height="493"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;a href="https://stackoverflow.com/questions/tagged/react-native?sort=Newest&amp;amp;filters=NoAnswers&amp;amp;edited=true"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w_4UXNek--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lmergyg9hm1ncz38lxa2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w_4UXNek--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lmergyg9hm1ncz38lxa2.png" alt="alt text" width="880" height="492"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;br&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Github
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stars: 114K&lt;/li&gt;
&lt;li&gt;forks: 16.3K&lt;/li&gt;
&lt;li&gt;contributors: 811&lt;/li&gt;
&lt;li&gt;commits: 22 905&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;React Native:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stars: 93.7K&lt;/li&gt;
&lt;li&gt;forks: 20.6K&lt;/li&gt;
&lt;li&gt;contributors: 2 259&lt;/li&gt;
&lt;li&gt;commits: 22 050&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here it is interesting because React Native have a lot of contributors contributing for a short time but Flutter have more contributors contributing for a large time.&lt;br&gt;
Result is that both projects have a same number of commits.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/flutter/flutter"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BfixLMef--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2mxavoh7ucy8ieqt1sxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BfixLMef--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2mxavoh7ucy8ieqt1sxt.png" alt="alt text" width="880" height="127"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/facebook/react-native"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ii5fWr-T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g2q4mkbh1hwrjaam0n9c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ii5fWr-T--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g2q4mkbh1hwrjaam0n9c.png" alt="alt text" width="880" height="123"&gt;&lt;/a&gt;&lt;br&gt;
  &lt;br&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Dev.to
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 1220 articles &lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 1723 articles&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/t/flutter"&gt;Source&lt;/a&gt; &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4HQTr14X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p0cd8cmv5we6l8prz36e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4HQTr14X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p0cd8cmv5we6l8prz36e.png" alt="alt text" width="311" height="441"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://dev.to/t/reactnative"&gt;Source&lt;/a&gt; &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w1H5ftxv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ukv20q2d5ax4m7hhd194.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w1H5ftxv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ukv20q2d5ax4m7hhd194.png" alt="alt text" width="315" height="303"&gt;&lt;/a&gt; &lt;br&gt;
 &lt;br&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Gitter
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 12662 people&lt;br&gt;
&lt;strong&gt;ReactNative:&lt;/strong&gt; 1958 people&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gitter.im/flutter/flutter"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--03yseuB4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/chi2tg2sbw58osjab4nv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--03yseuB4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/chi2tg2sbw58osjab4nv.png" alt="alt text" width="880" height="168"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;a href="https://gitter.im/fear48/react-native"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--41deToAU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hden7nnjb77hj5n1ks03.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--41deToAU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hden7nnjb77hj5n1ks03.png" alt="alt text" width="880" height="158"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;br&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Facebook
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 129.7K people&lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 111K people&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.facebook.com/groups/409645446115733"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i78Gknxn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6lz7d72zss5ohv2jeruc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i78Gknxn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6lz7d72zss5ohv2jeruc.png" alt="alt text" width="880" height="558"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;a href="https://www.facebook.com/groups/669915249871846"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LbTYSBuE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7o1kbp01irvf15c5si9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LbTYSBuE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7o1kbp01irvf15c5si9.png" alt="alt text" width="880" height="691"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;br&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Twitter
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;follovers: 131K &lt;/li&gt;
&lt;li&gt;tweets: 1344&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;React Native:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;followers: 104.1K&lt;/li&gt;
&lt;li&gt;tweets: 551&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://twitter.com/flutterdev"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mDBwCvhS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sdhgdthar809uxomkr5y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mDBwCvhS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sdhgdthar809uxomkr5y.png" alt="alt text" width="712" height="635"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/reactnative"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V-jALl83--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ddqfgjy015955m6j9dh2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V-jALl83--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ddqfgjy015955m6j9dh2.png" alt="alt text" width="681" height="628"&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  LinkedIn
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 13.6K people&lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 23.1K people&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/search/results/groups/?keywords=flutter&amp;amp;origin=GLOBAL_SEARCH_HEADER"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rm4I5kwY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iyeb77v7ydn45v0qte5e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rm4I5kwY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iyeb77v7ydn45v0qte5e.png" alt="alt text" width="625" height="498"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://www.linkedin.com/search/results/groups/?keywords=react%20native&amp;amp;origin=GLOBAL_SEARCH_HEADER"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I2KYJICz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dp4hubw1kh31tgd2jtva.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I2KYJICz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dp4hubw1kh31tgd2jtva.png" alt="alt text" width="630" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Instagram
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Flutter:&lt;/strong&gt; 20.8K followers&lt;br&gt;
&lt;strong&gt;React Native:&lt;/strong&gt; 3369 followers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/flutter.developers/"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JJOsd9S2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjpkyic6po1p4eaw0wy6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JJOsd9S2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjpkyic6po1p4eaw0wy6.png" alt="alt text" width="880" height="423"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/reactnativedevelopers/"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fAEZwTjF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/da817scuji60kixgf3wb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fAEZwTjF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/da817scuji60kixgf3wb.png" alt="alt text" width="880" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.instagram.com/reactnative.modules/"&gt;Source&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Psq1HAY3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t7g90ntuuawepdmgdwnh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Psq1HAY3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t7g90ntuuawepdmgdwnh.png" alt="alt text" width="880" height="471"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Overview:
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt; 
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Flutter&lt;/th&gt;
&lt;th&gt;React Native&lt;/th&gt;
&lt;th&gt;Difference&lt;/th&gt;
&lt;th&gt;Winner&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;First stable release&lt;/td&gt;
&lt;td&gt;12.4. 2018&lt;/td&gt;
&lt;td&gt;27.3. 2015&lt;/td&gt;
&lt;td&gt;3 years&lt;/td&gt;
&lt;td&gt;RN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reddit followers&lt;/td&gt;
&lt;td&gt;63.8K&lt;/td&gt;
&lt;td&gt;70.5K&lt;/td&gt;
&lt;td&gt;6.7K&lt;/td&gt;
&lt;td&gt;RN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;StackOverflow all questions&lt;/td&gt;
&lt;td&gt;78 544&lt;/td&gt;
&lt;td&gt;95 080&lt;/td&gt;
&lt;td&gt;16 536&lt;/td&gt;
&lt;td&gt;RN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;StackOverflow questions without answer&lt;/td&gt;
&lt;td&gt;19 383&lt;/td&gt;
&lt;td&gt;25 101&lt;/td&gt;
&lt;td&gt;5 718&lt;/td&gt;
&lt;td&gt;Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Github stars&lt;/td&gt;
&lt;td&gt;114K&lt;/td&gt;
&lt;td&gt;93.7K&lt;/td&gt;
&lt;td&gt;20.3K&lt;/td&gt;
&lt;td&gt;Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Github commits&lt;/td&gt;
&lt;td&gt;22 905&lt;/td&gt;
&lt;td&gt;22 050&lt;/td&gt;
&lt;td&gt;855&lt;/td&gt;
&lt;td&gt;Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dev.to articles&lt;/td&gt;
&lt;td&gt;1220&lt;/td&gt;
&lt;td&gt;1723&lt;/td&gt;
&lt;td&gt;503&lt;/td&gt;
&lt;td&gt;RN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gitter active users&lt;/td&gt;
&lt;td&gt;12 662&lt;/td&gt;
&lt;td&gt;1 958&lt;/td&gt;
&lt;td&gt;10 704&lt;/td&gt;
&lt;td&gt;Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Facebook followers&lt;/td&gt;
&lt;td&gt;129.7K&lt;/td&gt;
&lt;td&gt;111K&lt;/td&gt;
&lt;td&gt;18.7K&lt;/td&gt;
&lt;td&gt;Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twitter followers&lt;/td&gt;
&lt;td&gt;131K&lt;/td&gt;
&lt;td&gt;104.1K&lt;/td&gt;
&lt;td&gt;26.9K&lt;/td&gt;
&lt;td&gt;Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Twitter tweets&lt;/td&gt;
&lt;td&gt;1344&lt;/td&gt;
&lt;td&gt;551&lt;/td&gt;
&lt;td&gt;793&lt;/td&gt;
&lt;td&gt;Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedIn group followers&lt;/td&gt;
&lt;td&gt;13.6K&lt;/td&gt;
&lt;td&gt;23.1K&lt;/td&gt;
&lt;td&gt;9.5K&lt;/td&gt;
&lt;td&gt;RN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Instagram followers&lt;/td&gt;
&lt;td&gt;20.8K&lt;/td&gt;
&lt;td&gt;3369&lt;/td&gt;
&lt;td&gt;20.4K&lt;/td&gt;
&lt;td&gt;Flutter&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt; 

&lt;p&gt;So after look into the table overview we can see that both these communities have very similar size right now.&lt;br&gt;
But Flutter community is expanded through more various social platforms and is more active then React Native community.&lt;/p&gt;

&lt;p&gt;React Native is older by 3 years and have a huge source of JavaScript people from React web framework but they are not so active like Flutter which popularity and number of commits in Github have same number per half of time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2iPPzU0o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/htx99o5o4ibrjo9c981t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2iPPzU0o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/htx99o5o4ibrjo9c981t.png" alt="Alt Text" width="880" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>reactnative</category>
      <category>mobile</category>
      <category>programming</category>
    </item>
    <item>
      <title>IT development evolution for last 30 years</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Mon, 15 Feb 2021 16:53:29 +0000</pubDate>
      <link>https://dev.to/mjablecnik/it-development-evolution-for-last-30-years-1o51</link>
      <guid>https://dev.to/mjablecnik/it-development-evolution-for-last-30-years-1o51</guid>
      <description>&lt;p&gt;This is my a little thoughtful about most usage programming languages for last years and what will come probably in the future.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before 1990&lt;/strong&gt; were C, C++, Objective-C the most popular programing languages but problem was that this languages was too hard to learn and software development was too long.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1990-2000&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Began to appear other simpler languages with easy syntax and faster development. That was: Visual Basic, Python, Ruby or Java which had goal to make programming more simple with ability to support more platforms with one written code.&lt;/li&gt;
&lt;li&gt;In these years also were born the everyone's known web technologies: HTML, CSS, JavaScript and PHP for creating simple web pages.

&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2000-2010&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java was very successful among companies so Microsoft created C# as concurrent for Java in Windows. &lt;/li&gt;
&lt;li&gt;Also web technologies like PHP and JavaScript started be a very dominant in web development because these languages was only one solution for creating of web pages during 90s years. - But Ruby and Python started creating their web framework solutions (Django and Rails).&lt;/li&gt;
&lt;li&gt;JavaScript have a great jQuery library and support of AJAX.&lt;/li&gt;
&lt;li&gt;Apple created iPhone with iOS and started a new era of mobile development following by Google with Android.&lt;/li&gt;
&lt;li&gt;Facebook created its social network.&lt;/li&gt;
&lt;li&gt;So now we have a lot of different languages for different platforms (Desktop, Mobile, Web).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2010-2020&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web technologies growed up very fastly and JavaScript was rapidly evolved to creating web applications (React, Angular, Vue), Mobile Apps (React Native, Cordova, Ionic), Server side services (next.js, nest.js, nuxt.js, express, etc..) and Desktop applications (Electron).&lt;/li&gt;
&lt;li&gt;Of course PHP is still here thanks Wordpress or Joomla solutions for creating of web pages but fullstack web developers can use only JavaScript thanks to node.js&lt;/li&gt;
&lt;li&gt;Of course Microsoft is again developing TypeScript as a better concurrent to JavaScript and Xamarin for multiplatform mobile development.&lt;/li&gt;
&lt;li&gt;Also Microsoft after failure with Windows Phone is changing its opinions about open source software and now love Linux!! because probably want to entice all developers to close into its Azure cloud solution.&lt;/li&gt;
&lt;li&gt;And suddenly here are appearing some new languages like: Kotlin, Swift, Dart, Rust and Go as successors for Java, Objective-C, JavaScript or C/C++ with improved properties like: abilities for functional programming, cleaner code, better performance or null safety solution.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  What will be in the future?
&lt;/h2&gt;

&lt;p&gt;Now we have a lot of platforms, programming languages, frameworks or development tools for create any possible solution.&lt;br&gt;
Software companies are racing with each other who bring better multiplatform solution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JetBrains&lt;/strong&gt; with &lt;a href="https://kotlinlang.org/docs/multiplatform.html"&gt;Kotlin Multiplatform&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft&lt;/strong&gt; with &lt;a href="https://dotnet.microsoft.com/"&gt;C#/.NET Cross-platform&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google&lt;/strong&gt; with &lt;a href="https://dev.to/diachenko_maria/why-use-flutter-for-cross-platform-apps-15mm"&gt;Dart/Flutter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Facebook&lt;/strong&gt; and community around &lt;strong&gt;JavaScript/TypeScript&lt;/strong&gt; (React/Vue for web, React Native/Cordova, Electron)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scade&lt;/strong&gt; with &lt;a href="https://www.scade.io/"&gt;Swift for Android&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Between years &lt;strong&gt;2020-2030&lt;/strong&gt; will be probably run fight between these all technologies which will be provide better cross-platform support like Java vs C 30 years ago and which will be only solution for only some special things on some platforms.&lt;/p&gt;

&lt;p&gt;Because when companies want to create some applications or services. They doesn't want to pay a lot of different developers focused to different platforms (Web browser, Windows, Linux, Mac, iOS, Android, Wearable or other things)&lt;br&gt;
They want to have a few developers which can create same code for wide range of platforms with one simple technology. And young developers don't want to learn a lot of different languages for different platforms.&lt;/p&gt;

&lt;p&gt;This will be very interesting fight because every these technologies support very big companies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JetBrains&lt;/strong&gt; with &lt;strong&gt;Kotlin&lt;/strong&gt; is very improving Java language,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft&lt;/strong&gt; with &lt;strong&gt;C#&lt;/strong&gt; is very dominating in the most used of desktop operating systems,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google&lt;/strong&gt; with &lt;strong&gt;Dart/Flutter&lt;/strong&gt; and &lt;strong&gt;Go&lt;/strong&gt; is dominating in Web browsers and mobile operating systems&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Javascript/TypeScript&lt;/strong&gt; with &lt;strong&gt;React&lt;/strong&gt; have a strong community of web developers&lt;/li&gt;
&lt;li&gt;and &lt;strong&gt;Apple&lt;/strong&gt; is very strong Brand with personal computers and mobile phones.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally what will be the best we will see after years but every from these technologies are interesting and can give you some nice solution.&lt;/p&gt;

&lt;p&gt;But only developers decide which will be among TOP 10 technologies after next 10 years.&lt;br&gt;
I hope it will be technologies were are the most developers sutisfactioned:&lt;br&gt;
&lt;a href="https://2020.stateofjs.com/en-US/technologies/front-end-frameworks/"&gt;https://2020.stateofjs.com/en-US/technologies/front-end-frameworks/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages-loved"&gt;https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages-loved&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;P.S.: This video can be interesting for somebody ;)&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Og847HVwRSI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>programming</category>
      <category>development</category>
      <category>technology</category>
    </item>
    <item>
      <title>5 Reasons why I use GetX for my application state management</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Thu, 11 Feb 2021 18:28:29 +0000</pubDate>
      <link>https://dev.to/mjablecnik/why-i-use-getx-for-my-application-state-management-gal</link>
      <guid>https://dev.to/mjablecnik/why-i-use-getx-for-my-application-state-management-gal</guid>
      <description>&lt;p&gt;As I wrote in my last &lt;a href="https://dev.to/mjablecnik/most-popular-flutter-libraries-for-state-management-l53"&gt;article&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GetX is one from 3 of the most popular and active maintained state managers and here are some reasons why I like it:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1) Increasing popularity:
&lt;/h2&gt;

&lt;p&gt;Although is here only one year and is younger then Bloc or Provider, his popularity grow very rapidly.&lt;/p&gt;

&lt;p&gt;Below in the graph you can see how the popularity is growing compared with other State managers in last 3 years:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q4McOsen--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v2lgvlm7p590g4efg1lr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q4McOsen--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v2lgvlm7p590g4efg1lr.png" alt="alt text" width="880" height="549"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://star-history.t9t.io/#jonataslaw/getx&amp;amp;rrousselGit/provider&amp;amp;felangel/bloc&amp;amp;fluttercommunity/get_it&amp;amp;rrousselGit/river_pod&amp;amp;mobxjs/mobx.dart&amp;amp;brianegan/flutter_redux"&gt;Link to source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can see that GetX is growing up with the same speed as Bloc one year ago which is the most popular state management library in Flutter today.&lt;/p&gt;

&lt;p&gt;So we can suppose that this grow will be continue also in the future.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  2) Simplicity
&lt;/h2&gt;

&lt;p&gt;For me as for beginner was very hard to work with Bloc, understand how streams works and create some useful app in short time. &lt;br&gt;
With Provider it was better but result code wasn't so pretty and readability was a little worse. &lt;br&gt;
But with GetX was development very pleasure. Firstly I understood a lot in very short time. I cannot write a lot of code and I can fully focus to my application development without finding why something doesn't work.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  3) Very short code:
&lt;/h2&gt;

&lt;p&gt;Here you can see a simple comparison how number lines of code take the one same list_detail_mvc application written in different state managers:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yevQlNQg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ztnvoqrbtodmycjbnguy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yevQlNQg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ztnvoqrbtodmycjbnguy.png" alt="alt text" width="870" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mjablecnik/new_flutter_template/blob/main/evaluations/line-count.md"&gt;Link to source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can see that with GetX application take only 132 lines of code which is lower than same application written with any other popular State manager.&lt;/p&gt;

&lt;p&gt;So it can be also reason why use GetX because with less code you can have also less bugs and better overview in the project.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  4) You don't need a StatefulWidget:
&lt;/h2&gt;

&lt;p&gt;With GetX you cannot use a StatefulWidget. &lt;br&gt;
Instead of it you use &lt;strong&gt;GetxController&lt;/strong&gt; with Obx or GetBuilder for state updates and &lt;strong&gt;GetView&lt;/strong&gt; which you can use instead of StatelessWidget.&lt;/p&gt;

&lt;p&gt;All together give you a cleaner code without any useless boilerplate:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K4DLTm6g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/y2hibtal0vg3d8x9ifsu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K4DLTm6g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/y2hibtal0vg3d8x9ifsu.png" alt="alt text" width="616" height="632"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2BOk1QON--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ryp67zxeie1lgs30u2at.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2BOk1QON--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ryp67zxeie1lgs30u2at.png" alt="alt text" width="634" height="638"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mjablecnik/new_flutter_template/tree/main/evaluations/list_detail_mvc_getx"&gt;Source code is here&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  5) Not only a state manager:
&lt;/h2&gt;

&lt;p&gt;GetX contains all ecosystem useful packages where is: &lt;strong&gt;State manager&lt;/strong&gt;, &lt;strong&gt;Dependency manager&lt;/strong&gt;, &lt;strong&gt;Navigation manager&lt;/strong&gt;, &lt;strong&gt;Internationalization&lt;/strong&gt; and other very handy functions which make your development more simple and coding will be faster without any useless boilerplate code.&lt;br&gt;
So you cannot use many different packages but you import only one and use everything what can gives you.&lt;br&gt;
For more info look into:&lt;br&gt;
&lt;a href="https://medium.com/flutter-community/the-flutter-getx-ecosystem-state-management-881c7235511d"&gt;GetX Ecosystem - State Management&lt;/a&gt;&lt;br&gt;
&lt;a href="https://medium.com/flutter-community/the-flutter-getx-ecosystem-dependency-injection-8e763d0ec6b9"&gt;GetX Ecosystem - Dependency injection&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or official &lt;a href="https://github.com/jonataslaw/getx/tree/master/documentation/en_US"&gt;GetX documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you also want to see some code, you can look into my &lt;a href="https://github.com/mjablecnik?tab=repositories"&gt;Github repositories&lt;/a&gt; where I have a lot of small projects written with GetX when I has been learning with Flutter.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;I hope this article is useful for you and if yes, let me know it by give a like or some small comments below.. ;) &lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
Edit: After one year later I released my new article about GetX:&lt;br&gt;
 &lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/mjablecnik" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--amuOGMqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--GJGgANX_--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/297262/290891de-eb8d-4304-aeae-65c6b979a293.jpg" alt="mjablecnik"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/mjablecnik/5-reasons-why-i-dont-use-getx-for-application-state-management-in-flutter-4d5m" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;5 Reasons why I don't use GetX for application state management in Flutter&lt;/h2&gt;
      &lt;h3&gt;Martin Jablečník ・ Jan 1 '22 ・ 3 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>flutter</category>
      <category>dart</category>
    </item>
    <item>
      <title>Most popular Flutter state management libraries in 2021</title>
      <dc:creator>Martin Jablečník</dc:creator>
      <pubDate>Thu, 11 Feb 2021 12:33:44 +0000</pubDate>
      <link>https://dev.to/mjablecnik/most-popular-flutter-libraries-for-state-management-l53</link>
      <guid>https://dev.to/mjablecnik/most-popular-flutter-libraries-for-state-management-l53</guid>
      <description>&lt;p&gt;Edit: After one year I released new updated article:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/mjablecnik" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--amuOGMqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--GJGgANX_--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/297262/290891de-eb8d-4304-aeae-65c6b979a293.jpg" alt="mjablecnik"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/mjablecnik/most-popular-flutter-state-management-in-2022-3he9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Most popular Flutter state management libraries in 2022&lt;/h2&gt;
      &lt;h3&gt;Martin Jablečník ・ Jan 1 '22 ・ 9 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;&lt;br&gt;&lt;br&gt;
During learning of Flutter I see that exists many various tools and libraries for state management in Flutter apps.&lt;br&gt;
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?&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;So here is my list:&lt;/p&gt;
&lt;h2&gt;
  
  
  Bloc
&lt;/h2&gt;

&lt;p&gt;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.&lt;br&gt;
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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 1735 likes&lt;br&gt;
github  - 6900 stars&lt;/p&gt;

&lt;p&gt;Active development: yes&lt;br&gt;
&lt;a href="https://github.com/felangel/bloc/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SvQD20yL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j8zyy7qa5cyk3n7uqfh1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SvQD20yL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j8zyy7qa5cyk3n7uqfh1.png" alt="alt text" width="880" height="340"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Provider
&lt;/h2&gt;

&lt;p&gt;Second the most popular library and also officialy recomended by Flutter team as a good choice to use.&lt;br&gt;
Using is simple and learning is also faster then by Bloc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 3384 likes&lt;br&gt;
github  - 3314 stars&lt;/p&gt;

&lt;p&gt;Active development: yes&lt;br&gt;
&lt;a href="https://github.com/rrousselGit/provider/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F9aV4o-A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/irys3spo2cgxbl9pdcbh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F9aV4o-A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/irys3spo2cgxbl9pdcbh.png" alt="alt text" width="880" height="349"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  GetX
&lt;/h2&gt;

&lt;p&gt;Third the most popular library and also the most growing up in popularity right now.&lt;br&gt;
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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 3112 likes&lt;br&gt;
github  - 2342 stars&lt;/p&gt;

&lt;p&gt;Active development: yes&lt;br&gt;
&lt;a href="https://github.com/jonataslaw/getx/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n9PicefB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tx4549udea0erf8nin6b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n9PicefB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tx4549udea0erf8nin6b.png" alt="alt text" width="880" height="337"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  GetIt
&lt;/h2&gt;

&lt;p&gt;Library inspired by &lt;a href="https://github.com/reactiveui/splat"&gt;Splat&lt;/a&gt; from the React world.&lt;br&gt;
Library is not so popular like previous and maintenance is also a little lower.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 937 likes&lt;br&gt;
github  - 621 stars&lt;/p&gt;

&lt;p&gt;Active development: for the last year relatively yes&lt;br&gt;
&lt;a href="https://github.com/fluttercommunity/get_it/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zYMeYdor--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/85kshkm3vdnye8s52cuy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zYMeYdor--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/85kshkm3vdnye8s52cuy.png" alt="alt text" width="880" height="340"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Riverpod
&lt;/h2&gt;

&lt;p&gt;Successor of Provider state manager developed by same author with a different &lt;a href="https://github.com/rrousselgit/river_pod#motivation"&gt;motivation&lt;/a&gt;.&lt;br&gt;
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..&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 496 likes&lt;br&gt;
github  - 1210 stars&lt;/p&gt;

&lt;p&gt;Active development: for 2020 year yes but from year 2021 is low&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/rrousselGit/river_pod/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KCU1deFt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uorlpl36hd16mj25ozyp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KCU1deFt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uorlpl36hd16mj25ozyp.png" alt="alt text" width="880" height="350"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  MobX
&lt;/h2&gt;

&lt;p&gt;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.&lt;br&gt;
Library is inspired by &lt;a href="https://mobx.js.org"&gt;MobX&lt;/a&gt; project from JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 529 likes&lt;br&gt;
github  - 1789 stars&lt;/p&gt;

&lt;p&gt;Active development: low&lt;br&gt;
&lt;a href="https://github.com/mobxjs/mobx.dart/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QjRUvLOD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rvqgu3k2vopfbt2b58sw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QjRUvLOD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rvqgu3k2vopfbt2b58sw.png" alt="alt text" width="880" height="343"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Redux
&lt;/h2&gt;

&lt;p&gt;Probably choice for everybody who have an experiance with React/Redux. Unfortunately maintenance is not so big.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 213 likes&lt;br&gt;
github  - 1406 stars&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/brianegan/flutter_redux/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;br&gt;
Active development: a little&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fkc5GRUH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ck5mqkm2e9xzb92nr7wp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fkc5GRUH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ck5mqkm2e9xzb92nr7wp.png" alt="alt text" width="880" height="339"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Fish redux
&lt;/h2&gt;

&lt;p&gt;Alternative to Redux from Alibaba company.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 41 likes&lt;br&gt;
github  - 6900 stars&lt;/p&gt;

&lt;p&gt;Active development: no&lt;br&gt;
&lt;a href="https://github.com/alibaba/fish-redux/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FuYbfyYP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jifk0zzxm7ikkfeza4mx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FuYbfyYP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/jifk0zzxm7ikkfeza4mx.png" alt="alt text" width="880" height="341"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Binder
&lt;/h2&gt;

&lt;p&gt;A lightweight, yet powerful way to bind your application state with your business logic. But it's still new yet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 28 likes&lt;br&gt;
github  - 143 stars&lt;/p&gt;

&lt;p&gt;Active development: low&lt;br&gt;
&lt;a href="https://github.com/letsar/binder/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DTghVPCR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/k39xpzyxuj2qpwz2gbc5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DTghVPCR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/k39xpzyxuj2qpwz2gbc5.png" alt="alt text" width="880" height="342"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Flutter Commands
&lt;/h2&gt;

&lt;p&gt;Reactive state management that uses the Command Pattern and is based on ValueNotifiers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 28 likes&lt;br&gt;
github  - 17 stars&lt;/p&gt;

&lt;p&gt;Active development: no&lt;br&gt;
&lt;a href="https://github.com/escamoteur/flutter_command/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l7to0lQp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/y9xn66rpzzxg6959rx9k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l7to0lQp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/y9xn66rpzzxg6959rx9k.png" alt="alt text" width="880" height="340"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Cube
&lt;/h2&gt;

&lt;p&gt;Simple State Manager with dependency injection and no code generation required. I believe that this project is inspired by  &lt;a href="https://pub.dev/packages/get"&gt;GetX&lt;/a&gt; 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..&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity:&lt;/strong&gt; &lt;br&gt;
pub.dev - 11 likes&lt;br&gt;
github  - 6 stars&lt;br&gt;
Active development: yes&lt;br&gt;
&lt;a href="https://github.com/RafaelBarbosatec/cube/graphs/contributors"&gt;Github link&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4JiuzS69--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/y4jrouc7m5cd2dtazqeg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4JiuzS69--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/y4jrouc7m5cd2dtazqeg.png" alt="alt text" width="880" height="338"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;After my research I see that really serious candidate for learning from plenty possible libraries, are only three:&lt;/p&gt;

&lt;p&gt;1) Bloc&lt;br&gt;
2) Provider&lt;br&gt;
3) GetX&lt;/p&gt;

&lt;p&gt;Because of great support, maintenance of and maturity these packages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So what is my choice?&lt;/strong&gt;&lt;br&gt;
Finally my choice is &lt;a href="https://pub.dev/packages/get"&gt;GetX&lt;/a&gt; state manager. &lt;br&gt;
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.&lt;/p&gt;

&lt;p&gt;Moreover GetX give me more then only state management.&lt;br&gt;
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.&lt;/p&gt;

&lt;p&gt;More about this you can read in my next &lt;a href="https://dev.to/mjablecnik/why-i-use-getx-for-my-application-state-management-gal"&gt;article&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Edit: After one year I released new updated article:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/mjablecnik" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--amuOGMqn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--GJGgANX_--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/297262/290891de-eb8d-4304-aeae-65c6b979a293.jpg" alt="mjablecnik"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/mjablecnik/most-popular-flutter-state-management-in-2022-3he9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Most popular Flutter state management libraries in 2022&lt;/h2&gt;
      &lt;h3&gt;Martin Jablečník ・ Jan 1 '22 ・ 9 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#dart&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>flutter</category>
      <category>dart</category>
    </item>
  </channel>
</rss>
