Native App Entwicklung vs. Flutter vs. Cross Platform

16. März 2020

Wenn es um die Entwicklung mobiler Applikationen, etwa für Smartphones oder Tablets, geht, gibt es verschieden Lösungsmöglichkeiten um sein Ziel, eine funktionstüchtige und performante App, welche im App Store veröffentlicht werden kann, zu erreichen. Zum einen wäre dies die Entwicklung, so wie von Apple bzw. Google empfohlen, mit nativen Programmiersprachen, Frameworks und Tools. Dies bedeutet unter iOS die Entwicklung mittels der Programmiersprache Swift und unter Android die Programmierung mittels Kotlin vorzunehmen. Zum anderen gab bzw. gibt es in der Geschichte der mobilen Anwendungsentwicklung, immer wieder Ansätze, um auf andere Technologien bzw. Programmiersprache auszuweichen. Nicht zuletzt vor dem Hintergrund eine Applikation nicht für jedes der beiden Betriebssystem extra entwickeln zu müssen, sondern besten falls nur einmal und das Resultat für beide Plattformen verwenden zu können (code once, deploy twice). Die Rede ist von plattformübergreifender Entwicklung (engl. cross platform).

Der Markt dafür ist groß, so auch die Vielfalt der verfügbaren Tools. Neben altbekannten und etablierten Frameworks wie PhoneGap (Adobe), Xamarin (Microsoft) oder React Native (Facebook), kündigte Google im May 2017 deren Beitrag zur plattformübergreifenden Entwicklung an genannt „Flutter“. Im Dezember 2018 hat Flutter das Beta-Stadium verlassen und soll nun, wenns nach Google geht, weite Verbreitung finden.

Flutter ist auf dem neuesten Stand was plattformübergreifenden Entwicklung betrifft und verdient besondere Aufmerksamkeit. Es kommt dem Versprechen „code once, deploy twice“ besonders nahe, weil die nativen Plattformen einfach umgangen werden. Flutter funktioniert so, dass Dart-Quellcode zu nativem Code kompiliert wird, der dann aber auf der „Dart virtual machine“ ausgeführt wird. Man kann dies mit Xamarin vergleichen, das nativen Code direkt auf der Smartphone-Hardware ausführt, oder mit React Native, das interpretierten JavaScript-Code in einer nativen App ausführt.

Ein besonders interessantes Feature von Flutter nennt sich „Hot Reload“. Mit Hot Reload können Änderungen am Quellcode zur Laufzeit direkt eingefügt und ausgeführt werden. Es ist so, als würde man eine Webseite neu laden, ohne die gesamte App neu kompilieren zu müssen. Hot Reload behält auch den Status der App bei, sodass man gleichzeitig coden und mit der App interagieren kann.

Ähnlich zu anderen Tools, bietet Flutter eine gemeinsam genutzte Code-Basis für plattformspezifische Funktionen wie das UI-Design für Android und Apple, sowie die Option zum Erstellen plattformspezifischer Plugins. Plattformspezifische APIs und SDKs können nativ verwendet werden.

Das horcht sich alles äußerst vielversprechend an, doch wie sieht die Performace solcher Apps bei der Nutzung am Smartphone des User aus? Diese Frage hat sich inVerita gestellt und Flutter, im Vergleich zu nativer Entwicklung und React Native, auf die Probe gestellt. Das überraschende Resultat, samt einiger nicht unwesentlicher Details, kann aus dem zugehörigen Medium Artikel entnommen werden.

Wir bei Mopius setzen seit eh und je auf zukunftssichere, leistungsstarke und nachhaltige native Entwicklung, eben so wie von Apple und Google empfohlen. Wir bleiben aber hinsichtlich plattformübergreifender Entwicklung trotzdem stets am Ball und werden daher auch Flutter ganz genau unter die Lupe nehmen und uns ein persönliches Bild davon machen.

Aufschlussreicher Medium Artikel mit klarer Leseempfehlung
Jetzt lesen