By Jindřich Pikora | 7.10.2022

Flutter: the future of app development?

Development – 7 min read

Smartphones have become commonplace, and the number of apps available to users has in turn gone up as well. New apps are constantly popping up, big and small, with millions or just a handful of downloads. The developers behind these apps have many different tools at their disposal. One of them is Flutter, which has become increasingly prominent in the last couple of years, and which we also work with at Applifting. It’s proven to be very useful in certain cases, and our developers enjoy using it. It is for this reason that we’ve decided to turn our experience with Flutter into this series of articles.

What is Flutter

Flutter is a framework developed by Google that allows you to create mobile apps for iOS, Android, and other platforms using a single source code. It is a cross-platform technology with which you can develop several apps at the same time. Compared to going native, it comes with a number of perks, such as speeding up the overall process of development; there are, however, also a couple of disadvantages too. We’ll talk all about that in a section called The pros and cons of Flutter.

History

The first mention of Flutter appeared in 2015, though it was only in December 2018 that the first stable release was out. Now, a few years later, we have Flutter 3.0, which compared to the previous releases is more stable, powerful, and packed with developer features. Originally, it was used to develop mobile apps only, but this has now been extended to web applications and macOS, Linux, and Windows apps.

As mentioned earlier, Flutter is not a language but a framework. But it is written in a language called Dart, which was also developed by Google a few years ahead of Flutter. It was originally developed to go up against JavaScript in the field of web applications. Nevertheless, it didn’t turn out to be the worthy successor it was supposed to be, and it only got into its stride with the arrival of Flutter. It is worth mentioning, however, that both Dart and Flutter are open source, so their source code is freely available.

The pros and cons of Flutter

Flutter isn’t the first attempt at making a tool for creating cross-platform apps. It is predated by Xamaric, Ionic, or React Native, to name a few. That being said, nowadays, Flutter is the most popular of those (based on how favored it is by developers).

How does it fare in comparison to Swift and Kotlin in terms native mobile app development for iOS and Android?

The pros

  • Cross-platform—developing two apps with one source code. No need for two different technologies, which often means double the developers needed. It isn’t twice as effective, as one might think, but it does help save a lot of time.
  • Speed—the way the code is developed is another aspect that saves time. Declarative programming significantly speeds up development, much like the hot reload function, which redraws the app’s screen every time the code is saved, thus doing away with the need of recompiling.
  • Performance—which is comparable to native apps. You can add snappy animations of any complexity, and if you use Flutter correctly, you won’t be dealing with any unresponsive behavior.
  • Customization—there is a vast array of easy-to-use premade components. Flutter’s intuitive approach to combining components allows you to tailor your app to any design, no matter how complex it is.
  • Documentation—the technology is open source, therefore everyone is free to look at the source code. What’s more, all the parts are well documented and detailed, so you won’t run into any trouble there. The few errors there are in the code all come with clearly described ways of fixing them.
  • Community—with an increase in use and popularity, Flutter comes with an ever-growing number of new libraries, improvements, and tutorials.

The cons

  • Size—the final size of apps is larger. Downloading, installing, and updating takes a longer time, and the apps take up more space in users’ phones. Compared to native apps, we’re talking about a 20% increase in size.
  • Specific requirements—accessing certain hardware functions on mobile devices is more complicated than it is with native development. In some cases, you need to implement things twice, both in terms of the technology as well as the system Flutter is running on. This is where the main advantage of Flutter goes down the chute. In general, the more system functions the app utilizes (GPS access, Bluetooth, etc.), the less you benefit from how quick the development is.
  • Flutter is new—it’s been just a few years since it’s been released, and it’s still a work in progress. As much as the community is growing, compared to native development, there simply aren’t that many tried-and-true best practices and libraries for developers to make use of just yet.

When to use Flutter

Due to the advantages mentioned above, developing cross-platform apps in Flutter is in high demand. Even some of the larger, more popular companies use Flutter for their apps, such as Alibaba, BMW, or even Google itself, who have used it to develop Google Pay.

One might think that native development is no longer needed and everything should be developed in Flutter. That is not the case, however. We must not forget its shortcomings, which make developing native apps for each platform separately the better choice.

As I mentioned before, you can use Flutter to develop desktop apps as well, though it isn’t that common. Web development is suitable only for a couple of web apps—like those dealing with administration, games, and graphically demanding systems. On the other hand, it’s not suitable for your run-of-the-mill websites. There are certain limitations that it comes with, like some packages not being supported or the lack of browser optimization (SEO).

Where does Flutter shine?

Flutter is a great choice for small-scale apps that often just display and send data to a server. In such cases, you won’t find yourself running into trouble during the development, you will progress quickly, and you’ll need just one team of developers instead of two (as tends to be the case with native development).

It’s also suited for app prototypes or swift product validation. While there are other tools for prototyping, they are often locked away behind paywalls, and experience is needed to make their use worthwhile. In comparison, Flutter is universal, and its strength lies in the Dart programming language, which lends itself well to implementing prototypes.

When to think twice about using Flutter

Of course, it is possible to develop larger apps with Flutter, but they shouldn’t come with too many native features (so as not to slow down the development). You also need to be prudent and take into account whether the app will scale massively and what other features might be required. Then the disadvantages might rear their head all the more noticeably. But if all of these concerns are taken into consideration and the benefits outweigh the negatives, there is nothing stopping you from getting on with development.

Summary

Flutter is still a somewhat novel tool for developing cross-platform mobile apps, but over the course of its existence, it has come out on top as the most sought-after one. Much like any other technology, it comes with its fair share of benefits and challenges. Before you commit to using it, it’s important to think through the features your app will have and whether choosing Flutter will speed things up for your developers. That can indeed be the case in many instances. Using Flutter for app development is then a great choice.

What hands-on experience do we have with Flutter at Applifting? You’ll find out in the next article.

Join our newsletter

By clicking the button I agree with the collection and processing of my personal data as described in the Privacy policy