Google recently launched a new mobile application creation toolkit: Flutter. Although the name does not necessarily seem promising, Flutter offers a huge advantage: thanks to it you are able to write a code for applications for both iOS and Android devices.
We have been experimenting with this cross-platform development framework for about a year now and would like to share our experience and knowledge about the advantages and disadvantages of Flutter. Our extensive experience in software development makes it possible to draw the right conclusions on the possible setbacks and possibilities of Flutter. Below you will find everything you need to know about this new toolkit as well as the advantages and disadvantages.
What is Flutter?
Flutter enables programmers to write one code for both iOS and Android. This means that you no longer have to rewrite the code for another platform. Although Google created it, they decided that it should be an open-source toolkit. As a result, hundreds (and perhaps thousands in the future) of developers contribute to each other’s projects by sharing code with each other.
If you use Flutter to program, you are able to apply standard Android and iOS tools. All underlying operating systems can also be used. For example, think of code and UI that you write in Swift, Objective-C (for iOS), Kotlin, and Java (for Android). The numerous widgets ensure that all pixels on the screen can be controlled. You can also insert this into existing apps.
The advantages of Flutter
The fact that it can be integrated into existing applications makes it a more versatile toolkit. This saves programmers from double development process. Additionally, with Flutter, you can see in real-time which changes have been made to the app and what effect these changes have. Google named this “Stateful Hot Reload”. Our programmers are thrilled by it because they don’t have to restart an application, they can always undo certain changes and the UI implementation goes a lot faster.
We discovered a number of other things while using it. For example, programming an application for iOS and Android with Flutter went bout 1.7 times faster than before. Implementing features went a lot faster and took less effort. The communication between teams went better since they worked on a project together. This led to unity between the teams. By working with one tool, a clear vision has to be formulated. In our experience, this is good for results.
In general, it can be said that good quality can still be provided with Flutter and that this is faster than with other toolkits. A tailor-made and flexible UI is possible. It also works great for building PWAs (Progressive Web Applications).
The time we need for a Quality Assurance has decreased by about fifty percent and we only need seconds to compile data. In addition, DART, Flutter’s programming language, is a modern programming language that is easy to learn. About seventy percent of the source code is shared and reused, which means that even more time can be saved in the future.
The disadvantages of Flutter
Applications sometimes use hardware features, such as a camera. The disadvantage of Flutter is that these applications can only be configured in the “native code”. Sometimes good plugins can be found for that, but they do not produce the desired effect. For some applications, this means double work. This actually applies to all applications that are linked to the various operating systems: SiriKit and Google Assistant also present these same challenges.
Other challenges are due to the fact that maintaining and restoring the state of an application still has to be done manually in Flutter. Standard URL schemes are not yet supported in text widgets, which is inconvenient. The lack of third-party libraries also creates limitations compared to other tools. The asset management is not very user-friendly and no tools are known for Flutter that make it possible to report a crash of the application.
Flutter is no longer in beta, but we are curious how this toolkit will develop. Some components are not supported or are simply missing, which makes it impossible to completely program them.
The main advantage is the time saving and ease of use of Flutter: we programmed no less than 1.7 times faster than usual. We not only save time while writing code but also in the quality testing and compiling data. The teams also work better together thanks to Flutter. Because Flutter is an open-source toolkit, code is shared and applications can be developed faster in the future. That is already an important added value and, in our opinion, and a good enough reason to continue to follow developments around Flutter.
What do you think about Flutter? Do you have any other advantages and disadvantages of Flutter on your mind? Then share your thoughts with us.