FlatternGoogles Open-Source-Framework zum Erstellen von Multi-Plattform-Apps für Mobilgeräte, Web und Desktop, hostet seine Vorwärts flattern Veranstaltung in Nairobi, Kenia heute. Wie der Name schon sagt, nutzt das Team die Veranstaltung, um aufstrebende Funktionen des Frameworks vorzustellen, von denen sich die meisten noch in einem sehr frühen Entwicklungszyklus befinden. Die wichtigsten Highlights hier sind die massiv verbesserte Grafikleistung, die Möglichkeit, Flutter-Code einfacher in bestehende Web- und mobile Apps einzubetten, und die Unterstützung neuer Architekturen wie Web Assembly und RISC-V. Praktisch alle diese Fähigkeiten befinden sich immer noch in Canary Branches und hinter Experiment-Flags, aber sie zeigen, wohin Google dieses Projekt in den kommenden Monaten führen will – und helfen dem gesamten Open-Source-Ökosystem um es herum zu verstehen, wo einige ergänzende Arbeit nützlich sein könnte ( etwa 40 % der Mitwirkenden an Flutter sind außerhalb von Google).
Tim SchneathGoogles Director of Product and UX für Flutter und die Programmiersprache Dart, sagte mir, dass das Team beschlossen habe, komplett neu zu schreiben Laufrad, die Rendering-Laufzeit von Flutter. Diese neue Version zielt darauf ab, einige der bestehenden Störungen der vorherigen Engine zu beheben, verbessert aber auch die Leistung erheblich – und bietet gleichzeitig Unterstützung für Hot Reloads und andere zentrale Flutter-Funktionen. „Es ist so eine andere Art von Erfahrung. Es ist einfach so seidig glatt“, sagte er. „Im Wesentlichen sind wir in der Lage, eine Grafik-Rendering-Engine zu bauen, die auf Flutter zugeschnitten ist, anstatt einen Allzweck-Renderer zu nutzen.“
Um diese Leistung zu ermöglichen, verfügt die Engine jetzt über vorkompilierte Shader, wodurch die Frame-Drops der vorherigen Engine während der Shader-Kompilierung vermieden werden. Es gibt jetzt auch Unterstützung für benutzerdefinierte Shader und Pixel-Shader, was eine Reihe neuer Effekte ermöglicht – was es Entwicklern wiederum ermöglicht, eine Vielzahl neuer Erfahrungen auf Flutter aufzubauen. Unter all dem sitzen die Low-Level-Vulkan- und Metal-3D-Grafik-APIs von Android und iOS. Derzeit konzentriert sich das Team hier auf Mobilgeräte, obwohl viele dieser neuen Grafikfunktionen auch bereits auf macOS und Windows funktionieren sollten. „Unser allgemeines Modell für Flutter ist, es überall hin mitzunehmen, wo man Pixel malen kann“, sagte Sneath.
Apropos, Flutter überall hin mitzunehmen, eine weitere neue Funktion, die das Team in der Vorschau ansieht, ist das Einbetten von Elementen. Für Webentwickler bedeutet dies, dass sie Flutter-Inhalte mithilfe eines standardmäßigen
Das Team arbeitet auch an einem neuen Paket, das eine bessere Interoperabilität von JavaScript und Dart ermöglicht, sowie an neuen Tools, mit denen Flutter System-APIs auf Android und iOS einfacher aufrufen kann. Es hatte diese Fähigkeit bereits zuvor, aber um dies zum Laufen zu bringen, musste eine Menge Boilerplate-Code für Entwickler geschrieben werden.
Mit Blick auf die Zukunft startet das Team auch seine ersten Versuche, Flutter für WebAssembly zu kompilieren. Da der Hype um dieses Binärformat schnell wächst – und sowohl die Browserunterstützung als auch die serverseitigen Tools ausgereift sind – ist es vielleicht keine Überraschung, dass das Flutter-Team auch an dieser Technologie interessiert ist. Zum größten Teil geht es darum, zusätzliche Leistung von Flutter zu bekommen, erklärte Sneath. „Dart transpiliert in sehr eng kompilierten JavaScript-Code, aber es ist immer noch JavaScript-Code, also wird er geladen und interpretiert – und für uns sieht es so aus, als würde WebAssembly uns etwas kürzere Ladezeiten geben, die Größe und Anzahl der Megabyte reduzieren über den Draht übertragen. Das scheint interessant zu sein“, sagte er. „Das Potenzial für WebAssembly besteht – sowohl im Web als auch darüber hinaus – darin, diese neue Art von tragbarer Lingua Franca zu werden. Mir gefällt die Idee, dass wir auch anderen Code in anderen Sprachen in WebAssembly übernehmen und verwenden können.“
Was RISC-V betrifft, die lizenzgebührenfreie Open-Standard-Chiparchitektur, die sich ebenfalls in der gesamten Branche durchsetzt, bemerkte Sneath, dass es noch sehr früh sei (obwohl er sagte, dass er es wirklich genossen habe, mit der RISC-V-basierten zu spielen ClockworkPi DevTerm Kit), aber er glaubt, dass die Unterstützung dieser Architektur Flutter neue Plattformen eröffnen könnte, insbesondere im eingebetteten Bereich. Da auch das Android-Team von Google in diese Architektur investiert, lohnt es sich auf jeden Fall, ein Auge darauf zu werfen, was Google hier tut, auch wenn die Zahl der Entwickler, die speziell auf diese Architektur abzielen, sicherlich noch recht gering ist.
Schließlich bringt das Flutter-Team auch ein interessantes neues Toolkit für Nachrichtenverleger auf den Markt, das auf dem Erfolg einer ähnlichen Initiative aufbaut, die das Team letztes Jahr auf der I/O-Entwicklerkonferenz von Google für Spieleentwickler gestartet hat. Dieses Toolkit soll es neuen Publishern ermöglichen, schnell eine neue zentrierte mobile App mit Unterstützung für Authentifizierung, Anzeigenintegration, Benachrichtigungen und mehr zu erstellen – und das alles, ohne diese Elemente von Grund auf neu entwerfen zu müssen.