Flutter is a cross-platform UI toolkit that is designed to allow code reuse across operating systems such as iOS and Android, while also allowing applications to interface directly with underlying platform services. The goal is to enable developers to deliver high-performance apps that feel natural on different platforms, embracing differences where they exist while sharing as much code as possible.1
We, at MWAY, always try to find the best solutions to the specified requirements requested by customer. Being deeply involved in always-developing enterprise world, it was (and still is) our goal to bring the best quality and performance to the solution.
Since we already had experience with previous “hybrid” generations of Frameworks and tools (Ionicframework, Cordova, Phonegapp, Generator-M, etc.), we knew exactly what minimum requirements the next promising Framework should achieve.
This contained in a list is:
Before going into any evaluation, we’ve had to understand the basics of how Flutter works.3
To see how good the Framework performs, it is usually not enough to just create the basic project - at least not in enterprise world. Our Flutter acceptance came from two different use-cases:
Creating a basic use-case with loading data from file, saving to database, presenting it in list-view. For this, we’ve developed and used exactly the same files when comparing Flutter and Ionic solutions. Unneeded plugins and modules were completely removed,
--release flag was used, several iOS and Android devices (and versions) were used. The devices were ranging between entry-level to flagships models and from the newest to the oldest. To keep it realistic, we’ve saw around 10% performance increase overall.
Using the framework in an PoC application for which basic checks for plugins were made. Other than that, for the first time developers were greeted with the Dart language on which Flutter is based on. The first feedback from the developers perspective was extraordinary: “enjoyable & fun”.
We were convinced that Flutter is moving into the right direction. However, there were still ups and downs from the framework itself. These were:
Back to the present time, Flutter has been updated quite a-lot in the past two years. And so was our knowledge and expertise in Flutter framework. We’ve now built more than 10 enterprise apps based on Flutter. We have never regretted this decision. And now, as the framework is being optimized and updated, we are happy to say that first iterations of Flutter for Web conversions have been made.
We have also noticed the community is ever-expanding and the interest is continuously growing. Therefore, we have also decided to create a Flutter Meetup Stuttgart group, which has been a blast from the start on.
That being said, the last thing you should always take into consideration (as we did also) is the capacity of community involvement and the pace of the Issues progression (Flutter issues on official Github Repo). Most of the issues reported will get any kind of feedback in the first 24 hours.
Comparing the demographic interest between two of our most used frameworks now should provide you with a good picture of evolvement:
However is everything really so bright as it looks like?
If you are carefully following all the news and annual reports from the Flutter team, you will see the future looks bright. However, one part for which we still keep our Ionic/Angular Frameworks is the web. Even though, our first tests and Flutter apps also were ported to the web, it is still too early to make a complete switch. One of the downsides being the performance and deprecation of old browsers support (Internet Explorer 11). You will laugh, however, we are talking about enterprise solutions and with that, a long term commitment and support. Not every company has an urge to update everything to the latest and greatest version. Keep that mind.
Another thing, which now looks like a “funny joke” is actually state management. Two years ago, the whole World Wide Web was full of articles regarding Flutter and how great it is, but actually just showing the “Counter App” and nothing else. This issue escalated really quickly into the massive amount of articles regarding which state management approach is the best for your app.
If the progress that we saw in the past two years will keep up to the goals of the Flutter team, then we are quite sure we’ll see a decline of usability of other previous frameworks that we’ve used. Still, nothing should be taken as granted and its always a good bet to check the competition. Everything can change in a matter of months… as it already did change in the past years.
We will continue believing in Flutter - being the best optimized and performed Framework we have used so far.