The sheer number of choices for developing mobile applications in 2021 is enough to make your head spin. In general, the market divides into native technologies for Android and iOS, and cross-platform technologies like Ionic, Xamarin, React Native, and Flutter.
Increasingly, trends show companies moving away from native solutions, with high costs being the reason. Cross-platform technologies look like the mobile industry’s evolutionary next step.
Of course, questions arise. What is the best cross-platform technology? Is Flutter the best mobile framework, or is it React Native that’s best - or something else?
My name is Marek Gocał from AllBright.io. I would like to tell you about the best cross-platform solution and the future that is possible today due to this. I am talking about the best cross-platform framework, in our opinion, Flutter.
This article contains references to other mobile application frameworks available on the market. If interested, please read this article, where we compare these solutions side-by-side.
Without further ado, let’s get started.
People have already placed a lot of faith in Flutter, despite its youth.
The first rumours related to Flutter surfaced at Google’s I/O conference in 2015. Google announced that it was working on a technology that would enable Android devices to render at 120 frames per second. Flutter then appeared as a beta in 2017 and then declared ready for widespread use in December 2018.
In less than three years, it has outperformed other cross-platform frameworks, and continues to gain traction at a fast pace.
But the question still remains…
It’s the best cross-platform technology, and more…
Suppose we choose a technology to create a mobile app. In that case, we can select from native Android, native iOS, Flutter, React Native, Xamarin, Ionic and many others.
Android and iOS are expensive and demanding, but proven solutions. Increasingly, they are giving way to cross-platform technology, which looks to be the future for the mobile industry.
If you stick to an approach from the past, can you be sure your business will remain competitive?
Cross-platform applications are so exciting simply because they are so cost-effective and efficient.
The low development costs mainly come from building one application for two platforms, both at the same time. One application running on the two largest mobile operating systems means half the cost.
And still, Flutter gives us more. A Flutter app is not limited only to smartphones. The flutter framework allows you to develop one application that will run on Android, iOS, Web, Linux, Mac, Windows and Google Fuchsia.
So how is all this possible?
In this section, we answer that question. The section is quite technical, so feel free to skip forward if you are not at home with programmerly terms such as architecture and engine.
Flutter’s architecture at a glance:
The Flutter framework presents a modern reactive approach, where its elements are written in a declarative way. For developers, it is a bit non-trivial at first, but over time, most people change their minds and find it much quicker and more transparent. Most important is that the UI is created in a platform-independent way.
Hot reload is one of the standout features of Dart, which significantly speeds up the construction of an application. Flutter and Dart are closely related and the framework was designed with this feature in mind. When hot reload is used, the host machine checks the edited code since the last compilation and recompiles any library where the code has changed. The Dart VM then reloads all the libraries with updated code, the hot-reload mechanism updates classes with the new versions of fields and functions and the Flutter framework automatically rebuilds, repaints, re-layouts the widget tree, allowing changes to be viewed quickly.
While the framework libraries are written in Dart, the engine itself is written mainly in C++. With the help of the Skia engine, it draws the entire user interface frame by frame, from scratch. This keeps the native performance up to 120 fps. Each component is rasterized, thanks to which it looks identical on all of the platforms, regardless of the resolution of the device.
Flutter Embedder provides the entry point for the Flutter app. It initialises the Flutter Engine and obtains threads for the UI. Embedder also manages the app lifecycle and it is responsible for input gestures such as a mouse, keyboard and touchscreen. Embedder code is platform-specific and written in the native platform’s language. For example, Android’s Embedder is written in Java/C++ and iOS Embedder is in Objective-C/Objective-C++.
Since we have already discussed what Flutter is, let’s look at it from a business point of view. How well does Flutter perform when we take into account variables including the cost and ease of creation, maintenance and development, performance or the future of the framework itself?
While reading about Flutter on the internet, you’ll find many statements suggesting that Flutter is perfect for building an MVP (minimum viable product). What supports this belief?
Like other cross-platform frameworks, Flutter allows you to build applications from a single codebase that work on both Android and iOS phones. As a result, a project only requires one developer team, which simplifies communication and lowers costs.
Flutter is also very efficient. The problem with cross-platform frameworks has always been that native applications just performed better. However, the Flutter framework has a performance that’s indistinguishable from native, including rendering of advanced animations at up to 120 fps.
This is one of the biggest advantages of Flutter. With good project management, it can take 5-10 days to build a clickable prototype in Flutter. This means that even if you only target one platform, it is usually faster to build it in Flutter.
We’ve already looked at why Flutter is great for building MVPs. However, is it wise to choose this technology if we are planning to support and develop an application for a long time?
Sometimes our clients are concerned about whether choosing Flutter is a good MVP decision. They mistakenly believe that if it’s perfect for MVP then, for the full product, we will need to start over again. It’s not true! Flutter is perfect for long-term support. As the years pass and their product evolves, our customers who may have been sceptical at first are very pleased that their app is built in Flutter.
Let’s take one of our apps as an example: FinTech Connector. It started as an MVP and we add new features to it every few months. Its creator is thankful for having approved the choice of Flutter.
This experience is not limited to us. Every year, new applications are released, from small MVPs to large apps, such as ING’s banking application or the Google Ads app. These are not products to test the demand for certain functions on the market, but full-fledged products that will be supported for years.
Flutter is constantly evolving and with each passing year, it just becomes easier, faster and offers richer possibilities. Choosing it now, as the development kit for your application, not only seems like a good solution but is downright wise! It is also worth remembering that Flutter is supported by Google. According to their statements and a general observation of their commitment to the development of this technology, we can safely expect continued long-term support from them.
Another doubt, arising from the relative youthfulness of Flutter, is the availability of qualified specialists. Does such a young technology have enough developers to meet the fast-growing demand?
While Flutter was declared stable only three years ago, there are already a great number of experts available who can make the most of the framework’s capabilities. People who have worked with native technology in the past are often the best-qualified developers. They are well-versed in many aspects of mobile app development and its platform-specific features, and this makes it more likely that development runs smoothly.
Also, many companies have been investing in their employees for a long time. Some software houses conduct internal training designed to maximize the exchange of Flutter knowledge between employees. I would advise against hiring freelancers, while a software house like AllBright.io employs only specialists.
Flutter uses its built-in engine to draw every element from start to finish. It does not use any ready-made external components, as is the case with the other solutions on the market. This not only offers very high performance but also allows you to create a unique application unlike any other. There are no limits when it comes to UI aesthetics.
Flutter’s animations are another of its unique advantages. With the very smooth rendering (a constant 120fps or more if the device allows) and the almost unlimited possibilities for drawing objects on screen, the application can be filled with animations to amaze users.
I’ve already noted Flutter’s speed several times. Applications built with this framework achieve performance comparable to a native app. However, it is worth taking a closer look and distinguishing between the possibilities of a given developer tool and how easy it is to take full advantage of what it offers.
Native frameworks work the closest with the device itself because they focus on optimisation for only one platform. Android and iOS development tools are very mature and unfortunately, they struggle with a lot of legacies. It is a legacy that makes it often difficult to fully optimise an application so that it uses its full potential and can run smoothly.
Flutter, on the other hand, is not burdened with technological debt. Additionally, Google has created special tools to make the detection of performance problems and optimisation even easier. They also actively support the development community by publishing tutorials and guides on how to use the tools. Consequently, Flutter not only offers native performance but, with this framework, it is also much easier to maintain this optimal performance.
A single code base and hot reload are functions that allow you to save a lot of time when creating applications. Of course, time-saving means lower costs. Google’s debugging and optimisation tools also make potential errors, that you always have to take into account when creating computer software, much easier to identify and solve.
It is hard to not return to how young Flutter is as a stable technology. This, as usual, brings with it some problems and benefits, but when will this framework from Google be seen as mature?
Looking at Flutter’s incredible growth in popularity, it’s not hard to be amazed. The Flutter community is growing at a startling pace. More companies are considering switching to Google’s technology and beginning to look for specialists.
But instead of throwing more words at it, let’s see some hard data from Google Trends: link
If we look at it from the developers’ perspective, we can see data that further underlines the growing importance of Flutter. At the end of 2020, 50,000 applications written in Flutter were available in the Play store, of which 10,000 were added in the last month.
|Google Trends |
(Queries per day)
|Flutter||68.8% ⇧||13k ⇧||86 ⇧|
Flutter’s popularity will continue to grow. The community will support the framework more and more, engaging in its development. Over time, we can expect to see unique tools allowing developers to do even more with Flutter. Google wants to invest in its new project and therefore we believe that the promise of a single cross-platform framework for mobile, web and desktop will be fulfilled.
Flutter is an amazing tool that, despite its youthfulness, has already won over much of the developer community. Many companies that study the subject from a technological and business standpoint are only now recognizing its potential. More and more of them are deciding to give the new framework from Google a chance.
We hope that, after reading this article, you will have a clearer understanding of where Flutter’s growing popularity comes from. We hope you can also see where Flutter is headed in the future too.
If you need specialists in the field of building mobile applications or the implementation of payment processors in a mobile app, please contact us at firstname.lastname@example.org.