DEV Community

WebOccult Technologies
WebOccult Technologies

Posted on

Ubuntu makes Flutter a 'default choice' for future desktop applications

Flutter is a free and open-source framework for cross-platform user interface development offered by Google. It is one of the multi-platform development solutions that is gaining more and more popularity. It allows you to write user interface code in Dart, which is then compiled to build native Android apps, iOS, and the Web.

Comes with a variety of predefined widgets (by Google), Flutter is a framework like Facebook's React Native and Microsoft's Xamarin, allowing developers to build native cross-platform apps. Cross-platform solutions can dramatically reduce developer time and deployment costs for businesses.

According to Google, the use of Flutter is increasing in businesses thanks to "its ability to build brand experiences that support multiple platforms."

Flutter was used to develop Android and iOS and is also the primary method of building apps for Google Fuchsia. However, since May 2019, thanks to the Web Dart programming language's possibilities and the development tools implemented at this period by browsers. Google was able first to extend the Flutter framework's support to the Web and then subsequently to office applications run by Windows, Mac OS and Linux, and other platforms. Now, Google said, the Flutter framework is becoming a portable user interface framework for all displays.

Through this update of the framework, Google intended to enable companies to offer better experiences to their customers on all types of screens, mainly through mobile, desktop, and Web applications. "For startups, the ability to reach users on mobile, Web, or desktop through the same app allows them to reach their entire audience from day one, instead of 'have limits for technical reasons. Especially for large companies, the ability to provide the same experience to all users with a code base reduces complexity and development costs, and allows them to focus on improving the quality of that experience", said the team in charge of developing the framework.

In April 2020, Google announced that the use of Flutter continues to increase, with more than two million developers having used Flutter in the sixteen months since its release at the 2018 Google I / O conference.

According to Tim Sneath, Product Manager for Flutter and Dart at Google, Flutter usage increased 10% in March compared to February. He added that Flutter now has "nearly half a million" developers using it every month.

According to Google, most of them rely on Windows, with 60% of Flutter users developing on Windows 10 PCs, 27% on macOS, and 13% on Linux. More than a third of Flutter users (35%) work in a startup, while 26% are developers working in large companies, 19% are freelancers, and 7% work for design agencies.

According to Sneath, 78% of Flutter developers use the stable channel, 11% are using the beta, and 11% are using either dev or master. The company also announced that the top five regions for using Flutter are India, China, the US, the EU, and Brazil. According to Sneath's article, there are also now 50,000 Android apps created by Flutter on the Google Play store, and 10,000 of them were uploaded last month,

Google Flutter SDK version 2 available with desktop and web application support

Last week Flutter upgraded to version 2.0, providing many supports. While Flutter started out focusing on mobile when it launched two years ago, it has taken off in recent years, and with version 2, Flutter now supports both Web and desktop applications. With this, Flutter users can now use the same codebase to build apps for iOS, Android, Windows, macOS, Linux, and the Web.

"The big thing that justifies the version number change is, of course, the availability of web and desktop support," Tim Sneath, product manager at Flutter, said in a statement. "And that's just a pretty deep pivot. It's rare for products to suddenly have all these extra terminals".

Flutter 2 for desktop, foldable devices, and in-vehicle devices

Beyond traditional mobile devices and the Web, Flutter is increasingly expanding to other types of devices. Google has highlighted some of its partnerships during the launch of version 2 of its development kit.

On the desktop, Google announced that Canonical is going with Flutter and making it the default choice for all of its future desktop and mobile apps. The engineering team, contributing code to support development and deployment on Ubuntu, rewrote their new installer application with Flutter. The engineers made the first demo of it when Flutter 2 was launched.

Microsoft, too, is expanding support for Flutter and working with Google on Windows support for Flutter. Given Microsoft's interest in Android, this might not come as a big surprise. According to Google, Microsoft posted contributions to the Flutter engine on Wednesday to help support foldable Android devices. These devices present new design patterns, with apps that can either expand content or take advantage of the dual-screen nature to deliver side-by-side experiences.

Automaker Toyota has also announced plans to bring a new digital experience to its vehicles, building infotainment systems powered by Flutter. According to Google, using Flutter's integration API, Toyota can tailor Flutter to an in-vehicle network's unique needs.

Ubuntu bets on the future of Flutter

Canonical is a strong supporter of Flutter. Not only did he work with Google to bring the Flutter SDK to Linux desktops through the Snap Store earlier this year, but he plans to create a new Ubuntu installer using the technology.

Now it is confirmed that everything is in the direction of technology.

Indeed, Canonical's Ken VanDine, who works on the Ubuntu desktop, appeared at Google's recent Flutter Engage event to relay the message about his company's full support for the technology:

"We [Canonical] don't just enabled Flutter for Linux, we also worked with the Flutter team to release the Flutter SDK as a Snap to the Snap Store, the app store for Linux," recalled Ken. "By releasing the Fluter SDK as a snap-in, we've made it easy to install and configure your development environment to build mobile, Web, and desktop apps with Flutter on Ubuntu. Flutter is the default choice for future mobile and desktop applications created by Canonical".

That's a pretty big commitment for a framework that, until a few months ago, was not available at all for Linux desktops. Nonetheless, Canonical sees Flutter's potential. He started working on the all-new Ubuntu installer using Subiquity server installer technology and a custom Yaru-style Flutter UI.

But while Canonical's support is undoubtedly a victory for the Flutter community, what benefits will Flutter apps offer Ubuntu users?

Native is more than just widgets.

Like Flutter, Electron apps are popular with web developers because they are easier to learn, faster to build, and compatible with existing skills (or, for lack of a better term, they allow you to smooth things over).

Desktop users, however, are less enthusiastic. Electron applications are regularly criticized for their poor performance, do not integrate or support desktop functionality, and are markedly "different" from traditional applications.

Flutter tries to iron out many of these flaws. It offers better performance and allows developers to use web styles that "mimic" other systems' user interface. For example, a Flutter app designed for iOS might use a set of UI widgets modeled after those of native iOS.

Flutter isn't Electron, of course, but he faces some of the same barriers to broader adoption (whether real or perceived) from an end-user perspective.

The main? The Nativity. None of the examples in Google's Flutter gallery perform as well as a native-coded app. The experience is different in use, and they look different (even when trying to mimic the face of a specific system, like with iOS).

Many minor inconsistencies (slow UI interaction here, unstyled text label there, etc.) fuel a larger sense of "valley of the strange". Also, Canonical is working on a "Yaru" style (the user interface theme used in Ubuntu since 18.10. The article determines the colors, borders, shadows, size, and shape of individual elements on the screen) to use by the developers of Flutter applications. A logical idea.

Note that although this visual "coating" can take effect, the Yaru style is only helpful on one Linux distribution, among others. Developers who wish to target other Linux distros won't find Yaru very useful, not without similar Flutter side styles for other GTK and Qt themes.

Google has a habit of "dropping" projects that don't match its priorities (constantly evolving). Flutter is the trend right now, but with mobile moving faster than desktop, it might as well fall out of favor.

Top comments (0)