Back to articles

6 reasons to choose Flutter

March 2024 | Francis Vallone

Among the many cross-platform app development frameworks that have emerged in recent years, Flutter has immediately stood out for its undeniable advantages in building robust, scalable and visually appealing applications.

In this article, we explore the aspects of Google’s open-source framework that simplify the development process, accelerate time-to-market, and foster a smooth and consistent user experience across different platforms and touchpoints, reporting some examples of Digital Workplace apps built in Flutter by our development team.

What is Flutter

Flutter is a framework introduced by Google in 2018 designed for cross-platform programming using the Dart programming language. It allows applications to be developed for multiple platforms, including Android, iOS, macOS, Linux, and Windows, using asingle code base-an obvious advantage in terms of saving time and money.

As we pointed out about a year ago in our article devoted to the new features of Flutter Forward 2023, among the most interesting aspects of the Flutter framework introduced in 2023 we find:

  • New Material 3 standard, introduced with Flutter update 3.7;
  • Adaptive Layout, ideal for creating responsive applications adaptable to different screen sizes, thanks in part to the LayoutBuilder widget;
  • Impeller, new graphics engine following Skia;
  • FFIgen and JNIgen, two code generation tools that can be used to automatically generate MethodChannels to communicate with the operating system, iOS and Android, respectively;
  • 3D support for Flutter applications using the Scene and Node Widgets;
  • Support for Web Assembly for the development of extremely high-performance applications with low latencies similar to native, and RISC-V for the development of applications for IoT devices and systems;
  • Element Embedding, a feature that makes it possible to embed a fully functional Flutter application on any web page.

These and other innovations have helped make Flutter an increasingly versatile tool for creating apps and web apps.

Is Flutter still a valid tool in 2024?

Having recently passed 5 years of age, however, it is fair to ask whether Flutter is still a viable tool in 2024.

The answer is yes! In 2024, Flutter continues to thrive, consolidating its dominant position in the landscape of available programming tools: as reported recently by Github in “The State of Open Source” report, Flutter ranks third in the number of contributors, indicating not only a growing number of packages, but also ensuring rapid development of the framework.

In addition to the continuous improvements in performance, stability and memory management made by the Flutter team over the past two years, developers now have the ability to create software for macOS, Windows and Linux. This versatility further encourages the continued use of this technology, making it adaptable to very different platforms.

Material 3 has become the default style for new projects, giving developers access to beautiful components ready to use in projects. The community continues to impress with the quality of solutions, with nearly 30,000 packages available that can be used at any time, 73 of which have been recognized by Google as packages that every developer should consider when creating applications.

Flutter vs. React Native 2024

In the realm of open-source platforms for cross-platform mobile application development, Flutter is of course not the only option. One of the best known and most widely used is React Native.

Starting with the similarities, React Native and Flutter are both open-source frameworks for app development and use common features such as “hot reload”-or “live reload” in React Native. This feature allows developers to immediately see changes made to the code without having to refresh the application, speeding up development and bug fixes.

Both React Native and Flutter support the concept of asingle code base for multiple mobile platforms-Android and iOS-which results in the ability to develop exactly similar applications for different operating systems.

As for the popularity of Flutter and React Native, both frameworks have spawned well-known applications: Flutter is behind the success of applications such as Google Ads, Google Earth, Google Wallet and Alibaba, React Native has spawned the apps of Instagram, Facebook, Pinterest and many others.

Ease of learning

From a developer’s perspective, React Native is easier to learn because it uses JavaScript as the programming language. JavaScript has been around for years and most developers are familiar with it.

Flutter, on the other hand, uses Dart, which is relatively newer, and less well known. This is not to say that Dart makes Flutter a difficult framework: in fact, Dart shares many paradigms with much better known languages such as Java and JavaScript itself thus ensuring a relatively gentle learning curve for this language.

Community support

When working on cross-platform development, the support of an extended development community can be invaluable to many developers. Considering that React Native was launched several years before Flutter, it has on its side a large online community that offers support for troubleshooting problems and difficulties during development.

That said, Flutter, because of its role as a rising star, has an ever-growing community of developers, which in 2024 far exceeded 500,000 monthly users. At the time of writing (February 2024) Flutter has achieved over 160,000 stars on Github, compared to React Native’s 115,000 stars.

Performance

Performance is the most crucial factor to consider when choosing any framework.

Speaking of performance of React Native vs. Flutter, React Native uses JavaScript bridges or JavaScript layers to run hybrid applications for different mobile platforms. With the new architecture, the JavaScript Interface or JSI is used, which saves the memory pointing of C++ objects so that communication between the React Native engine and the native engine is basically straightforward, a system virtually identical to Flutter.

It can be said, however, that Flutter for the same operations comes frighteningly close to native and uses significantly less CPU, RAM and battery than React Native while maintaining a very good framerate.

In fact, Flutter compiles native code, unlike React Native, which continuously refers to the JavaScript layer for compilation. This is one of the aspects that make Flutter superior not only to React Native, but also to other frameworks for cross-platform application development such as Kotlin Multiplatform or Ionic.

Third-party widgets and libraries

One of the major differentiating aspects between the two frameworks is the level ofdependency on third-partylibraries. Often the libraries for React Native are of low quality or no longer maintained, thus leading developers to have to adapt to something unreliable

Google developed Flutter to contain a number of widgets and libraries to make identical user interfaces for both Android and iOS. React Native, on the other hand, requires developers to repeatedly reference third-party libraries. This difference greatly speeds up development work for Flutter developers.

It also affects the way tests are performed when developing applications with the two frameworks: support for widget testing in Flutter makes the task easier and faster for Flutter developers, while React Native developers have to rely on third-party tools for testing.

Documentation

Considering that Flutter has thebacking of Google, one might expect the documentation to be much more comprehensive-and indeed it is. The content offered by the Flutter framework is more informative and detailed and can be a great reference resource for those involved in cross-platform development.

Although React Native still has good documentation, the content tends to be more generic and less focused. Also, there is a kind of disorganization in the way React Native application development guides are offered to developers.

Compatibility with older devices

One of the tasks of developers is to make applications that can be used even by older devices, so as not to make them obsolete. In this sense, Flutter is very useful because, despite being heavier than a native app, it allows apps to be optimized even for older devices, which still make up a significant portion of the mobile devices currently used by users.

Flutter for digital workplace apps

For these reasons, in our Digital & App Innovation Unit we have chosen to work with Flutter technology because it allows us to develop cross-platform apps with performance very close to native languages.

In particular, among the projects carried out with Flutter are apps for the digital workplace, that is, for digitizing work environments and processes: from managing coworking environments to smart automation.

For example, in the implementation of our internal Orbyta Booking workstation reservation app, we chose to use the Flutter framework to make a performant app with the same User Interface on both Android devices and the corporate and personal Apple devices used by Orbyters: in fact, we wanted to achieve an identical UI in both systems. In addition, integration with Firebase was in an early prototype immediate. Finally, the development time was relatively low considering that most of the components were already available “out of the box” and only needed to be stylized.

Another case of an application built by our team entirely in Flutter is an enterprise home automation app that aims to monitor enterprise spaces with the following features:

  • Integration with two SDKs for access control in the facility;
  • Integration with NFC systems for communication with sensors in work environments.