The 2021 Stack Overflow loved vs dreaded survey results show that Flutter is one of the most loved frameworks. Only .NET Core received more love. Of the 58K respondents, 68.17% loved Flutter. This is great news if, like us at Oppkey, you’ve moved to using Flutter for mobile development. There is strong indication that developers will drive adoption of Flutter into the enterprise in the next year.
Flutter Love Pushing Adoption Among Professionals
Before you jump onto the Flutter magical mystery bus and start enjoying sound null-safety, static typing, and native builds, keep in mind that Flutter is still not that popular among professionals. Flutter adoption is increasing, but it is still not as widely used as React Native.
Professional Developers
All Respondents
If you’re using Cordova, it is likely a dead end path. Flutter may catch up to React Native by next year.
Flutter Want Below “React Native”
Although Flutter is “Loved” by more developers, it is not “Wanted” as much as React Native.
React Native is likely “wanted” because developers are familiar with React Web and feel it would be great if they could use React Native for mobile development too. While this is definitely possible, I feel that the love for React Native starts to wane as the developer goes to production and needs to get things working on iOS and Android.
To be fair, you will likely have problems going to production with Flutter on both iOS and Android. Many things, including push notifications are going to be tricky on iOS, especially if you don’t use a service such as Firebase, which you may not want to use or are unable to use due to company policy. It’s likely that the final 10% of the completed production app is going to cause problems for both React Native and for Flutter.
In the end, it seems like there are less “hack workarounds” with Flutter to get it to do what you want on mobile. For Android at least, there seems to be a solution very quickly. The workarounds on iOS have been a moving target this past year. I feel that it will get better as more people use Flutter.
Dart Language is Solid, not Sexy
Among programming languages, people want Python, TypeScript, JavaScript and Go. Dart is cruising along below SQL. Wow, below SQL? Yea…
Keep in mind that the enthusiasm for Dart is due to the workflow with hot-reload, hot-restart, and the ability to compile to native binaries. These are tools for the language ecosystem, not necessarily language features.
The Dart language is quite good. If you like static typing, you will like Dart more than Python and JavaScript. Realistically, Java and C++ have more language features. However, those features make the languages more complex to master. For example, there are no arrays in Dart, only lists. There is no char in Dart, only a String. There is no differentiation between float and double, only double. If you really need to control memory, you can use the Dart C interop with dart:ffi, which is not as fun as accessing memory directly in the primary language. However, it works.
Dart has a great set of features and is fun and pleasant to work with. The language itself doesn’t have advantages over go-to languages such as Java or C++. The tools and workflow do add nice differentiation.
Dart code is less verbose due to features in the compiler such as type inference.
Flutter Web and Flutter Desktop Are Not Ready for Production
Although Flutter Web and Flutter Desktop are definitely usable and Oppkey is using Flutter Web in production, there are definitely more problems than with Flutter mobile. For example, Flutter Web has problems with slow initial page load times and critically, lack of good SEO for the contents of a Flutter Web page. Flutter desktop has numerous issues, including inconsistent audio support for some libraries, and inconsistent graphics performance on some desktops such as Ubuntu 21.04 with Wayland and NVIDIA GPUs.
Update: 8/6/201
I received a comment on Reddit with this fine example of using Flutter Web for a beautiful demo at Invoice Ninja. You can see for yourself the high quality of the experience. This type of application does not require SEO.
Keep in mind that while it’s possible to build sophisticated apps with Flutter Web, you may encounter challenges. I suggest you build smaller web sites with Flutter Web first. If you build a complex app on mobile and expect to move it to Web with no modifications, you may run into issues.
Summary - Use Flutter Now
It’s a great time to use Flutter if you do some research before you standardize on Flutter for your project. Critically, I find there is a lot of hype around Flutter and when wading into a group of Flutter enthusiasts, you may not hear about the gotchas immediately. I believe that the best path to a successful Flutter project is to understand the key limitations prior to starting your project.
Oppkey is Hiring
If you like learning and writing about cool technology, consider working at Oppkey.
Oppkey Consultants for Online Communities
We have a number of jobs at different levels of commitment, including project, part-time and full-time. You’ll get to interview interesting people who are leaders in technology. Receive $100 to $300 per article as you help your fellow developers get great information.