Cross-Plattform: Uno Platform 4.1 stellt sich auf Android 12 ein

Das Update der Open-Source-Plattform verspricht bis zu 30 Prozent höhere Performance für native Apps unter Windows, Android, macOS, iOS, Linux und WebAssembly.

In Pocket speichern vorlesen Druckansicht
Cross-Plattform: Uno Platform 4.1 stellt sich auf Android 12 ein

(Bild: Tada Images/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Matthias Parbel

Das Open-Source-UI-Framework Uno Platform ist in Version 4.1 fertiggestellt. Für das neue Release hat das Entwicklerteam unter anderem zahlreiche Änderungen vorgenommen, die der Performance zugutekommen sollen. Darüber hinaus ist Uno Platform nun auf das SDK für Android 12 angepasst und bietet ersten Support für die Vorschauversionen von .NET 6 Mobile und Visual Studio 2022 17.2.

Entwicklerinnen und Entwickler können mit Uno plattformübergreifende Single-Codebase-Anwendungen mit C# und WinUI XAML erstellen, die sich nativ unter Windows, Android, macOS, iOS, Linux und WebAssembly nutzen lassen. Für Googles Mobilbetriebssystem galt dabei bisher noch das Android 10 SDK und dessen Dependencies als Mindestanforderung. Mit Uno Platform 4.1 erfolgt jedoch das Upgrade auf das Android 12 SDK, sodass nun die SDKs 11 und 12 zur Auswahl stehen – Support für das Android 10 SDK entfällt. Die mit Uno Platform gebauten Android-Apps sollen aber weiterhin bis zu Version 5 des Mobilbetriebssystems kompatibel sein.

Mit Blick auf die Apple-Betriebssysteme macOS und iOS sollten sich Uno-Entwickler auf mögliche Breaking Changes bei den APIs einstellen, die sich im Zuge der Einführung der .NET 6 Mobile Preview 13 ergeben können. Betroffen sind davon insbesondere Apps, die Libraries mit "nativen" Primitives wie nint und nfloat nutzen. Das Gros der .NET-6-Uno-Anwendungen soll nach Einschätzung des Teams aber davon unberührt bleiben. Dennoch empfehlen die Uno-Macher beim Bauen von Apps mit Uno 4.1 und der Visual Studio 2022 17.2 Preview 1 einen Vorabcheck.

Nachdem beim Major Release 4.0 unter anderem eine Extension für Visual Studio Code zum Entwickeln im Browser, in GitHub Codespaces und Gitpod im Fokus stand, hat das Team nun in verschiedenen Bereichen nachgebessert, um die Leistung der Uno Platform insgesamt zu erhöhen – beispielsweise beim Speicherverbrauch und der Speicherallokation. So spielt bei den Berechnungen für das Layout der Benutzeroberfläche der Measure-Pass (MeasureOverride und InvalidateMeasure) eine wichtige Rolle. Ab Uno 4.1 wird nach dem Aufruf von InvalidateMeasure MeasureOverride nur noch für Steuerelemente ausgeführt, deren Größe sich geändert hat – statt wie bisher für alle. Das soll zu verbesserter Responsivität beitragen, steht aktuell aber nur für die WebAssembly- und Skia-(Linux)-Backends zur Verfügung, Android und iOS sollen in Kürze nachziehen

Um den Garbage Collector (GC) bei der Speicherverwaltung zu entlasten, hat sich das Team um die Reduzierung der Speicherallokationsvorgänge rund um die Critical-Path-Prozesse bei Layout und Rendering bemüht. Dazu wurde ein Array-Pooling-System mit der MemoryManager-Klasse verknüpft, das eine dynamische Verwaltung gepoolter Arrays ermöglicht, basierend auf den vom GC ermittelten Speicherengpässen.

Einen vollständigen Überblick der Neuerungen in Uno Platform 4.1 liefern der Blogbeitrag zur Ankündigung des neuen Release sowie die Website des Open-Source-Projekts.

(map)