Flutter is an open-source UI SDK (software development kit) by Google intended to build quick and modern applications for a wide-range of operating systems, including Android, Linux, Mac, iOS, Windows, Google Fuchsia, that run across desktop, mobile, and the Web.
A year ago, Canonical collaborated with Google to make Flutter SDK available in Linux as a button, a universal software deployment and package management system for Ubuntu OS and other GNU/Linux-based distributions without letting others interested in producing beautiful desktop applications in Linux.
Ubuntu Invests in Flutter
Ken VanDine from Canonical is in charge of the Ubuntu desktop project. He appeared with a speech during a recent Google Flutter Engage online event on March 3rd, 2021 to ensure the company’s full support for the technology:
We [Canonical] not only enabled Flutter for Linux we also worked with the Flutter team to publish the Flutter SDK as a Snap on the Snap Store, the app store for Linux
By publishing the Fluter SDK as a Snap we’ve made it very easy to install and set-up your development environment to build mobile, web, and desktop apps with Flutter on Ubuntu. Flutter is the default choice for future mobile and desktop apps created by Canonical
As for Canonical’s contribution to Flutter, Ken also mentioned that the Ubuntu team will work to deliver full multi-window support for Flutter on all desktop platforms. This will provide developers with an extensive set of Windows-type tools to create an effective user interface platform. For plugins, the team is already working on setting up popular Flutter plugins for Linux, such as support for Firebase, Bluetooth, network connectivity, and desktop notifications.
Moreover, Canonical also incorporates the unique Yaru Ubuntu style to Flutter apps, allowing app developers to port their apps to the Linux desktop. Enthusiasts that are interested in testing Flutter for creating apps for Ubuntu can download the Flutter SDK directly from the Snap Store.
Canonical Enabled Creation of Desktop Applications for Linux in Flutter
Despite the availability of the Flutter SDK for Linux, it has so far only been applied for mobile application development and does not support building desktop applications for Linux. Last year, Google announced its intent to add the ability to develop full-fledged desktop programs to Flutter and introduced an alpha release for developing such programs for macOS. That makes Flutter available to developing desktop applications for Linux. At the same time, full support for Windows application development is still at the initial project stage.
For building the interface in Linux, a binding based on the GTK library is applied (includes support for Qt). In addition to Flutter’s native Dart language, which is great to insert widgets, applications can utilize the Dart Foreign Function interface to call C/C++ code and access all the properties of the Linux platform.
Ken concluded his speech stating that the desktop development team is aiming not only to make Linux a first-class citizen of Flutter, but also to make Flutter the default choice for future desktop and mobile applications made by Canonical.