Okay, we admit that the title is biased. But after reading this article, you will find for yourself that the question “why it is worth it” and not “whether it is worth it” is the only right question! Here you will find not only arguments but also an introduction to the technology and a few words about the little-known Dart language.
What is Flutter?
The first time we heard about Flutter was in 2015 when Google announced at a conference that it would create a toolkit for developers to create mobile applications for Android. Although at that time there was still no talk strictly about Flutter because initially, the corporation’s new idea was to be called Sky. The Alpha version (0.0.6) was released two years later in May, and Flutter entered general use in late 2018.
The project began to develop very quickly thanks to Google employees and the efforts of independent developers. In 2021, the second version of the SDK (Software Development Kit) was released, allowing developers to write applications not only for Android and iOS but also for web and desktop applications. Flutter uses the still-not-very-popular Dart programming language, unveiled by Google in 2011. A note to programmers who have never been exposed to it: if you are familiar with Kotlin or JavaScript, learning Dart should not cause much trouble.
What we are comparing it to, i.e. native apps and other hybrid apps
To demonstrate Flutter’s superiority, we must first clarify what it is supposed to be better than. First: native apps, that is, those oriented to a specific platform—Android or iOS. This differs in the language used for writing. In the case of Android, it will be Java or Kotlin, while for iOS, Apple-developed Swift / Objective-C is used. In both cases, there are dedicated development tools. They are reliable, only, at the time when the customer needs an application, and for Android and iOS, for the programmer, it means writing two separate applications from A to Z.
Our second reference is hybrid apps, which are developed simultaneously for several systems and combine native and web solutions. This means that the “skeleton” of the application is the same, and only specific “fragments” dedicated to a specific platform are added to it. Other frameworks for creating hybrid mobile applications, in addition to Flutter, include React Native and Ionic, for example.
And now the benefits:
Now that we know what we are comparing and to what, let’s answer the question from the title. We can’t help but mention at the beginning (again, because it’s important!) that Flutter is an open-source project, and therefore developed not only by the company but also by independent developers. This allowed it to emerge as a leader among similar applications four years after publication. Working in Flutter is also a big saving for the client—saving both time and money. “It’s not a saving only on the first step, when we create the first version of the application, but also on every subsequent step when we expand this application or improve it,”—adds Rafal, our CTO. But one step at a time.
Flexibility
The fact that applications are developed hybrid in Flutter already makes it outclass all native technologies. It can’t be said that this makes twice as much work for the programmer, because, however, in addition to a common “skeleton”, the programmer, depending on the case, will have to add additional configurations or add two separate parts to both systems. Still, such a procedure significantly speeds up the application development process and, depending on the project, reduces costs by 30 or even 50%.
Performance
Yes, we mentioned React Native and Ionic. Yes, they also allow you to create hybrid applications. However, they differ from Flutter in performance. Or rather, the lack of that performance (at least in the case of Ionic, React Native is quite efficient, but not in the same way as Flutter). We would be unfair to say that they are not suitable for anything—for simple applications, they will work flawlessly, but the stairs may start when more complex operations come into play.
The theory is the theory, but let’s give voice to our practitioner: “It happened to us once that we were rewriting an application from one hybrid app to Flutter, because there was a complicated chart inside that you basically had to draw yourself, and this pseudo-hybrid app couldn’t cope—the loading time was too long and users complained that everything worked very clumsy. After rewriting in Flutter, everything worked immediately, fast, and smoothly.” Point for Flutter.
Quick code verification
Another advantage is the Hot Reload feature, which allows you to make changes while the application is on. This means that the change will be visible immediately, without having to shut down and restart the application from scratch. Imagine wanting to test the view in different configurations and having to turn the app on from scratch every time. Tiring. Flutter shows you the changes right away, so it cuts down on your work time, too. The Hot Reload function also often comes in handy when talking to a graphic designer.
Combining native technology components
This is a point mainly for people who find themselves on technology a bit. Flutter allows you to use its own components and those created specifically for Android and for iOS at the same time. Therefore, choosing Flutter does not mean that the possibilities are locked only in the library offered by Google. The flexibility of this framework means that if it turns out that we need to do something in native technology, Flutter will not impose any roadblocks or restrictions.
Ability to convert to web and desktop applications
Last but not least… The ability to port a mobile app to a web and desktop version is not a feature that only Flutter has, but it is worth noting that it also has it. This is again a big saving for the customer because you won’t have to write a completely new, separate application – you can use the same logical layer that you use in all versions.
As with the point about Android and iOS apps, this does not mean that the app will be ported one-to-one. Why? If only because of the appearance itself – after all, browsers are usually opened on large screens, so the interface will have to be adjusted accordingly. Still, the “skeleton” remains the same, so the cost of developing and porting a mobile app to a web or desktop app is much lower, especially if they do not have any additional features.
So… why do we choose Flutter?
We have been working with Flutter ourselves since it even appeared on the market. To our credit, we already have dozens of applications written with the help of this SDK, and with each project, Flutter has worked perfectly. Can we, therefore, recommend it to customers with a pure heart? Without a second thought!
For both customers and colleagues, anyway. For customers, it is first and foremost a cost-effective and fast solution while maintaining high quality. In addition, thanks to its cooperation with components of both native technologies, Flutter offers a wide range of different solutions, so the customer will get exactly the product they want, without any limitations on the technological side.
Programmers from those with years of experience to those just taking their first steps in the industry should also be interested in Flutter. Mastering Flutter should not be a problem for anyone who has any experience with other languages and technologies. Besides, it’s free, so it’s easily accessible even to novice freelancers.
Flutter is a grateful tool not only for clients and their budgets but also for developers because it’s really fun to work with this toolkit while producing an attractive and smooth working result. And… did we say that after reading the article yourself, you will agree with us?