Alles ist ein Widget!

Google veröffentlicht UI-Framework Flutter in Beta-Version
Keine Kommentare

Schon 2015 hat Google die erste Version von Flutter vorgestellt, jetzt ist das UI-Framework auch in der Beta-Version verfügbar. Google verspricht individuellere Apps, die auf iOS und Android gleichermaßen laufen und trotzdem auf native Funktionen zugreifen können. Laut den Entwicklern sind das „revolutionäre“ Neuerungen. Ob das stimmt? Wir werfen einen Blick darauf.

Derzeit läuft der Mobile World Congress in Barcelona, und natürlich haben wir der Messe ein eigenes Planet-Android-Spezial gewidmet. Vielleicht haben sich einige gewundert, dass eine der wichtigsten Neuerungen für Coder bei uns bisher gefehlt hat: die Veröffentlichung der Beta-Version von Googles neuem UI-Framework Flutter. Tatsächlich sind wir der Meinung, dass das Ganze so spannend ist, dass wir dem Framework einen eigenen Beitrag widmen. Dabei geht es nicht nur um die wichtigste Fähigkeit von Flutter, ein Framework für die plattformübergreifend Entwickelung nativer Funktionen für iOS und Android zu sein. Flutter hat nach Angaben von Google noch mehr zu bieten.

Future getBatteryLevel() async {
  var batteryLevel = 'unknown';
  try {
    int result = await methodChannel.invokeMethod('getBatteryLevel');
    batteryLevel = 'Battery level: $result%';
  } on PlatformException {
    batteryLevel = 'Failed to get battery level.';
  }
  setState(() {
    _batteryLevel = batteryLevel;
  });
}

Zugriff auf native Funktionen wie die Batterieanzeige soll besonders einfach sein. Quelle: Google

Wie funktioniert Flutter?

Besonders wichtig sind in Flutter Widgets. Denn so ziemlich alles ist in Flutter ein Widget. Da diese in dem Framework so wichtig sind, werden sie innerhalb von Apps mit einem eigenen Renderer erstellt. Folglich werden keine OEM Widgets oder DOM WebViews genutzt. So sollen Widgets einfacher anzupassen und erweiterbar sein. Die jeweilige Plattform stellt nur noch ein Canvas und Zugang zu Events zur Verfügung.

Da es keine OEM Widgets mehr gibt, wird aus dem virtuellen Widget Tree ein „echter“ Widget Tree, der direkt in Flutter gerendert und auf die Canvas der Plattform gezeichnet wird. Hierdurch sollen Entwickler auch mehr Kontrolle über Animationen erhalten, die jetzt von der App gerendert und in ihr ausgeführt werden. Zwar erhöht sich dadurch die Mindestgröße für Apps auf rund 6,7MB, aber das entspricht laut Google den Vergleichswerten anderer Frameworks mit solchen Möglichkeiten.

Auch das Layout soll in Flutter anders sein als bisher. Anders bedeutet hier vor allem einfach. Google gibt an, das Layouting auf den Kopf gestellt haben. So nutzt Flutter kein umfassendes Regelbuch für Layouts mehr, welches sich auf jedes Widget anwenden ließe, sondern jedes Widget hat sein eigenes Layoutmodell, sodass dieses Layout auch sehr viel besser optimierbar und anpassbar sein soll. Da Widgets das Layoutmodell definieren, wird die Scrollgeschwindigkeit erhöht, denn es braucht keinen „Layoutrahmen“ mehr, der mit geladen werden müsste.

Scrolling Google Flutter

Mit Flutter sollen sich besonders gut solche speziellen Scrolling-Lösungen realisieren lassen. Quelle: Google

Mit der besseren Anpassbarkeit soll auch eine größere Individualisierung einhergehen. So verspricht Google, dass es mit Flutter keine „cookie cutter apps“ mehr geben soll. Also Apps, die – wie mit der Plätzchenform ausgestochen – mehr oder weniger alle gleich aussehen.

Mit Flutter flotter programmieren

Um die vorgestellten Funktionen möglich zu machen, nutzt Google die hauseigene Programmiersprache Dart 2.0. Als eine von deren wichtigsten Funktionen hebt Google die „Generational Garbage Collection“ hervor. Diese soll kurzlebige Objekte – wie einzelne Frames, die beim Refresh des View Trees erstellt werden – besonders effizient entfernen. Daneben ist der „Tree Shaking Compiler“ eine Besonderheit von Dart 2.0. Der Compiler kompiliert nur die Codeabschnitte, die aus dem View Tree benötigt werden. So können große Widget-Bibliotheken genutzt werden, auch wenn nur ein oder zwei Widgets notwendig sind.

Die Ergebnisse des Codings lassen sich mit Flutter direkt „am lebenden Objekt“ ausprobieren, Google spricht hier von „hot reload“. Das bedeutet, dass Änderungen in der Entwicklungsphase durch Reloads einer App direkt sichtbar werden, selbst wenn diese gerade läuft. Ein Neustart entfällt.

Sorgen um die Kompatibilität sollen sich Entwickler mit Flutter auch nicht mehr machen müssen. Von Android Jelly Bean und iOS 8.0 an sind alle Apps laut Google nicht nur kompatibel, sie arbeiten auch in genau derselben Art und Weise. Da Google Flutter selbst nutzt, gelobt der Konzern, Widgets immer möglichst nah an aktuellen OEM Widgets zu halten. Außerdem sind Updates aufgrund der hohen Anpassbarkeit zum einen durch Entwickler selbst möglich, zum anderen lassen sich Updates auch ausschließen. So soll verhindert werden, dass Apps durch Aktualisierungen ihr Aussehen verändern oder unbrauchbar werden. Und da Flutter komplett Open Source ist, soll sich so ziemlich alles außer der Engine anpassen lassen.

Wer jetzt Lust bekommen hat, in Flutter reinzuschauen, kann über die Website zum Framework starten. Wer dagegen noch mehr Informationen braucht oder erst einmal ein wenig ausprobieren möchte, dem bietet Google die Möglichkeit, auf Beispiele zuzugreifen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

X
- Gib Deinen Standort ein -
- or -