Schnelle UI-Entwicklung mit Flutter für Windows

Es gibt viel zu sagen für Tools, die es einfach machen, mehrere Plattformen von einer einzigen Codebasis aus anzusprechen, die Belastung der Entwickler zu verringern und die Reichweite Ihrer Anwendungen zu erhöhen. Microsoft Xamarin ist ein hervorragendes Beispiel dafür und erweitert .NET auf iOS und Android. Aber was ist mit der anderen Richtung, in der ein etabliertes mobiles Entwicklungstool Windows als neue Plattform hinzufügt?

Es kommt nicht oft vor, aber überraschenderweise fügt Googles Flutter-Entwicklungsumgebung für Mobilgeräte neben der bestehenden Unterstützung für Android, iOS, macOS, Linux und das Web ein neues Build-Ziel in Windows hinzu. Mit den neuesten Entwicklungsversionen können Sie jetzt Flutter-Apps für Win32 erstellen, indem Sie dieselben Steuerelemente und Designtools verwenden, um gleichzeitig mit dem Erstellen mobiler Apps Desktop-Code bereitzustellen.

Die Ausrichtung auf Windows ist für Google sinnvoll, da mehr als die Hälfte der Flutter-Entwickler Windows-Entwicklungstools verwendet. Das UI-Tool von Flutter ist nativer Code. Da es mit Standard-Windows-API-Aufrufen funktioniert, können Sie es mit neuem oder vorhandenem Code verwenden.

Verwenden von Flutter unter Windows

Flutter basiert auf der neuesten Version der Dart-Sprache von Google. Es ist eine C-ähnliche Sprache mit einer Struktur, die sowohl an JavaScript als auch an C # erinnert. Wenn Sie aus einem .NET-Hintergrund kommen, gibt es nicht zu viel Neues zu lernen. Die Sprachkonstrukte sind bekannt. Eine niedrige Eintrittsbarriere ist eine gute Sache, da Sie bereit sein sollten, sehr schnell mit dem Codieren zu beginnen.

Die Windows-Unterstützung von Flutter ist experimentell, daher müssen Sie einige Änderungen an einer Standardinstallation über die Befehlszeile vornehmen. Wechseln Sie zuerst zum Entwicklungskanal und aktualisieren Sie dann, um sicherzustellen, dass Sie den neuesten Entwicklerkanal-Build ausführen. Verwenden Sie abschließend die Befehlszeilen-Flutter-Tools, um die Windows-Desktopunterstützung zu aktivieren. Starten Sie anschließend alle geöffneten Editoren neu. Sie können überprüfen, ob die Windows-Unterstützung aktiviert ist, indem Sie nach verbundenen Geräten suchen. Windows wird hier angezeigt. Es ist eine gute Idee, das Dienstprogramm Flutter Doctor auszuführen, um zu überprüfen, ob alle entsprechenden Abhängigkeiten installiert sind, da dadurch bei Bedarf fehlende Funktionen installiert werden.

Im Gegensatz zu den Mobilgeräteversionen von Flutter benötigt die Desktop-Version Visual Studio 2019 mit seinen C ++ - Desktop-Entwicklungstools. Sie können weiterhin in Visual Studio Code arbeiten, wenn Sie bereits mobile Flutter-Apps haben, die Sie auf den Desktop bringen möchten. Desktop Flutter muss jedoch den Windows C ++ - Compiler verwenden, um Windows-Apps mit allen erforderlichen unterstützenden Bibliotheken zu erstellen.

Schreiben von Flutter-Anwendungen unter Windows

Auch wenn Sie die C ++ - Tools von Visual Studio benötigen, bearbeiten und erstellen Sie einen Großteil Ihrer Flutter-Desktopanwendungen in Visual Studio Code mit dem Flutter-Plug-In und wechseln zu Visual Studio, wenn Sie C ++ bearbeiten oder die Windows SDKs verwenden müssen. Durch das Erstellen eines neuen Projekts wird automatisch das Gerüst generiert, das zum Erstellen einer Windows-Desktopanwendung neben den Standardversionen für Android und iOS erforderlich ist. Anschließend können Sie Ihren Anwendungscode in der allgemeinen Datei main.dart bearbeiten, die beim Erstellen in die entsprechenden Versionen kompiliert wird.

Common Dart Code bleibt im lib Ordner. Im Windows-Ordner schreiben Sie Ihren plattformspezifischen Code und halten ihn von allen plattformübergreifenden Funktionen getrennt. Mit diesem Ansatz können Sie mithilfe der Plattformkanäle von Flutter auf Ihren vorhandenen Investitionen in Windows-Code und APIs aufbauen, um die Interoperabilität zwischen Windows C ++ - Code und Flutter's Dart zu gewährleisten.

