Flutter Alpha für Linux und Desktop-Entwicklung

Die Übersetzung, die wir heute veröffentlichen, wurde von Chris Sells von Google und Ken VanDing von Canonical erstellt.



Google war stets bemüht, Flutter zu einem universellen Tool zu machen, mit dem attraktive Benutzeroberflächen erstellt werden können, die auf jeder Plattform genauso schnell funktionieren wie die nativen Anwendungen dieser Plattformen. Um dies zu gewährleisten, haben wir uns zunächst auf mobile Plattformen konzentriert - Android und iOS. Infolgedessen wurden mehr als 80.000 schnelle und schöne Flutter-Anwendungen auf Google Play veröffentlicht.







Aufbauend auf unseren Erfolgen sind wir seit über einem Jahr damit beschäftigt, die Funktionen von Flutter auf Desktop-Plattformen auszudehnen - MacOS, Windows und Linux. Dies gilt sowohl für Webanwendungen als auch für herkömmliche Desktop-Projekte. Insbesondere sind wir mit ernsthaften Umbauten des Motors beschäftigt. Das Refactoring zielt darauf ab, die Arbeit mit Maus und Tastatur im gleichen Stil wie auf Desktop-Systemen zu unterstützen sowie Fenster zu unterstützen, deren Größe geändert werden kann. Dies umfasst neue Benutzeroberflächenfunktionen, die für Desktop-Plattformen gut funktionieren. Dies unterstützt beispielsweise Material Density und NavigationRail . Dies beinhaltet Experimente zur tiefen Integration in Desktop-Betriebssysteme dank Dart: FFIund arbeiten mit Systemmenüs und Standarddialogfeldern. All dies wurde getan, um sicherzustellen, dass Flutter nicht nur zum Erstellen mobiler Projekte geeignet ist, sondern auch für die Entwicklung realer Desktop-Anwendungen verwendet werden kann.



Wir haben Flutter seit langem als Werkzeug für die Erstellung von Projekten gesehen, die auf eine Vielzahl von Plattformen abzielen. Bei Google wird der Ausdruck dieser Vision durch Projekte wie Assistant dargestellt . Jetzt freuen wir uns, dass andere Unternehmen den Flutter-Support auf neue Plattformen ausweiten. Heute freuen sich Google und Canonical, die Ubuntu , die weltweit beliebteste Linux-Distribution, unterhalten , gemeinsam die Veröffentlichung einer Alpha-Version von Flutter für Linux bekannt zu geben.



Linux Flutter?



Als Google im vergangenen Jahr die Möglichkeit ankündigte, Desktop-Anwendungen mit Flutter zu entwickeln, sah Canonical eine attraktive Gelegenheit, Linux-Distributionen, einschließlich Ubuntu, zu einer attraktiven Zielplattform für Flutter-Entwickler zu machen. In Bezug auf plattformübergreifende Funktionen schreitet Flutter schnell voran. Canonical wollte an der Spitze dieser Bewegung stehen. Durch die Unterstützung von Flutter bei der Unterstützung von Linux-Apps bietet Canonical den Entwicklern von Flutter-Apps einen sehr einfachen Mechanismus, um ihre Arbeit im Snap Store, einem Linux-App-Store, zu veröffentlichen. Durch die Einführung von Linux als Plattform, die Flutter-Anwendungen offiziell unterstützt, bietet Canonical Entwicklern die Möglichkeit, ihre Projekte Millionen von Linux-Benutzern vorzustellen und die Anzahl der Qualitätsprojekte zu erhöhen.für solche Benutzer verfügbar.



Die folgenden Merkmale von Flutter und das Ökosystem dieses Frameworks scheinen für Canonical besonders attraktiv zu sein:



  • Eine schnell wachsende Community von App-Entwicklern.
  • Unterstützung für mehrere Plattformen.
  • Die Fähigkeit, gut optimierte native Anwendungen zu entwickeln.
  • Spezifische Funktionen für moderne UI-Frameworks, z. B. Unterstützung für deklarative, reaktive Layout-Widgets.
  • Umfangreiche Anwendungsentwicklungsumgebung mit VS Code, Android Studio und IntelliJ.


