Mobile development: is Flutter the future?

Efforts to simplify and accelerate digital product development processes have been ongoing for the past ten years, in response to the race to innovate and the revolution in mobile applications.

One of the major constraints of developing applications for mobile devices is the requirement that they be compatible with multiple platforms like Android and iOS.

This means that development, testing and release phases are doubled or more. Debugging and updates are also required in addition. This is a real ordeal for developers and an additional cost for companies.

To deal with the issue, in 2018*, Google launched Flutter, an open source framework** for the development of multi-platform applications. The promise? Enable developers to build applications once, then deploy them on different platforms (Android/iOS) as well as on desktops and the mobile web.

Why has Flutter been so successful with developers and what are the specificities that make it such a formidable tool for the rapid development of quality mobile applications?

Why is Flutter unique?

What makes Flutter unique is the fact that the framework enables the creation of applications for multiple market platforms using the same source code. There is no longer any need to dig into the functionality of each platform to make the application compatible or to develop it twice. In other words, with Flutter, you develop a single, unique application which runs on both the iOS and Android operating systems.

“The big benefit of Flutter, is that there is less coding for the same native result on iOS et Android.”

Baudoin ABCD – Developer at Betuned

The Flutter framework is now used by companies like Groupon, eBay and Tencent and has proven itself. What major benefits does it provide in the race to innovation start-ups and web giants are running against each other?

Why has Flutter become the leading multi-platform development tool?

Faster development

This is Flutter’s greatest advantage. A single source code for a multi-platform application: this is the dream of every applications developer and publisher. In addition to providing clean code faster the first time around, the hot-reload functionality considerably reduces code compilation time, which frees up more time for development.

Technically accessible

Flutter it is intuitive and simple to use. The DART language is among the easiest to master, even for new developers. For companies which don’t (or don’t yet) have highly experienced developers, Flutter provides a potential option to start developing applications in record time, without having an army of seasoned developers.

Everything is a widget

The motto applies to Flutter. Every user interface consists solely of (several hundred) widgets, each of which performs a single task. Assembling them like Lego bricks to build an application isn’t child’s play, but the logic is very intuitive and means that developers can focus on the user experience or the design of the application.

More experienced developers can build their own animation and widgets using DART as the primary language.

Users first

Developers and marketeers know that the user experience is crucial for mobile devices. A light swipe to the left or to the right or poor ergonomics and users give up and go elsewhere.

Flutter provides an extensive pallet of graphical components. There are very few limitations and developers can do virtually anything they want. Google’s visual language (Material Design) was specifically created for (mobile first) applications with a minimalist Flat Design approach using simple forms.

For our more experienced readers, Flutter can mine the Skia vector image library to ensure that the user interface is identical on Android and iOS. Flutter applications are pixel perfect, which means that the design of the application isn’t dependent on the OS.

Reduced time-to-market

Flutter is very popular with IT teams that use agile development methods. The term “sprint” (a short development cycle) is often used. It delivers an MVP (Minimum Viable Product), i.e., an application with a very small number of functionalities, which is used for testing and/or to get customer approval before starting another sprint cycle, and so on…

This is exactly the Flutter approach: develop, test, approve, start again… The major benefit is that errors are found as they occur and can be corrected without waiting for the finished product. Flutter avoids many of the drawbacks associated with application acceptance by the final or internal customer.

Reduced development costs

This is the logical conclusion of the preceding points: the ability to develop more quickly using fewer resource to obtain quality results considerably reduces development costs. Flutter is particularly well-suited to the needs of start-ups. It focuses on the added value delivered to users without getting bogged down in endless testing and QA phases.

The future of development?

It’s impossible to say if Flutter will become the most effective framework for the mobile ecosystem. One thing is for sure, though: the simplified development of applications using SDKs or easy-to-use frameworks is increasingly popular.

In the now-famous study “Most Loved, Dreaded, and Wanted Web Frameworks, Libraries and Tools” conducted each year by StackOverflow, Flutter is ranked fourth in the Wanted and third in the Loved categories.

The trend is even toward “no-code” development (link to the no-code article). This reveals a need both to go ever faster, via the simplification of technical aspects to concentrate on the user experience, and to involve marketing and sales teams in IT projects.

Flutter has solid references, a growing user community and technical support from Google. It has all the tools it needs in hand to become THE leading multi-platform framework and beyond, with Windows and Linux in its sights. Long live Flutter!

* Flutter 1.0 was released on 4 December 2018 during the Flutter Live event which introduced the first stable version of the framework. Flutter 1.12 was released on 11 December 2019 during the Flutter Interactive event.

** Framework: In computer programming, framework (also called software framework, development environment, application development platform or application framework) designates a coherent set of structural software components used to build the foundations and major sections of all or part of a software programme (architecture).