Cross-Plattform: Flutter 3.7 eröffnet neue Material-3-Funktionen

Das Flutter-Release 3.7 setzt weitere Anpassungen an Material Design 3 um und bietet benutzerdefinierte Kontextmenüs. Erste Alpha von Dart 3 erscheint.

In Pocket speichern vorlesen Druckansicht 19 Kommentare lesen

(Bild: Ko Thongtawat / Shutterstock.com)

Lesezeit: 3 Min.

Google hat neue Releases des Cross-Plattform-Frameworks Flutter sowie der Programmiersprache Dart veröffentlicht – wie üblich zur gleichen Zeit. In Flutter 3.7 setzt das Entwicklungsteam seine Bemühungen fort, die komplette Funktionalität von Material Design 3 verfügbar zu machen. Die neue Version des Frameworks ermöglicht Entwicklerinnen und Entwicklern zudem eigene Kontextmenüs zu erstellen. Die erste Alpha von Dart 3 gibt derweil einen Ausblick auf das kommende Major Release der Programmiersprache, die künftig vollständig auf Sound Null Safety setzt.

Den Auftakt zur Migration auf Material 3 markierte bereits Flutter 2.10, seither treibt Google den Umstieg konsequent voran und überführt Komponenten in die neue Designsprache. Für das neue Release hat das Flutter-Team eine Vielzahl an Widgets migriert – darunter etwa Filled- und Filled Tonal-Buttons, Checkbox, Menus, Radio-Buttons und Slider. Um diese neuen Funktionen nutzen zu können, müssen Entwicklerinnen und Entwickler lediglich den Flag useMaterial3 im ThemeData-Widget der Applikation setzen. Um das Potenzial von Material 3 voll auszuschöpfen, empfiehlt Google jedoch, ein vollständiges M3-Farbschema zu erstellen. Dafür steht der neue Theme Builder zur Verfügung. Alternativ kann man es auch Flutter überlassen, ausgehend von einer gewünschten Farbe, ein Schema zu bauen:

MaterialApp(
  theme: ThemeData(
     useMaterial3: true,
    colorSchemeSeed: Colors.green,
  ),
  // …
);

Widgets, die standardmäßig Kontextmenüs anzeigen, bieten ab Flutter 3.7 einen weiteren neuen Parameter: contextMenuBuilder. Damit lassen sich die Kontextmenüs individuell anpassen oder erweitern. Neben den bei TextField üblichen Kopierbefehlen kann beispielsweise die Option zum Versenden einer E-Mail platziert werden, wenn App-Anwender eine E-Mail-Adresse markieren:

Benutzerdefinierte Kontextmenüs in Flutter 3.7

(Bild: Google)

Benutzerdefinierte Kontextmenüs lassen sich jetzt aber nicht nur bei der Textauswahl, sondern auch an anderen Stellen in einer Flutter-App einrichten, beispielsweise um Bilder mit einem Button zum Sichern zu ergänzen. Im Flutter Repo auf GitHub finden sich weitere anschauliche Beispiele.

Einen vollständigen Überblick aller Änderungen sowie weitere Details liefert der Blogeintrag zu Flutter 3.7.

Die Alpha-Version 3.0 der Programmiersprache Dart gibt einen Ausblick auf das nächste Major Release und dessen Breaking Changes. Null Safety, die sich seit Dart 2.12 optional festlegen ließ, wird künftig standardmäßig für das Typsystem aktiviert sein. Google spricht bei Dart von der Sound Null Safety, im Sinne von korrekt oder einwandfrei – vergleichbar zum Sound Type System für die strikte Typprüfung.

Um die Arbeit mit strukturierten Daten effizienter zu gestalten, können Entwicklerinnen und Entwickler ab Dart 3 auch Records und Patterns nutzen. Ergänzend kommen Optionen hinzu, um die Fähigkeiten von Klassen mit neuen Modifiern wie base class, sealed class oder mixin class zu kontrollieren.

Aufbauend auf die bestehenden Möglichkeiten, mit FFI (Foreign Function Interface) auf C-Module auf den Apple-Plattformen zuzugreifen, arbeitet das Dart-Team daran, die Interoperabilität der Programmiersprache weiter zu verbessern, um mehr plattformspezifische Libraries direkt aus Dart heraus aufrufen zu können. Für iOS und macOS soll der Support auf Swift und Objective-C ausgeweitet werden, unter Android sollen beispielsweise in Kotlin geschriebene Jetpack-Libraries verwendbar sein. Darüber hinaus soll die Programmiersprache neue Zielplattformen erschließen – darunter WebAssembly (Wasm) und RISC-V.

Dart 3 Alpha liegt ab sofort im Dart Dev Channel sowie im Flutter Master Channel bereit. Ein stabiles Release will das Entwicklungsteam im Jahresverlauf fertigstellen. Weitere Informationen fasst der Blogbeitrag zusammen.

(map)