Für die Visual Studio Code Flutter- und Dart-Tools muss noch Android Studio installiert sein, da sie zum Erstellen von Android-Versionen Ihrer Anwendungen benötigt werden. Wenn Sie an einer plattformübergreifenden App arbeiten, schreiben Sie am besten einen beliebigen Android-Code in Android Studio und speichern den Kotlin-Code im Android-Codebaum Ihrer Flutter-App. Das Teilen einer Codestruktur auf diese Weise ist sinnvoll. Während Sie die Option haben, Visual Studio-Code zum Bearbeiten von Windows C ++ - Code zu verwenden, bietet die vollständige Visual Studio-IDE viel mehr Vorteile und eine bessere Bibliotheksunterstützung. Dies macht sie zu einer bevorzugten Entwicklungsumgebung für Code, der das Win32-SDK und die Bibliotheken verwenden muss.

Verwenden von Windows SDKs, APIs und Bibliotheken mit Flutter

Flutter wurde für die Entwicklung über Entwicklungsstapel hinweg entwickelt und bietet zwei verschiedene Wege zur Arbeit mit Windows-nativen APIs. Der erste, Plattformkanäle, bietet eine Möglichkeit, Nachrichten von einer Flutter-Benutzeroberfläche an eine native API zu übergeben, indem ein Plattform-Plug-In als Wrapper für die API verwendet wird. Obwohl dies die genehmigte Methode zum Arbeiten über Stapelgrenzen hinweg ist, ist sie nachrichtenbasiert und asynchron und daher nicht für alle Windows-APIs geeignet.

Alternativ können Sie die Fremdfunktionsschnittstelle verwenden, um eine direkte Verbindung zu einer nativen Bibliothek herzustellen und deren API-Aufrufe zu verwenden. Dieser Ansatz ist wahrscheinlich der beste Weg, um Windows-Funktionen für eine Flutter-App bereitzustellen, da Sie mit statischen oder dynamischen Links direkt auf vorhandenen oder neuen Code verlinken können. Der native Code muss über verfügbare C-Symbole verfügen, damit Ihr Flutter-Code mit ihnen verknüpft werden kann. Jeder C ++ - Code muss sie über die externOption im C-Format exportieren .

Die meisten Windows SDK-Bibliotheken sind bereits kompiliert, daher müssen Sie dynamische Verknüpfungen verwenden, um sie in Ihre Flutter-Anwendungen zu integrieren. Verwenden Sie die Flutter- DynamicLibrary.openFunktion, um sie Ihrer Anwendung hinzuzufügen, und behandeln Sie sie dann wie ein Flutter-Plug-In. Tatsächlich arbeitet das Flutter-Team bereits an einem Win32-Plug-In, das den Zugriff auf die meisten Windows-APIs ermöglicht, die für die Verwendung in Ihrem Code bereit sind.

Ein Tool für die schnelle, kollaborative Entwicklung der Benutzeroberfläche

Einer der Vorteile der Entwicklungswerkzeuge von Flutter ist die Hot-Reload-Option. Sie können eine Kopie Ihres Codes ausführen und an einen Debugger anhängen, eine Änderung am Code vornehmen und die Hot-Reload-Taste im Visual Studio Code-Terminal drücken, um die Anwendung neu zu laden, ohne ihren Status zu ändern. Es gibt eine Hot-Restart-Option, wenn Sie lieber mit einem neuen Status beginnen möchten.

Die Möglichkeit, die Benutzeroberfläche oder die Geschäftslogik schnell zu ändern, ohne eine App neu zu starten, ist eine sehr nützliche Funktion für Flutter. Die Programmierung wird interaktiver, insbesondere wenn Sie neben einem Designer oder Endbenutzer arbeiten. Sie können fragen, was funktioniert, schnell Änderungsvorschläge machen und sofort eine Antwort von Ihren Entwicklungspartnern erhalten. Sobald Sie bereit sind, Ihren Code zu veröffentlichen und bereitzustellen, führen Sie einen Build aus, um eine exe-Datei mit allen entsprechenden Support-DLLs zu generieren, die mit dem von Ihnen gewählten Installationsprogramm verpackt werden können.

Sie sind auch nicht auf Win32 beschränkt, da sich derzeit eine UWP Flutter-Shell in der Entwicklung befindet (und bereits für Store-Apps verwendet wurde). Das Ergebnis ist eine flexible und leistungsstarke plattformübergreifende UI-Schicht, die mit nativem Code auf einer Reihe von Plattformen funktioniert, auf die größeren Bildschirme von PCs skaliert werden kann, sowohl mit modernen als auch mit älteren Windows SDKs funktioniert und für die Arbeit mit Project bereit sein sollte Wiedersehen beim Ausrollen.