Googles ursprünglicher Beitrag zur Desktop-Entwicklung in Flutter befasste sich mit einer Alpha-Version, die MacOS-Apps unterstützt, und plant, Linux- und Windows-Apps zu unterstützen. Canonical hat mit einem engagierten Entwicklungsteam, das in Zusammenarbeit mit Entwicklern bei Google sicherstellen möchte, dass Benutzer der meisten Linux-Distributionen Flutter-Anwendungen bequem nutzen können, erhebliche Investitionen in die Entwicklung von Flutter getätigt. Canonical wird weiterhin mit Google zusammenarbeiten, um die Linux-Unterstützung weiter zu verbessern und die für Flutter-Anwendungen unter Linux verfügbaren Funktionen auf dem gleichen Niveau wie die Unterstützung für andere Plattformen zu halten.



Flokk App - Beweis für Flatters Bereitschaft zur Desktop-Entwicklung



Um zu zeigen, dass Flutter für die mobile Entwicklung bereit ist, haben wir gemeinsam mit den Designern und Entwicklern von gskinner eine innovative und ansprechende Flutter-Desktop-App erstellt. Dies ist Flokk - eine echte Anwendung, die mit echten Daten arbeitet. Insbesondere - mit einer Liste von Kontakten aus Google-Kontakten. Hier ist eine Video-Demo von Flokk.



Mit dieser Anwendung können Sie Ihre Kontakte verwalten. Insbesondere - suchen Sie nach Kontakten, fügen Sie neue Kontakte hinzu und bearbeiten Sie vorhandene. Mit Flokk können Sie Ihren Kontakten auch die entsprechenden Twitter- und GitHub-Konten zuordnen und mit den Daten dieser Konten arbeiten.





Flokk Contacts basiert auf Flutter für Desktop-Computer.



Die Tatsache, dass die Anwendung Benachrichtigungen von Twitter und GitHub anzeigen kann, macht sie zu einem persönlichen sozialen Netzwerk eines Benutzers. Wenn das soziale Netzwerk, an dem Sie interessiert sind, noch nicht in Flokk integriert ist, können Sie dieses Problem lösen, indem Sie einfach die entsprechende PR an das Projekt-Repository senden, da Flokk ein vollständig Open-Source-Projekt ist .



Flokk bietet nicht nur innovative Ideen für die Benutzerinteraktion, sondern nutzt auch die Funktionen von Flutter, um attraktive und benutzerfreundliche Oberflächen zu erstellen. Ein Beispiel für solche Möglichkeiten ist in der folgenden Abbildung dargestellt. Hier wird gezeigt, dass beim Wechsel zum dunklen Thema der Anwendung kein einfacher, sondern ein animierter Farbwechsel durchgeführt wird.



Bild


Mit den Funktionen von Flutter kann Flokk flüssige Animationen, leistungsstarkes Scrollen und



benutzerfreundliche Themen ausführen. Das Kreativteam hinter Flokk wird von Grant Skinner geleitetWer ist bekannt für exzellente Designlösungen und innovative UX-Ideen. Grant sagte über die Arbeit mit Flutter unter Linux Folgendes: „Die Entwicklung der Flokk Contacts-App erwies sich als sehr einfache Aufgabe! Wir konnten hier all unsere Erfahrungen in der Flutter-Entwicklung anwenden und eine Anwendung für Linux erstellen, ohne auf spezielle Tricks zurückgreifen zu müssen. Die App erwies sich als sehr gut. Wir haben die Zusammenarbeit mit dem Canonical-Team sehr genossen. Sie waren begeistert, leidenschaftlich für unser Geschäft und wollten Flutter verbessern, indem sie nicht nur an Linux, sondern auch an alle anderen Plattformen dachten. Es war ein großartiges Projekt und ich liebe die Aussicht, Flutter-Anwendungen für andere Desktop-Betriebssysteme zu entwickeln. "



