Native plattformübergreifende Anwendungen – Erste Erfahrungen mit Flutter

Ich möchte euch ein wenig an meinen ersten Erfahrungen mit Flutter teilhaben lassen. Flutter ist ein Open Source Framework von Google, mit dem native mobile Anwendungen für iOS und Android entwickelt werden können. Zukünftig sollen auch weitere Plattformen wie Mac, Windows und das Web unterstützt werden.

Was ist Flutter?

Flutter Apps sind in Googles eigener Sprache Dart geschrieben, die viele Gemeinsamkeiten mit JavaScript hat. Spannend an Flutter ist die Möglichkeit, wirklich native Anwendungen mit nur einer Code-Basis zu entwickeln. Trotz der gemeinsamen Code-Basis sind Anpassungen für die unterschiedlichen Plattformen möglich, und selbst nativer plattformspezifischer Code kann mittels sogenannten Platform Channels verwendet werden.

Aufgebaut aus Widgets

Flutter Apps bestehen grob gesagt aus einer Ansammlung von Widgets in einer Baumstruktur. Jedes angezeigte Element ist ein Widget, jeder Button, jeder Text und selbst die App als Ganzes ist ein Widget. Ein Button ist beispielsweise ein Widget, in dem sich wiederum ein Text-Widget befindet. Die Anordnung von Widgets geschieht ebenfalls über andere Widgets wie Container, Columns oder Rows. Flutter bietet eine Reihe von Widgets an, die den Richtlinien von Googles Designsprache Material Design entsprechen und auf iOS und Android eine entsprechend an die Plattform angepasste Optik besitzen. So sehen die Komponenten nativ aus.

Performance

Anders als beispielsweise bei React Native, wo der Code erst zur Laufzeit in nativen Code umgewandelt wird, wird der mit Dart geschriebene Code auf den jeweiligen Plattformen als nativer Code kompiliert. Das liefert eine bessere Performance, da keine Bridge notwendig ist. Das UI wird mit Flutter auf einem Screen Canvas mittels der Grafikbibliothek Skia gezeichnet und verwendet somit keine nativen Komponenten. Stattdessen ist eine Flutter-App als Ganzes eine native Anwendung, die eher einem Spiel gleicht und daher sehr performant ist.

Flutter bietet sogenannte Reactive Views. So werden bei Änderungen des States nur die dazugehörigen Widgets neu gerendert. Bereits bestehende unveränderte Widgets werden aus dem Cache neu geladen, was sehr schnell ist.

Developer Experience

Für Entwickler ist die Funktion „Hot Stateful Reloading“ besonders spannend. Eine Änderung im Code erscheint damit in extrem kurzer Zeit auf dem Emulator oder dem Gerät (teilweise unter einer Sekunde). Gerade Änderungen an der UI können so sehr schnell im Detail angegangen werden. Anders als bei einigen anderen Frameworks liefert Flutter gleich verschiedene Test-Möglichkeiten mit. Es gibt Unit-Tests, Widget-Tests und Integration-Tests. Flutter eignet sich also auch für Test Driven Development.

Entwickeln lassen sich Flutter Apps mit allen gängigen Entwicklungsumgebungen. IntelliJ oder Visual Code haben beispielsweise offizielle Plugins, die von den Flutter Entwicklern selber geschrieben wurden. Auch Debuggen funktioniert wie aus der nativen Entwicklung gewohnt sehr komfortabel.

Apps mit Flutter

Das Aufsetzen einer App mit Flutter geht vergleichsweise schnell. Erste kleinere Anwendungen lassen sich mit Flutter erfahrungsgemäß schneller erstellen als native, da Flutter Apps sehr leichtgewichtig sind und der Aufbau eines UIs dank den Widgets übersichtlich ist. Sie funktionieren direkt plattformübergreifend, sowohl für Android und iOS, sodass Flutter gerade für MVPs die ideale Lösung darstellt. Neben kleineren Anwendungen sind auch größere komplexere Anwendungen mit Flutter möglich. Einige große Unternehmen wie beispielsweise Alibaba und Google selbst setzen bei ihren Apps mittlerweile auf Flutter.

Auch ich habe bereits einige kleinere Beispielsprojekte realisiert und wurde bin begeistert von der schnellen Realisierung. Bislang habe ich kein Problemen erlebt, das sich in Flutter nicht lösen ließ. Das meiste, was ich brauchte, war bereits Bestandteil von Flutter, und wenn doch mal was fehlte, halfen mir die unzähligen Bibliotheken mit Zusatzfunktionen sofort weiter.

Wenn Sie weitere Infos zu Flutter haben möchten, schauen Sie am besten mal auf der offiziellen Seite nach. Dort finden Sie hilfreiche Guides, um Flutter auf dem Rechner einzurichten und selbst eine kleine App aufzusetzen.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

%d Bloggern gefällt das: