Flutter – das Cross-Plattform-Framework vorgestellt

By appsoluts 3 Jahren agoNo Comments
Flutter – das Cross-Plattform-Framework vorgestellt

Nicht nur auf dem Android Smartphone soll die eigene App laufen. Heutzutage braucht man ebenso die iOS App und am besten soll die Software gleich auch im Web funktionieren, um erfolgreich zu sein. Mit Flutter verspricht Google, durch die Verwendung einer einzigen Codebasis, die App Entwicklung effizienter zu machen und der nativen Entwicklung das Wasser zu reichen. Zukünftig also kein Java, kein Kotlin und kein Swift mehr? Sondern nur noch Flutter? In diesem Blogbeitrag wird Flutter – das Cross-Plattform-Framework vorgestellt.

Zukünftig also kein Java, kein Kotlin und kein Swift mehr? Sondern nur noch Flutter? Das erhoffen sich zumindest die Entwickler von Google, welche zur I/O 2018 v0.10.2 der Flutter SDK veröffentlicht haben. Nach dem vergleichsweise schnellen Gang aus der Beta in v1.0.0 strebt Google fortan die Vision an den Markt zu erobern. Wie man der folgenden Grafik entnehmen kann, hat Flutter tatsächlich, im Gegensatz zu ein paar seiner größten Cross-Plattform Konkurrenten, innerhalb kürzester Zeit extrem an Popularität gewonnen.

Suchvolumen Flutter bei Google

Copyright: Google
https://trends.google.com/trends/explore?cat=31&date=2018-12-01%202021-04-27&q=React%20Native,Flutter,NativeScript,Xamarin

Was ist Flutter genau?

Bei Flutter handelt es sich um ein UI-Framework. „UI“ steht für User Interface, was so viel bedeutet wie die Oberfläche der App; also alles, was der Nutzer am Ende im Vordergrund, bzw. „Front-End“, sieht. Das beinhaltet beispielsweise jegliche Buttons, Textfelder, Bilder, etc. Flutter versucht, die Unterschiede zwischen den jeweiligen Plattformen zu abstrahieren und so eine uniforme Schnittstelle zu bieten, welche es dem Entwickler ermöglicht, eine einzige Codebasis für alle Plattformen zu benutzen. Das Rendering macht Flutter dann mit der beliebten 2D-Grafik-Bibliothek Skia, welche unter anderem auch in fast allen bekannten Browsern verwendet wird. Da es sich um ein Framework handelt, ist es keine eigene Programmiersprache. Flutter baut im Endeffekt auf der, ebenfalls von Google stammenden, Sprache Dart auf. Diese wurde ursprünglich dazu entwickelt, um die führende Programmiersprache im Web, JavaScript, abzulösen. Vom Aufbau, bzw. der Syntax her, ähnelt Dart den bekannten objektorientierten Sprachen wie Java oder C#.

Droht der nativen App Entwicklung das Aus?

Greift man diese Thematik auf, so spielt natürlich das Budget eine entscheidende Rolle. Eine Codebasis bedeutet eben oft nur einen Entwickler und insgesamt weniger Zeitaufwand für die Entwicklung einer App für mehrere Plattformen. Dagegen benötigt man für die native Android- und iOS-Entwicklung oftmals jeweils ein bis zwei App-Developer. Leider stellen sich der einfachen Cross-Plattform-Lösung noch verschiedene Punkte in den Weg:

Performance und Ressourcen

Verglichen mit einer nativen App kann Flutter in puncto Performance einfach noch nicht mithalten. Simple Interfaces sind gut und einfach umzusetzen, sobald jedoch aufwendigere Renderings durchgeführt werden, merkt man deutlich die Performanceeinbußen, welche mit Flutter in Kauf genommen werden müssen. Aus einem Test, durchgeführt vom YouTuber CodingWithMitch, in dem eine simple App zum Empfangen und Anzeigen von Daten geschrieben wurde, ging hervor, dass die Flutter App 500 MB Speicherplatz benötigte, während die native App für Android mit gerade mal mit 50 MB auskam. Problematisch wird es, wenn man diese Apps dann in den AppStore bringen möchte und die maximale Dateigröße der ausführbaren Datei damit überschreitet. Im folgenden Vergleich erkennt man deutlich, dass Flutter bei aufwendigeren Animationen oft wesentlich schlechter abschneidet, da die Hardware des Smartphones stärker belastet wird. So kommt es dazu, dass sich das Gerät schneller erhitzt und auch der Batterieverbrauch höher ist. Das bekommt der Benutzer schnell zu spüren.