Wenn Sie Flokk auf Ihrer Linux-Box verwenden möchten, können Sie die neueste Version der Anwendung von GitHub herunterladen . Und wenn Sie snapd verwenden, können Sie Flokk aus dem Snap Store herunterladen .



Flutter unter Linux installieren



Nachdem Sie gesehen haben, welche hochwertigen Desktop-Anwendungen Sie mit Flutter erstellen können, insbesondere Linux-Anwendungen, möchten Sie Flutter möglicherweise auf Ihrer eigenen Linux-Box ausprobieren. Um die Vorbereitung von Linux-Systemen für die Entwicklung von Flutter-Anwendungen so weit wie möglich zu vereinfachen, freuen wir uns, Ihnen mitteilen zu können, dass das Flutter SDK für Linux als Snap-Paket im Snap Store erhältlich ist... Dieses Paket enthält alles, was Sie zum Entwickeln von Flutter-Anwendungen mit Ihrer bevorzugten Linux-Distribution benötigen. Davon abgesehen müssen Sie nicht eine ganze Reihe von Entwicklungsabhängigkeiten installieren. Sie müssen lediglich das Flutter SDK- und IDE-Snap-Paket Ihrer Wahl installieren. Dann haben Sie alles, was Sie zum Erstellen, Erstellen und Veröffentlichen Ihrer eigenen Linux-Anwendungen benötigen.



Wenn Sie beispielsweise mit der Entwicklung von Flutter-Anwendungen unter Linux beginnen möchten und Visual Studio Code mögen, finden Sie hier eine Reihe von Befehlen, die Sie im Terminal ausführen müssen:



$ snap install --classic flutter
$ snap install --classic code
$ code --install-extension dart-code.flutter


Wenn Sie unter Linux arbeiten möchten, um nicht nur Desktop-, sondern auch mobile Anwendungen zu erstellen, können Sie sich darauf vorbereiten, indem Sie das Android SDK oder Android Studio installieren (das Android SDK ist hier bereits enthalten). Details zum Flutter SDK-Snap finden Sie hier .



Entwicklung von Linux Desktop-Anwendungen



Nachdem Sie das Flutter SDK auf Ihrem Linux-Computer installiert haben, müssen Sie zum Kanal gehen devoder masterFlutter aktualisieren , um Desktop-Anwendungen zu erstellen . Dann müssen Sie die Unterstützung für Linux-Desktopanwendungen aktivieren:



$ flutter channel dev
$ flutter upgrade
$ flutter config --enable-linux-desktop


Wenn Sie jetzt ein neues Flutter-Projekt erstellen, verfügen Sie über ein Unterverzeichnis linux, mit dem Sie die Anwendung unter Linux ausführen können:



$ flutter create counter
$ cd counter
$ flutter run -d linux






Die berühmte Flutter Counter-Anwendung funktioniert auch unter Linux hervorragend



. Sie haben eine brandneue Linux-Anwendung, die mit Flutter erstellt wurde und auf der neuesten stabilen Version von GTK + ausgeführt wird. Wenn Sie bereits ein Flutter-Projekt haben, das Sie mit Linux-Unterstützung ausstatten möchten, nachdem Sie dies getan haben, nachdem Sie die Linux-Unterstützung in solchen Projekten aktiviert haben, können Sie das Verzeichnis selbst zu Ihrem Projekt hinzufügenlinux:



$ cd my_flutter_app
$ flutter create .


Dadurch wird ein Unterverzeichnis mit einem speziellen Projekt erstellt, das zum Erstellen und Ausführen Ihrer Flutter-Anwendung auf dem Linux-Desktop erforderlich ist.



Arrangieren des Zugriffs auf nativen Linux-Code von Flutter aus



