Flutter, the Google framework, has just crossed the symbolic milestone of version 2.0. Allowing to generate from a single code base applications for Android and iOS, it can now produce web apps and soon applications for Windows, macOS and Linux.
It was a bit of euphoria in the ecosystem of Google developers last Wednesday, since the Flutter Engage. Each year, the Mountain View giant has made a habit of celebrating its open source framework Flutter through an event always rich in announcements and new features. Faced with the Covid, the 2020 edition did not take place and was postponed to March 3, 2021, via an online conference.
But what is Flutter?
Today more and more Android and iOS applications come together, even are identical. The question of pooling this development then arises.
To design so-called multiplatform applications, developers have a plethora of choices (Ionic, Cordova, Xamarin, React Native…) which are generally based on web technologies. If we had to caricature, it amounts to putting a website in a mobile application. Although attractive on paper (reducing costs, relying on the developer ecosystem, etc.), performance is not always there and integration with Android and iOS platforms is sometimes questionable.
This is where Flutter, acquired in 2013 by Google, comes in. Instead of using web technologies, it will create a so-called “native” application that takes advantage of the official SDKs provided by Apple (iOS / iPadOS / watchOS) and Google (Android). The performance is therefore much better.
For the record, Google engineers took slow motion videos of iOS to reproduce identically all the animations of the platform. Real titanic work. There are also all the graphic elements of Material Design, but this time, the copy was simpler: Google being at the origin of this design system.
150,000 apps use Flutter on the Google Play Store
Available in version 1.0 since 2018, the Flutter framework can therefore generate mobile applications and, according to Google’s own census, 150,000 applications on the Play Store already use it.
Internally, the technology is deployed at Stadia, the new version of Google Pay, Google One or even the “clock faces” of Nest Hubs. But other players like Philips Hue, Ebay, Sonos, WeChat, Alibaba or even BMW are responding.
Developers have certainly been seduced by the “mobile” multiplatform aspect, but above all by the resulting promise. Indeed, Flutter is able to generate a website or even applications for Windows, macOS and Linux from the same code base. These last two components were however in a way a “false advertisement”, since qualified as alpha / beta. Many features were missing.
Flutter 2.0: web apps qualified as stable
As rumors swelled in the community, Google cut it short in the first seconds of its Flutter Engage by announcing the switch to version 2.0. In his wallet, impressive figures: 24,541 tickets (= ~ bugs) were closed or even 17,039 Pulls Requests (= ~ contributions to the project – from Google or from third parties) were accepted.
While the Flutter for the web project was until now in beta, it is now qualified as stable, along with Android and iOS. Improved support for Firefox and Safari is mentioned in particular. Proof that Google is not forgetting its own competitors.
But the most important thing to remember is that Google is clarifying the objectives of its technology. As it stood, Flutter Web was often “marketed” as the easy port of a mobile application to a website. However, the code generated was more than questionable for SEO, that is to say indexing by search engines (a shame when your name is Google!).
From now on Flutter Web is designated as a technology for designing applications of type Progressive Web Apps (like the Twitter app), Single Page Apps (like the Maps or Facebook sites which, once loaded, no longer require recharging when changing functionality) or finally a simple way to port a mobile application to the web. Flutter Web is therefore not thought out and designed for simple sites that will have to turn to more traditional technologies.
Some examples of achievement were highlighted, such as:
- Rive: a tool for designing animations
- iRobot: a tool to control the robots of the eponymous brand
- Flutter Plasma: a demonstration site of the capabilities of Flutter Web
Efforts on foldable screens with Microsoft
The frenzy around foldable / folding smartphones continues to grow, but we must admit, developers are struggling to get interested. The reason is simple: the market is still too marginal for development and maintenance costs to be profitable. And it’s a bit of a chicken and egg paradox (few applications, so few smartphone sales and vice versa).
Google and Microsoft have therefore worked together to provide tools that are easier to learn and thus try to convince people to develop on the Surface Duo in particular. This situation is all the more funny since Microsoft has its own tool for designing cross-platform applications: Xamarin.
Canonical (Ubuntu) will design its apps only in Flutter
Designing applications for Linux is often a headache, as there are so many tools. This too often results in a disturbing integration for the user (eg QT / KDE applications on a Gnome environment).
After announcing a few days ago that the future installer of Ubuntu 22.04 would be designed in Flutter, it is actually a real turning point that Canonical, the publisher of Ubuntu, will take. The new applications designed by the company will now be made in Flutter, whether they are Linux applications or for smartphones. A real revolution!
This announcement is all the more interesting as it reassures certain actors who were afraid that Flutter is “the future Stadia”, That is to say a technology that can be abandoned at any time. By welcoming such a strong player in the open source world, Flutter is consolidating its position in the long term.
Windows / macOS / Linux support in stable version … soon
Let’s be honest, Google is boasting a bit too much, since it doesn’t hesitate to play with words and indicate that Flutter 2.0 marks the stable version for mobile, web, but also computers. In reality, Windows, macOS, and Linux can be used with the stable version of Flutter, but with some options turned off by default. The target is rather for the end of the year 2021.
However, this announcement is also a real turning point, since it allows Flutter to proudly advance that five operating systems are supported: iOS, Android, Windows, macOS and Linux.
Flutter in our cars?
Car manufacturers have never been recognized for their on-board interface. And since Tesla’s arrival, great efforts have been made to catch up. However, manufacturers still find it difficult to make the choice on the operating system: should we continue with a “home” system, go to Android Automative, or even opt for other solutions?
This is where Flutter takes on its full meaning: by designing applications using it, car manufacturers ensure that they can keep their various developments, regardless of the operating system. This is what Toyota began, by producing several demonstrations.
But this marks a real turning point for this industry, which could easily change its mind about the operating system, without having to redevelop everything each time. One ad that hides another, in a way.
Dart in version 2.12: performance and stability
Flutter applications use a programming language that Google is both creator and maintainer. While it had been launched in the 2010s, with a rather favorable reception from web developers, it quickly fell into oblivion. Now transformed into a programming language for Flutter, although it can still design web servers for example, Dart 2.12 receives several improvements and, in particular, two particularly awaited by the developers.
The first (named null safety) forces them to better manage the case of values zeros, which is the most common crash / bug case found in applications.
The second aims to be able to communicate with code written in C language. A process widely used when maximum performance is required: in video games, video editing, augmented reality, etc. This therefore opens up the field of possibilities.
Open source projects often find it difficult to keep their announcements secret, so much is everything publicly visible. Like Android, Google has been able to perfectly hide its game and forge partnerships that ensure the sustainability of its framework.
Flutter is therefore today a technology that you will not only see grow in the applications you download from the Play Store or the App Store, but also on other platforms such as your computer or even your browser.
However, there remains the thorny question that Google must ask itself internally: should Android or Flutter be favored for its mobile applications? Quite a subject!