iOS Benchmark

Copyright: Inveritasoft
https://inveritasoft.com/blog/flutter-vs-react-native-vs-native-deep-performance-comparison

Android Benchmark
Vergleich zwischen Flutter und nativer App Entwicklung

Copyright: nix Software Engineering
https://nix-united.com/blog/flutter-vs-react-native/

Betrachtet man rein die Performance, so lässt sich sagen, dass Flutter im Schnitt schlechter abschneidet als die native App-Entwicklung. Innerhalb des Flows kommt es immer wieder zu kleinen Rucklern und man merkt relativ schnell, dass Der App keine native Codebase zu Grunde liegt. Jedoch muss man dem vergleichsweise neuen UI-Framework lassen, dass es für simple UIs eine stabile Oberfläche durchaus bieten kann.

Communityabhängig

Ein großes Problem, welches Flutter außerdem mit sich bringt, ist, dass es komplett von der Community abhängig ist. Um beispielsweise auf native Features, wie die Kamera oder das Bluetooth-System zuzugreifen, braucht man zwangsweise ein Plug-In aus der Community, welches die App mit dem gewünschten Feature verbindet. Flutter kann dies von Haus aus nämlich nicht. Nun ist es nicht so, dass die Plug-ins nicht funktionieren; im Gegenteil, sie funktionieren aktuell sehr gut – es ist jedoch so, dass gelegentlich Updates für jeweilige Features seitens der nativen Apis kommen. Sollte dann die Community nicht mehr so groß sein, wie sie es aktuell ist, stellt das insbesondere vorhandene Apps, in Bezug auf Performance und Sicherheit, vor große Herausforderungen. Zwar lassen sich Plugins noch selbstständig anpassen, jedoch erhöht dies den Wartungsaufwand immens und der Vorteil von Flutter ist nicht mehr gegeben.

User-Verhalten

Betrachtet man das User-Verhalten auf verschiedenen Betriebssystemen, so fällt auf, dass sich gewisse Standards, wie die Navigation innerhalb der App, etabliert haben. Jeder, der schon mal von einem auf das andere Betriebssystem gewechselt hat, wird die Problematik kennen: es erfordert einige Zeit der Umgewöhnung, um routiniert mit dem allgemeinen Optik und dem Flow klarzukommen. Eine Cross-Plattform-Entwicklung würde bedeuten, dass man sich bei der Entwicklung auf einen Standard einigen muss und so einige User einbüßt, da sich das Verhalten der App so vom Rest unterscheidet, dass der Nutzer durch schlechte Erfahrungen am Ende dazu neigt die App zu deinstallieren. Dabei sollte das höchste Ziel jeder App-Entwicklung sein, optimal auf den User einzugehen und durch eine herausragende Simplifizierung des Nutzeralltags unterstützend zu fungieren.

Sinnvoller Einsatz von Flutter

Trotz der vielen Kritik hat auch Flutter seine Daseinsberechtigung. Insbesondere Apps, welche lediglich zum Anzeigen oder auch Verwalten von Daten eines externen Servers fungieren, sind mit Flutter gut umsetzbar. Möchte beispielsweise eine Universität ihren Studenten per App Zugriff auf Daten der Uni-Bibliothek geben, ist ein simples Login-Verfahren mit Flutter durchaus denkbar. Möchte man allerdings mit nativen Features arbeiten, macht es mehr Sinn sich auf die bewährte, native Entwicklung einzulassen.

Zusammenfassung

In Zukunft wird es wohl mehr und mehr zu einer Koexistenz zwischen Flutter und der nativen Entwicklung kommen. Mit Flutter kommt eine Möglichkeit, simple Apps, ohne aufwendigere Logik oder Animationen, schnell umzusetzen, ohne dabei auf verschiedene Codebases setzen zu müssen. Für kleinere Projekte ist diese Lösung sehr attraktiv. Ersetzen wird das Cross-Plattform-Framework die native App-Entwicklung allerdings vorerst nicht; dafür kann Flutter beim Punkt Performance nicht mithalten.

Categories:
  Allgemein, Android, Android, App, App Entwicklung, App Store, Entwicklung, ios, Ranking
this post was shared 0 times
 400

Leave a Reply

Your email address will not be published.

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