Canonical is building a new installer for Ubuntu using Google's cross-platform Flutter framework – but is facing questions about use of a non-native toolkit for such a key component.
Martin Wimpress, Canonical's director of engineering, said that "the current Ubuntu Desktop installer, Ubiquity, dates back to 2006," and that it had become a maintenance burden.
There is a newer installer for Ubuntu Server, called Subiquity, that is written in Python and wraps a bare-bones installer called curtin.
Wimpress said the intention was to create a single consolidated installer for both server and desktop, and that the desktop frontend for the new installer will use Google's Flutter framework following work Canonical has already done to give Flutter Linux support. Work has started and can be found on GitHub here.
A preliminary version is set for availability in October, for the upcoming 21.10 release of Ubuntu, with full transition to the new installer in the April 2022 long-term support release, Hirsute Hippo. The new installer will adopt the Ubuntu look and feel, known as Yaru.
The new installer will have new features including a repair option, judging from early screenshots posted by Wimpress.
Wimpress said that "Flutter is a great open-source technology to deliver highly optimised desktop applications for Linux," and in one sense the choice is not surprising given that he championed the development of Flutter's Linux support.
There are some concerns from the Ubuntu community, though. Flutter "doesn't even follow any GTK and GNOME HIG [Human Interface Guidelines] or style," said developer Kristijan Zic. "To me the new installer looks a lot like it's following a design language of Android," meaning Google's Material Design.
Zic added: "Imagine Android, ChromeOS or Windows using GTK for their installer."
Rudra Saraswat, creator of Ubuntu Unity and part of the Ubuntu documentation team, asked how the new installer would work with regard to custom theming for other distributions, and whether it would work on QT desktops such as Kubuntu, bearing in mind that "there are many UI glitches that occur when using applications that use the Flutter toolkit on QT desktops like KDE."
Google's reputation for scrapping projects also earned a mention. "Google has a way of abandoning projects such as these," said Ubuntu user Luis Pabon.
That said, there is also support for Canonical's decision. Flutter on Linux does use GTK3 so it may be possible to render a Yaru design correctly – though the framework is primarily designed to draw on its own user interface rather than using native controls.
User Merlijn Sebrechts said that GTK3/GNOME applications were hard to develop and that Flutter "is a great compromise: it's almost as easy to use as Electron, but it creates native binaries and has native integration with GTK."
He said he sees Flutter as strategic for Canonical, making it easier to develop apps for Linux.
It does look like Canonical's installer plans are well advanced so a Flutter-based replacement for Ubiquity is likely on the way, despite the reservations of some community members. ®