Canonical lässt Linux-Desktop-Anwendungen flattern Das Google-Framework Flutter kann Linux
Canonical ermöglicht ab sofort die Unterstützung von Linux-Arbeitsplatz-Anwendungen mit „Flutter“. Das portable Framework für die Erstellung ansprechender Benutzeroberflächen stammt von Google.
Anbieter zum Thema

Das Ziel von Flutter sei von Anfang an gewesen, ein portables Framework für die Erstellung ansprechender Benutzeroberflächen (UIs) bereitzustellen, die unabhängig von der Zielplattform mit nativer Geschwindigkeit laufen, heißt es in dem Blogpost von Chris Sells (Google) und Ken VanDine (Canonical). Im ersten Schritt habe sich Google auf die mobilen Plattformen Android und iOS konzentriert und bereits mehr als 80.000 „wunderschöne“ Flutter-Anwendungen für Google Play“veröffentlicht.
Wie die Autoren mitteilen, weitet Google seit mehr als einem Jahr die Ausrichtung von Flutter auf den Desktop aus, und zwar fürs Web wie auch für die Desktop-Betriebssysteme macOS, Windows und Linux. Im Zuge dessen habe der Konzern die Engine umfangreich bearbeitet: Maus- und Tastatureingaben wurden an die Anforderungen von Desktop-Rechnern angepasst, veränderbare Fenster auf der obersten Ebene ermöglicht. Dazu kommt die Unterstützung der Materialdichte und der Navigationspfade.
Bereits experimentiert wurde auch mit einer tiefergehenden Integration in das zugrundeliegende Desktop-Betriebssystem über die Schnittstelle beziehungsweise Library „Dart:FFI“ und mit dem Zugriff auf die Menüleiste und die Standard-Dialoge. Diese und weitere Änderungen zielen darauf, dass sich Flutter nicht nur für den mobilen Einsatz eignet, sondern auch mit Desktop-Anwendungen umgehen kann.
Die Ziele
Sells schreibt: „Es ist schon lange unsere Vision, dass Flutter zu einer mächtigen Plattformen wird, […] so dass wir jetzt begeistert sind, wenn andere Flutter nutzen, um weitere Plattformen zu betreiben. Heute freuen wir uns, gemeinsam mit Canonical, dem Herausgeber von Ubuntu, der weltweit populärsten Desktop-Linux-Distribution, die Verfügbarkeit der Alpha-Version für Flutter anzukündigen.“
Diese erlaubt nach dem Installieren des Flutter SDK über „Snap“ können Desktop-Anwendung unter Linux mit „Visual Studio“ -Code oder „Android Studio“ zu erstellen und zu testen. Die Bereitstellung erfolgt über den „Snap Store“ (siehe: flutter.dev).
Laut VanDine habe es einige Flutter-Entwicklungen gegeben , die für Canonical aufregend waren:
- das schnell wachsendes Ökosystem von Anwendungsentwicklern
- die Unterstützung mehrerer Plattformen
- hochgradig optimierte native Anwendungen
- ein modernes UI-Framework zur Unterstützung deklarativer, reaktiver und zusammensetzbarer Widgets, sowie
- mit Visual Studio Code, Android Studio und „IntelliJ“ passende Entwicklungsplattformen
„Als Google vergangenes Jahr die Unterstützung von Desktop-Anwendungen mit Flutter ankündigte, sah Canonical die Gelegenheit, Linux-Distributionen, einschließlich Ubuntu, zu einer Zielplattform für Entwickler von Flutter-Anwendungen zu machen. Die plattformübergreifende Verwendung von Flutter wächst rasant und Canonical möchte an der Spitze mitspielen“, heißt es im Blog.
Auch das Ziel ist definiert: „Canonical macht Linux zu einer erstklassigen Flutter-Plattform und eröffnet Anwendungsentwicklern damit die Möglichkeit, Millionen von Linux-Benutzern mit ihren hochwertigen Anwendungen zu erreichen.“
Ein erstes Anwendungsbeispiel stellt „Flokk“ dar. Die Anwendung, die aus der Zusammenarbeit mit den Designern und Entwicklern von gskinner.com entstanden ist, arbeitet mit der Google-Kontaktliste und erlaubt nicht nur, die Kontakte zu verwalten und zu suchen, sondern auch das Verknüpfen der Kontakte mit Github- und Twitter.
Installation von Flutter unter Linux
Nach Angaben der Blog-Verfasser bietet das Flutter SDK-Snap alles, was für die Entwicklung von Flutter-Anwendungen auf der Linux-Distribution benötigt wird.
Zur Entwicklung von Flutter-Anwendungen für Linux in der IDE Visual Studio Code braucht es beispielsweise:
$ snap install --klassisches Flutter
$ snap install --klassischer Code
$ code --install-erweiterung dart-code.flutter
Wenn Linux auch zur Entwicklung mobiler Anwendungen verwendet werden soll, benötigt der Admin das Android SDK oder Android Studio (das das Android SDK enthält). https://snapcraft.io/flutter
Flatter für Linux-Desktop
Sobald das Flutter SDK auf dem Linux-Rechner installiert ist, muss zum Erstellen einer Desktop-Anwendung auf den Flutter Dev-Kanal (oder den Master-Kanal) zugegriffen und die Linux-Desktop-Unterstützung aktiviert werden:
$-Flutter-Kanal dev
$ Flutter-Upgrade
$ flutter config --enable-linux-desktop
Bei der Erstellung eines neuen Flutter-Projekts entsteht ein Linux-Unterordner, der es ermöglicht, als Desktop-Anwendung auf dem Linux-Rechner zu laufen:
$ flutter erstellen Zähler
$ cd-Schalter
$ flutter laufen -d linux
Die neue Linux-Anwendung, die mit Flutter erstellt wurde, läuft dann auf der jüngsten stabilen GTK+-Version.
Auch das Hinzufügen von Unterstützung für Linux in einem bestehenden Projekt funktioniert durch das hinzufügen eines Unterordners:
$ cd meine_flutter_app
$ flutter schaffen
Zugriff auf nativen Code
Die Anwendungen können auch über Plattformkanäle oder das „Dart Foreign Function Interface für C/C++“ auf das native Linux zugreifen. Zur Verwendung von vorhandenem Code ist die Paketmanager-Site von pub.dev, Dart und Flutter zu nutzen. Die meisten Pakete dort sind reine Dart-Pakete, von denen die meisten in Ihrer Linux-Anwendung problemlos funktionieren. Einige Pakete, Plugins genannt, enthalten nativen Code, der für eine oder mehrere Plattformen spezifisch ist.
Es gibt drei veröffentlichte Plugins auf pub.dev, die die native Funktionalität von Linux nutzen:
- url_launcher: Starten des Standard-Browser unter der angegebenen URL
shared_preferences: Benutzereinstellungen, die zwischen App-Sitzungen gemeinsam genutzt werden
path_provider: Pfadinformationen zu speziellen Ordnern, zum Beispiel Downloads und Bilder
Bereitstellung im Snap Store
Um Ihre Flutter-Anwendung für den Snap Store bereitzustellen, ist zunächst „Snapcraft“ zu installieren:
$ sudo snap snapcraft installieren snapcraft --classic
Im Projektordner der Anwendung ist dann eine snapcraft.yaml-Datei zu installieren; wie hier:
Name: Flokk-Kontakte
Version: 1.0.0
Zusammenfassung: Flokk-Kontakte
Beschreibung: Ein frischer und moderner Manager für Google-Kontakte, der sich in Github und Twitter integriert.
Einschließung: streng
Basis: Kern18
Grad: stabil
Anwendungen:
flokk-Kontakte:
befehl: flokk-kontakte
Erweiterungen: [Fluttermaster]
Stecker:
- Netzwerk
Teile:
Flokk-Kontakte:
Quelle: .
Plugin: flutter
flutter-target: lib/main.dart # Die Haupt-Einstiegspunkt-Datei der Anwendung
In dem Ordner mit Ihrer snapcraft.yaml-Datei lässt sich nun Snapcraft ausführen, um einen Snap der Anwendung zu erstellen:
$ snapcraft
Wenn alles gut geht, erzeugt dies eine Datei in dem aktuellen Arbeitsverzeichnis wie "flokk-contacts_1.0.0_amd64.snap".
Ist das Konto für die Veröffentlichung im Snap Store eingerichtet, lässt sich schließlich der Snap veröffentlichen:
$ snapcraft Anmeldung
$ snapcraft register flokk-contacts #(registriert den Snapcraft-Namen im Geschäft, diese müssen eindeutig sein)
$ snapcraft upload flokk-contacts_1.0.0_amd64.snap --Rand freigeben
Dadurch wird das Programm in den Snap Store hochgeladen und versucht, es im Edge-Kanal zu veröffentlichen. Sobald das der Fall ist, kann es entweder über den Snap Store Desktop-Client oder über die Befehlszeile installiert werden:
$ snap install --edge flokk-contacts
Artikelfiles und Artikellinks
Link: Flutter SDK als Snap
(ID:46700401)