Flutter and Dart: The Future!

By: Jasper Tolsma 03-06-2021

Categories:General,

Flutter is an open source, cross platform UI toolkit based on Dart and developed by Google. It’s aim is to speed up the development of apps. Because Dart ‘translates’ to native code for both Android and iOS it significantly cuts back development time  compared to building parallel apps in Kotlin (Android) and Swift (iOS).

Even though Flutter only saw its first release late 2018, it is one of the fastest growing toolkits out there. Even compared to other cross-platform solutions like Xamarin and React Native (check out the Google Trends graph below!). All the more reason for us to dive into the world of Flutter and check out some of the pro’s and cons of this awesome new platform. Of course, we also asked your opinion about Flutter by conducting a short questionnaire, which we will go over as well.

Our questionnaire showed that you, our readers, are also keen on using Flutter. A whopping 87,5% of you stated that you’ve been experimenting with using Flutter already. 67,7% even said that they were using Flutter in a professional context with their current employer!

Pro's and cons of Flutter

One of the biggest advantages of Flutter is the ability to quickly make a full-fledged app for multiple platforms with a relatively small team. This is because Flutter not only works with Android iOS, but also on MacOS, Linux, Windows, web browsers like Firefox and Chrome, and even  cars or smartphones are within the realm of possibility!

Besides the awesome multi-platform capabilities, Flutter also offers a slew of handy tools for developers: the hot-reload function, with which you can immediately show changes in the code on the front-end. Dart is also a ‘performative’ language: apps are very quick! In terms of speed Dart clearly wins over Java or Javascript for example.

What makes Flutter even more of a developer darling is the fact that the whole thing is Open Source. Even though Flutter is relatively new, there is a whole array of widgets already available. Also awesome: flutter doesn’t use native widgets, but rather draws everything from scratch. This is great for developers because you have control over very pixel on the screen, giving you lots of freedom in developing your app exactly the way you want it.
However, one of the respondents to our questionnaire notes that third-party libraries are still a bit limited, in comparison to a platform like React Native which has a bigger support/library ecosystem – simply because it has been around for a longer period of time.

Johan Pelgrim, founder of the Flutter Netherlands meetup group, thinks this issue is a bit overstated: There are already thousands of open source libraries available. You can find plenty of great,updated packages and plugins for most functionalities. And if you need something that isn’t there yet, and it is possible to build it in both native Android and iOS, you can easily code your own plugin for it. And by making it available as an open source plugin, you support the community too, making it possible for other developers to use your plugin in their own app.”

In general, you as respondents to our questionnaire, have been quite positive about the possibilities of Flutter, although you also noted some minor drawbacks. Below are some of your thoughts on working with this platform:

“For me the advantages are the easy way in which you implement pixel perfect performance designs and the very well-functioning hot-reload function. Disadvantages are the fact that you have to use a lot of libraries and packages because flutter doesn’t support native functionalities like the camera, file system etc. You have to be careful to write clean code because all the widget code can clutter you code a bit.

Another developer writes: “The biggest advantages is that cross-platform development simply works ánd that the app is still very quick (other solutions are slower). It is also easy to build great-looking UI’s and even animate them!. The only disadvantages for me is that  Dart isn’t as powerful as Kotlin or Swift can be, although the differences are getting smaller nowadays.”

Another respondent is a bit less positive, and notes some drawbacks in their eyes: “ As a programming language, Dart is still developing. Meaning that you have to rebuild certain parts of your project, costing you precious time. State management is also not optimal, leading to some issues. MVVM, for example, is difficult to implement without external libraries”.

Regarding this, Johan Pelgrim states: “I see Flutter and Dart as the hammer and nails that you use to build your product. Software development is a challenging profession, flutter is not a cure all that will allow you to build something without at least some experience. In the end, you should aim to write clean, well-maintained code, with a proper structure validating the business logic and UI/UX with automated testing – for that Flutter and Dart are excellent choices”.

Flutter in real life

We expected that companies using Flutter right now would mostly be smaller agencies. Mostly because it would allow those types of agencies to publish on multiple platforms with just one team. However, according to your answers, all kinds of agencies are working with Flutter already (awesome!).
So it looks like Flutter has comfortably taken its well-earned spot between other development tools. You guys even said (62%) that you would be okay using Flutter on a real-life project with a critical time-path! If that isn't a sign of trust in a platform...

Fast, cross-platform, open-source and embraced by the community (and also important: big companies): Flutter is here to stay!

A while ago we talked in depth with Johan Pelgrim, founder of the Flutter Netherlands meetup group, about flutter and its features. You can listen to this podcast on all the usual platforms. Also check out our playlist with all our podcasts.