Canonical lehrt Linux-Desktop-Anwendungen das Flattern Das Google-Framework Flutter kann nun Linux

Autor Ulrike Ostler |

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

„Flutter“ ist Englisch für „Flattern“. Kolibris sind für ihren schnellen Flügelschlag bekannt. Google und die „Ubuntu“-Company Canonical hoffen auf einen großen und schnellen Erfolg der nun erfolgten Linux-Adaption von Flutter.
„Flutter“ ist Englisch für „Flattern“. Kolibris sind für ihren schnellen Flügelschlag bekannt. Google und die „Ubuntu“-Company Canonical hoffen auf einen großen und schnellen Erfolg der nun erfolgten Linux-Adaption von Flutter.
(Bild: Hundefan auf Pixabay)

Das Ziel für Flutter sein 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

„Flokk“ ist quelloffen. Durch die Anzeige von Github- und Twitter-Benachrichtigungen werden Kontakte zum persönlichen social network.
„Flokk“ ist quelloffen. Durch die Anzeige von Github- und Twitter-Benachrichtigungen werden Kontakte zum persönlichen social network.
(Bild: Canonical/Google)

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

(ID:46698440)