Neben der Unterstützung von Desktop-Anwendungen durch Schreiben von Dart-Code zum Erstellen von Flutter-Widgets kann Ihre Linux-Desktop-Anwendung über Plattformkanäle oder FFI ( Foreign Function Interface ) für C / C ++ auf native Linux-Funktionen zugreifen ... Wenn Sie möchten , können Sie den vorhandenen Code unter pub.dev wiederverwenden, auf der Paketmanager-Website für Dart und Flutter. Die meisten Pakete, die Sie auf pub.dev finden, sind in reinem Dart geschrieben. Die meisten dieser Pakete funktionieren in Linux-Anwendungen einwandfrei. Einige Pakete, sogenannte Plugins, enthalten nativen Code, der auf eine bestimmte Plattform abzielt. Im Rahmen dieser Version haben wir drei Plugins auf pub.dev veröffentlicht, die native Linux-Funktionen verwenden:



  • url_launcher : Öffnet die URL in Ihrem Standardbrowser.
  • shared_preferences : Benutzereinstellungen, die in verschiedenen Sitzungen der Anwendung verwendet werden.
  • path_provider : Pfadinformationen zu bestimmten Verzeichnissen wie dem Verzeichnis für Downloads, Bilder und dergleichen.


Sie können jedes dieser Plugins in Ihren Anwendungen verwenden, sie können jedoch auch als Beispiele dafür dienen, wie Sie mit nativen Linux-Funktionen aus Flutter-Code arbeiten können. Zum Beispiel, hier ist der Quellcode für die url_launcher Plugin - Implementierung.



Veröffentlichen von Apps im Snap Store



Um Ihre Flutter-App im Snap Store zu veröffentlichen, müssen Sie zuerst Snapcraft installieren, das Tool zum Erstellen und Veröffentlichen von Apps als Snap-Pakete:



$ sudo snap install snapcraft --classic


Um die Funktionen von Snapcraft nutzen zu können, müssen Sie eine Datei im Projektverzeichnis der Anwendung erstellen snapcraft.yaml. Zum Beispiel, wie eine solche Datei für Flokk aussieht:



name: flokk-contacts
version: 1.0.1
summary: Flokk Contacts
description: A fresh and modern Google Contacts manager that integrates with GitHub and Twitter.
confinement: strict
base: core18
grade: stable
apps:
  flokk-contacts:
    command: flokk-contacts
    extensions: [flutter-master]
    plugs:
    - network
parts:
  flokk-contacts:
    source: .
    plugin: flutter
    flutter-target: lib/main.dart # ,      


Jetzt können Sie im Verzeichnis mit der Datei snapcraft.yamlSnapcraft ausführen, um ein Anwendungs-Snap-Paket zu erstellen:



$ snapcraft


Wenn alles wie erwartet funktioniert, erstellt dieser Befehl eine Datei im aktuellen Arbeitsverzeichnis. Es wird ungefähr so ​​heißen:



flokk-contacts_1.0.1_amd64.snap


Nachdem Sie Ihr Konto für die Veröffentlichung von Apps im Snap Store vorbereitet haben , können Sie den soeben erstellten Snap veröffentlichen:



$ snapcraft login
$ snapcraft register flokk-contacts
$ snapcraft upload flokk-contacts_1.0.1_amd64.snap --release edge


Hier laden wir die App in den Snap Store hoch und versuchen, sie im Edge-Feed zu veröffentlichen . Sobald die App auf diesem Kanal veröffentlicht wurde, können Sie sie entweder über den Snap Store-Desktop-Client oder über die Befehlszeile installieren:



$ snap install --edge flokk-contacts


Details zum Erstellen und Veröffentlichen Ihrer ersten App im Snap Store finden Sie hier .



Beispiele für Flutter Desktop-Anwendungen



Die Flokk-App ist ein großartiges Beispiel für ein reales Projekt für Linux-Desktops. Ein einfacheres Beispiel finden Sie in der Fotosuch- App . Es wurde speziell entwickelt, um die Funktionen von Flutter für die Entwicklung von Desktop-Anwendungen zu demonstrieren.





