The Flutter SDK Is Ready To Be Used For Native Linux Software Development
Flutter is a cross-platform software development kit from Google which is widely used for mobile app development. Google has, in collaboration with Ubuntu Linux maker Canonical, adopted the Flutter UI framework so it can be used to make native GNU/Linux programs. A Flutter SDK alpha-version snap is available for those who want to do Android-style native Linux software development.
written by 윤채경 (Yoon Chae-kyung). published 2020-07-08 - last edited 2020-07-11
Google's multi-platform Flutter UI framework is very popular among those making mobile applications for iOS, Android and Google's new Fuchsia OS. More than half a million developers use it.
It has been possible to use the Flutter SDK on GNU/Linux systems for quite some time. It is now possible to use it to make native programs for computers running GNU/Linux.
Google will also add native Windows desktop application support to Flutter in the near future.
Linux Will Be "A First-Class Flutter Platform"
Google asset Chris Sells medium blog post announcement story is that Linux will be a "first-class platform" for the Flutter platform. There is a small obvious potential problem with that story: The Linux support is developed in close collaboration with Canonical. It may be fairer to say that Ubuntu Linux will be the "first-class Flutter platform". This is heavily indicated in the medium blog post announcement:
"By enabling desktop Linux support in Flutter, Canonical is making it very easy for application developers to publish their apps for Linux users via the Snap Store, the app store for Linux. By making Linux a first-class Flutter platform, Canonical is inviting application developers to publish their apps to millions of Linux users and broaden the availability of high quality applications available to them."
It is true that Canonical's Snap Store is a "app" store for Linux. It is unclear why Google would refer to it as the "app" store.
Another minor problem with the "first-class platform" story is that the Linux desktop market share is tiny. While Linux market share is on the rise it is just 1 to 3.5% (depending on what source you look at). That is, from a for-profit developers perspective, close to irrelevant. Managers won't look at that market share tell developers to prioritize the Linux version of their corporations apps.
Native Linux desktop application support is, of course, good news even if the reality will much likely be that Linux is threated as a last-class platform.
Available Now - But Only As A Snap Package
The new Flutter SDK version with support for native Linux application development is so far only available as a
snap package in Canonical's SnapCraft store. It is primarily for Ubuntu but Ubuntu is not a requirement. The Flutter SDK can easily be installed on other Linux distributions. These fine commands as
root work fine on Fedora:
dnf -y install snapd systemctl start snapd ln -s /var/lib/snapd/snap /snap snap install flutter --classic
/var/lib/snapd/snap/bin/flutter as a regular user. Don't forget to run
flutter config --no-analytics to disable the most obvious spyware bundled with the Flutter SDK.
You will also want to switch to the flutter "dev" channel and enable the fancy new native GNU/Linux application support:
flutter channel dev flutter upgrade flutter config --enable-linux-desktop
You may also want to
snap install flutter-gallery to get the "Flutter Gallery" collection of demo programs and widgets - all of them built using the Flutter SDK.
Sun Tried This With Java
What Google is trying to accomplish seems quite clear: They are trying to make the Flutter SDK the SDK for cross-platform applications who can be deployed on any device ranging from mobile phones to smart televisions to desktop and laptop computers - regardless of them running iOS or Android or Fuchsia or Windows or macOS or Linux.
Sun Microsystems tried to accomplish something very similar with Java and the Swing UI. Their marketing at the time was "Write once, Run Everywhere" (which, in practice, meant "Write Once, Debug Everywhere"). Sun was bought by Oracle for a fraction or its value at the height of its dominance. It seems unlikely that Google will suffer the same faith. Flutter is already used by more than half a million developers who will, quite happily, release Windows and Linux versions of their existing mobile applications if the effort required to do that is near-zero.
We expect that there will be native Linux versions of a lot of previously mobile-only "apps" available in Canonical's SnapCraft store in the near future.
It is also likely that Flutter will become a generally more popular SDK in the future. Qt is multi-platform and very nice but you can't just write some program using Qt and expect it to run on every smart-TV, smartphone, smartwatch, laptop and computer out there. That is what Flutter will be once the Windows desktop support arrives.
You can learn more about the Flutter SDK at flutter.dev. That site has in-depth documentation that will help you get started developing applications using Flutter. The native Linux support announcement is at medium.com. The bottom half of it has some useful information outlining how you can actually use Flutter to create native Linux programs and publish them to the SnapCraft store. Flutter apps are built using the Dart programming language so you will have to learn its basics. Don't worry, it uses a C-style syntax. You will grasp it fairly quickly if you have any programming experience.