Google is partnering with the Ubuntu Desktop team at Canonical to bring Linux support to its open source UI framework Flutter. Today’s Linux alpha announcement also means Flutter developers can now deploy their apps to the Snap Store.
Flutter group product manager Tim Sneath argues this is a big milestone because UI frameworks rarely become versatile and powerful enough for an operating system to depend on. He pointed to Windows being written in C++ rather than .NET, even for applets like the Calculator. Sneath also believes this shows Canonical is willing to invest in a first-class way to build apps for Linux, making Flutter on Linux an official part of Ubuntu. Additionally, enterprises can feel confident about picking Flutter — it’s more evidence of its longevity and technical excellence, Sneath said.
As of April, 500,000 developers use Flutter each month, and 2 million developers have used it since version 1.0 was released in December 2018. Google added today that 80,000 Flutter apps have been published to Google Play. (Flutter apps are built using Google’s Dart programming language.)
Meant to compete with frameworks like Facebook’s React Native, Flutter began its life as an open source mobile UI framework that helps developers build native interfaces for Android and iOS. Since May 2019, however, Flutter has let developers build desktop, embedded, mobile, and web apps from the same codebase. Developers can use Flutter on phones, wearables, tablets, desktops, laptops, televisions, and smart displays. Google calls this ambient computing — the idea that your services and software are available wherever you need them. Google wants developers to start app development not by asking “Which device am I targeting?” but “What am I going to build?” Reusing code should help startups with limited resources and let enterprises consolidate teams into shipping a single experience.
Google’s goal for Flutter has shifted to providing a portable framework no matter what platform you target. The company has thus spent the past year focusing on the web and desktop operating systems.
“This work includes extensive refactoring of the engine to support desktop-style mouse and keyboard input, as well as resizable top-level windows,” the company said today. “It also includes new UI capabilities that adapt well to desktop, like Material Density support and the NavigationRail and experiments with deep integration into the underlying desktop OS with experiments in Dart:FFI and access to the system menu bar and standard dialogs. All of this work was to ensure that in addition to being suitable for mobile-style experiences, Flutter is ready to handle first-featured, full-sized desktop apps.”
To hardcore Flutter fans, Linux support might sound familiar. When Google expanded Flutter mobile app SDK to the web, desktop, and embedded devices, the company published early instructions for developing Flutter apps for Windows, Mac, and Linux. But that Linux support was a tech preview proof of concept. That placeholder has now been replaced by Linux support provided and supported by the team behind Ubuntu, the most popular Linux distro.
The Canonical partnership ties into Google’s vision for Flutter to power platforms. For example, Flutter already runs on the smart display operating system that powers Google’s Nest Hub Max. Some Google-built features for the platform are powered by Flutter, including Google Assistant.
Canonical isn’t a quiet partner: It’s making a significant investment in Flutter by dedicating a team of developers to work alongside Google’s developers to “bring the best Flutter experience to the majority of Linux distributions.” The companies are committing to improving Linux support and maintaining feature parity with the other supported platforms.
Being able to publish Flutter apps to the Snap Store doesn’t hurt. Developed by Canonical, Snaps are containerized software packages that work natively on most popular Linux distributions. They feature automatic updates and rollback functionality, enhanced security, and greater flexibility for developers working within Linux environments. Snaps can run universally across over 40 Linux distros. Having Flutter apps available as Snaps means developers can spend less time working on packaging and managing builds across Linux distros.
The Snap Store is seen by some as “the app store for Linux.” By making Linux a first-class Flutter platform and supporting the Snap Store, Canonical is hoping to broaden the availability of high-quality applications for Linux.