Fotosuchanwendung



Dies ist eine einfache Online-Fotosuchanwendung, die mehrere Plugins verwendet, um auf die systemeigenen Funktionen der unterstützten Plattformen zuzugreifen, einschließlich macOS und Linux.



Wenn Sie schrittweise Anweisungen zum Entwickeln von Linux-Desktopanwendungenbenötigen, lesen Sie dieses Codelab-Tutorial. Es konzentriert sich auf die Verwendung von OAuth und GraphQL zum Erstellen eines GitHub-Clients mit Flutter.





GitHub-Client



Wenn Sie ein komplexeres Projekt erkunden möchten, das viel mehr Funktionen von Flutter nutzt und einige interessante Codebeispiele enthält, können Sie sich die Flutter Gallery- App ansehen. Es wurde letztes Jahr erneuert. Es unterstützt jetzt neben mobilen Plattformen auch Desktop-Plattformen. Wenn Sie diese App in Aktion sehen möchten, können Sie sie aus dem Snap Store herunterladen .





Die Flutter Gallery App kann aus dem Snap Store heruntergeladen werden.



Hier ist eine weitere Desktop-App, die die Unterhaltungsfunktionen von Flutter veranschaulicht. Dies ist ein Multiplayer- Batufo- Spielvon Thorsten Lorenz. Dieses wunderschöne Spiel ermöglicht es Spielern aus aller Welt, in Echtzeit gegeneinander anzutreten.





Das Batufo-Spiel, das auf verschiedenen von Flutter



Thorsten unterstützten Plattformen ausgeführt wird, hat dieses Spiel mit Unterstützung für verschiedene Plattformen erstellt, darunter Linux, MacOS, Android und iOS. Wenn Sie wissen möchten, wie dieses Spiel entwickelt wurde, und wenn Sie die Entwicklung dieses Projekts verfolgen möchten, können Sie sich diese Videos ansehen und in das Projekt- Repository schauen. Unter Linux kann dieses Spiel aus dem Snap Store installiert werden.



Ergebnis



Mit der Veröffentlichung der Alpha-Version von Flutter für Linux und dank der engen Zusammenarbeit zwischen Google und Canonical können Linux-Entwickler jetzt die Funktionen von Flutter nutzen, um Anwendungen zu erstellen, die auf ihre Betriebssysteme zugeschnitten sind. Sie müssen lediglich den Flutter SDK- Snap installieren , die App mit VS Code oder Android Studio erstellen, testen und im Snap Store veröffentlichen. Neuigkeiten zur Desktop-Entwicklung mit Flutter finden Sie hier . Und was für uns sehr, sehr wichtig ist, versuchen Sie, eine Bewertung abzugebenüber die neuen Funktionen von Flutter. Dies wird uns helfen, die Linux-Unterstützung für Flutter-Anwendungen so gut wie möglich zu gestalten. Tatsächlich bemühen wir uns, dasselbe durch die Zusammenarbeit mit anderen Plattformen zu erreichen.



Flutter für Linux vom Entwicklungsteam von Canonical ist ein großer Schritt vorwärts, ein Schritt in Richtung unseres Traums, Flutter zum ultimativen Anwendungsentwicklungsframework für alle Plattformen zu machen. Die Tatsache, dass Flutter-Anwendungen jetzt für den Desktop entwickelt werden können, macht die Flutter-Engine für eine Vielzahl von Geräten viel zugänglicher. Obwohl Google diese Geräte nicht direkt unterstützen kann, plant das Unternehmen, weiterhin Partnerschaften mit anderen Unternehmen aufzubauen und das Flutter-Ökosystem zu entwickeln.



Wir möchten Flutter auf allen Geräten sehen, die schnelle und ansprechende Apps benötigen.



Haben Sie versucht, Flutter-Anwendungen für Linux zu erstellen?






All Articles