Netiquette Info Solutions Pvt. Ltd.
Das Ziel vieler Unternehmen ist es, sowohl für Android als auch für iOS eine Anwendung vorzulegen, was aber zweifellos einen hohen Aufwand in der Wartung einer Android- und einer iOS-App bedeutet. Daher gewinnt die plattformübergreifende Entwicklung immer mehr an Bedeutung.
Unter den Spitzenreitern sind Flutter von Google und Kotlin Multiplatform von JetBrains. Flutter ermöglicht die schnelle Entwicklung durch flexible, moderne UIs. Kotlin Multiplatform erlaubt es, Code auf der Ebene der Geschäftslogik, in Services oder im Umgang mit dem Netzwerk zwischen den Plattformen zu teilen, während die Benutzerschnittstelle jeweils nativ bleibt – für hohe Geschwindigkeit und für ein nahtloses Benutzererlebnis.
Doch wem gelingt die bessere Lösung? Bietet Flutter aufgrund der Rasanz im Programmieren und der optischen Stärke den größeren Vorteil, oder ist Kotlin Multiplatform aufgrund des Aufbaus, der hinsichtlich der Rechenleistung noch nativer wirkt, im Vorteil?
Performance, Benutzeroberfläche, Ökosystem und Anwendungsfälle: In diesem Blogpost vergleichen wir diese vier Punkte, damit Sie eine fundierte Basis für die Rückfrage haben und die geeignete Technologie für Ihr Unternehmen auswählen können.

Die Definitionen von Flutter und von der Kotlin Multiplatform folgend, setze ich mich mit ihren Prinzipien auseinander und bevorzuge die Debatte über Unterschiede aus Anwendung und Ziel.
Flutter ist ein Framework, das auf der von Google entwickelten Open-Source-Programmiersprache Dart basiert. Entwickler verwenden es zum Erzeugen von plattformübergreifendem Code sowohl für mobile als auch Desktop-Anwendungen. Mit Hilfe von Flutter können Entwickler Benutzerschnittstellen und Animationen beliebig erstellen.
Flutter ist ein aktuelles Framework, das Entwickler mit der von ihm entwickelten Engine Skia versieht, um von Anfang an alles zu zeichnen, damit die App, die auf ihr erstellt wird unabhängig vom Gerät, auf dem sie ausgeführt wird, gleich aussieht. Flutter stellt eine sehr angenehme Werkzeug zur Verfügung, das Apps mit hoher Schnelligkeit entwickeln kann, da es das Konzept von „Hot Reload“ verfolgt und auf eine breite Gemeinschaft angewiesen ist.
Kotlin Multiplatform nennt sich die Software Entwicklungskit (SDK), die von dem Unternehmen JetBrains entwickelt wurde, um in plattformübergreifendem Maße Code verwenden zu können. Das heißt, man schreibt mit Kotlin einmal die Geschäftslogik und bindet die dann ins Frontend-Design, das mit eben solchen eigenen nativen Tools für jede Plattform erstellt wird, ein was anderes ist, als das vom Programm für jedes Betriebssystem Sense, wie man weiß.
So wird ein wirklich natives Nutzungserlebnis geschaffen, während Sie den Vorteil einer schnelleren Entwicklung des Backend-Logik (tracken) erhalten. Obwohl Kotlin Multiplatform zweifelsohne sehr vorteilhaft ist, gibt es vor allen Dingen für Teams, die bereits Kotlin verwenden oder weiterhin die nativen Charaktere ihrer Anwendungen behalten möchten, keine Alternative.

Für die einheitliche Darstellung der Benutzeroberflächen auf allen Plattformen verwendet Dart / Flutter seine eigene Engine (Skia). Die Engine gibt Ihnen alle Freiheiten, hat aber zur Konsequenz, dass die Oberflächen mehr Ressourcen entziehen, als dies bei den native Ansätzen der Fall ist und folglich tiefer in den Speicher greifen. Kotlin Multiplatform erlaubt wiederum jeder Plattform vor Ort ihre eigene native UI zu benutzen und von Ihnen ist nur einmalig die gemeinsame Logik (wie Datenverwaltung oder APIs) zu schreiben, was Anwendungen hervorbringt, die für Benutzer konsistent und natürlich wirken.
Wenn sich Flutter in einer für Entwickler ungewohnten Programmiersprache, Dart, präsentiert, die in diesem Feld nicht so bekannt ist, kann Kotlin Multiplatform auf der existenten Grundlage, die bereits die Sprache Kotlin verängstigt, in neuen Android-Projekten verwandt werden. Bestehende Android-Teams können dies leicht überstellen; Entwickler von Flutter sollten hingegen bereit sein, am Anfang mehr Einarbeitung Arbeit zu bewältigen, bevor sie effizient produzieren können.
Google unterhält Flutter, während bei Kotlin Multiplatform JetBrains dahinter steht. Während bereits große kommerzielle Produkte wie Alibaba und eBay Flutter benutzen, gewinnt Kotlin Multiplatform an Sichtbarkeit und Beliebtheit: Netflix, Philips und VMware haben es genutzt, um sich einen Teil der Backend-Arbeit zu ersparen. Beide Frameworks stoßen also auf sicheren Beistand und legen eine längerer Haltbarkeit und Bedeutung nahe.

Daher prüfen wir die Startzeiten, den Speicherbedarf und die Gesamtleistung von Flutter und Kotlin Multiplatform.
Kotlin Multiplatform ist in diesem Punkt flinker. Der Grund dafür sind die Schnittstellen zu nativem Code. Dieser Aspekt zeigt sich insbesondere in den Startzeiten des jeweiligen Builds. So erlaubt Kotlin, dass sowohl die Systemkomponenten als auch die Benutzeroberfläche in nativem Code definiert werden können.
Dieses Vorgehen beschleunigt das Laden des Builds im Vergleich zu Flutter. Die Startzeit von Flutter ist dabei etwas länger, insbesondere bei älteren Geräten. Der Hintergrund ist die Tatsache, dass hier derzeit zusätzlich noch die Flutter-Engine geladen wird, um alles „zu zeichnen“.
Dabei wird Flutter unter der Haube durch Skia so gesteuert, dass es ungehinderten Zugriff auf die Darstellung jedes einzelnen Pixels auf dem Anzeigeschirm erhält, um benutzerdefinierte Animationen mit unmittelbarer Reaktionsfähigkeit abzuspielen. Dieser Vorgang ist durchaus ressourcenintensiv. Bei Kotlin Multiplattform-Apps hingegen nutzen wir die plattform-spezifischen Animations- und Rendering-Engines, damit sich Animationen für den Benutzer “richtig” anfühlen und einen “echten”, authentischen Look haben – aber mit sehr geringem Ressourcenverbrauch.
Flutters eigene Rendering-Engine reflektiert Traffic Erhöhte Anforderungen an CPU und Speicher als auf einer Plattform, basierten Kotlin Multiplattform Anwendungen, wie die sie permanent integrierten Systeme der Plattform und Logiken nutzen. Hierdurch wird in der Regel der Anwendung eine höhere Akkulaufzeit oder eine niedrigere Speichernutzung sowie Prozessorauslastung zu konsumieren.
Dank der nativen Natur werden in der KMP-App der Vorgang der Datentransformation und Geschäftslogik Vorgänge sehr schnell abgewickelt. Auch in Flutters Falle wird der Vorgang von der Datentransformation und Geschäftslogik in den nativen Code überführt, doch wird unter Umständen, eine geringfügige Verlangsamung der Vorgänge vorgenommenen Erstellung des Anwendungsfalles mit einer sehr hohen Komplexität oder Animation an berücksichtigten.
Bezüglich technischer Herausforderungen wie Real Zeitschriften, Datenverschlüsselungs-und Arbeiten mit Geräten Sensoren, zeigt sich, dass die Verwendung von Kotlin Multiplatform effektiver ist, weil die genannten Funktionen nativ in den Sprachelemente implementiert werden, während in Flutter (auf Grund der Notwendigkeit von Plugins usw.) auf eigene Implementierungen oder Plugins angewiesen wird, die den Code langsamer, ausschließlichen oder fehlerhafter machen können.
Wie schnell und gut eine Applikation bedient werden kann, entscheidet nicht zuletzt über ihren Erfolg. Die Benutzeroberfläche und die Entwicklertools sind dabei von entscheidender Bedeutung. Der folgende Abschnitt vergleicht die beiden Frameworks hinsichtlich der Gestaltung, der Tools und der Produktivität.
Flutter bietet mit seinem unbegrenzten Ausstattung an Widgets nahezu vollständige Kontrolle über das GUI, so dass man damit nahezu alles realisieren kann, ohne sich an irgendwelche Vorgaben für native Oberflächen halten zu müssen. Das eignet sich gut für unkonventionelle Designs oder starke Produktidentitäten. Kotlin/KMM dagegen setzt auf native UI-Builder wie SwiftUI oder Jetpack Compose.
Das garantiert auf der anderen Seite, dass das Nutzererlebnis auf jeder Plattform wieder einheitlich und vertraut bleibt. Der Preis dafür ist jedoch, dass man für jede Plattform nochmal den UI-Code schreiben muss.
Flutter ist schnell eingerichtet. Sie installieren das Flutter SDK, und schon kann es losgehen. Die gesamte Logik und das Benutzerinterface werden aus einer einzigen Quelle geliefert. Bei der Kotlin Multiplatform erfordert die Einrichtung dagegen etwas Vorarbeit: Gemeinsame Module und separater UI-Code für Android und iOS müssen bereitgestellt werden. Dafür erhält man hier jedoch unerreichte Einblicke in die Arbeitsergebnisse.
Insgesamt ist dies mit Flutter möglich, da bei jeder UI-Änderung ein Hot Reload erfolgt, wodurch die Änderungen sofort sichtbar werden. Dagegen verfügt Kotlin Multiplatform nicht über ein Hot Reload . Die App muss bei jeder Anpassung neu kompiliert werden, was besonders im Rahmen von Test und Debugging erhebliche Folgen haben kann.
Die IntelliJ IDEA ist für Kotlin Multiplatform besonders gut geeignet, und es handelt sich fast um eine Integration in Android Studio. Denn es ist wichtig zu erwähnen, dass das JetBrain-Team auch Kotlin entwickelt. Mit anderen Worten ist das Werkzeug für Entwicklerinnen und Entwickler, die das Software entwickeln, sehr solide und wird auch ständig aktualisiert.
Bereits während der Installation erhält man bei der Verwendung von Flutter integrierte Tools, sowohl für das standardmäßig verfügbare Performance-Layout-Debugging wie auch für reguläres Debugging – und überhaupt ist die Testinfrastruktur robust.
Selbst Java ist der Meinung, dass Kotlin Multiplatform bereits für das Teilen von Tests für gemeinsame Logik absolut taugt, abgesehen davon, dass man sich dieses bei oftmals erforderlichen UI-Tests auf jeder Plattform und den dafür sowie überhaupt unterschiedlichen Test-Setups eine komplexere Welt anlegen muss.
Um moderne Apps zu erstellen, ist plattformübergreifende Unterstützung unverzichtbar. Im nächsten Abschnitt wird die Frage bearbeitet, wie viel Code zwischen und in den verschiedenen Frameworks wiederverwendet werden kann.
Ein sehr hoher Grad an Code-Wiederverwendung kann mit Flutter erreicht werden, man entwickelt einmal und führt das so erstellte Projekt auf Android, iOS, Web und Desktop aus. Bei Kotlin Multiplattform ist es insbesondere die Geschäftslogik, die geteilt wird, beispielsweise Netzwerk Aufrufe oder die Datenmodell. Die Benutzeroberfläche bleibt jedoch plattformspezifisch, sodass man den geteilten Code nach Einschätzung der meisten Entwickler auf 60-70 % einrechnen muss.
Für Desktop und Web lässt sich sagen, dass Flutter eine sehr gute Unterstützung bietet. Surfen nach Windows und Linux sowie das Erstellen von progressive Web Apps verlaufen problemlos. Mit Kotlin Multiplatform gibt es ein weiteres Angebot für Web und Desktop, allerdings sind die Entwicklerwerkzeuge noch nicht ausgereift. An Schwachstellen mangelt es bei der Nutzererfahrung derzeit im mobilen Bereich im Vergleich auf Desktop-Systeme.
Eine Besonderheit bei Flutter ist die Unterscheidung von Aussehen und Verhalten der eigenen Anwendung auf den unterschiedlichen Plattformen. Dadurch ergibt sich eine konsistente Anwendung und eine schnelle Verarbeitung von Branding.
Bei Kotlin-Multiplattform-Apps lässt sich alles an das System anpassen. Android und iOS-Apps können also verschieden erscheinen, allerdings im Nutzen ein stetiger Eindruck vorhanden ist – eine Erwartung der Nutzer an eine mobile Anwendung.
Während die Plattform Kanäle von Flutter darauf abzielen, einen von der native Sprache unabhängigen Zugriff auf direkte Vorgänge der native Umgebung zu schaffen, erfordert das Hinüberreichen der Schwelle zu nativen Umgebungen oft eine gewisse Überwindung. An diese Stelle setzt Kotlins Multi Plattform-Konzept mit einem direkten, respektive nativen Zugriff an: Dies betrifft die direkte Ansprache von iOS- und Android-APIs sowie den Zugriff auf Peripheriefunktionen wie Kamera, GPS oder Sensoren.
Kotlin lässt die Strukturierung von Anwendungen mithilfe des Konzepts der Multiplattform-Programmierung als erheblich modularer erscheinen. Entscheidend dabei ist, daß es Arbeitsabläufe gibt, die die Realisierung des modularen Bezugspunktes zu gemeinsamem Code schrittweise umsetzen können, insbesondere im Kontext von großen Unternehmen Projekten eine Disziplin, welche ganzen Systemen auf diese Weise sich in ihrem Zusammenhang erschließt.
Projekte großer Flächen für Flutter dagegen, das heißt von App-Bestandteilen ganz neu angesetzt, ebenfalls auf diesem Wege separat gestaltet werden müssen.
Einen schnelleren Lösungsweg erlaubt ein unterstütztes Community und die Nutzung von mehr entwickelten Ressourcen. Darüber hinaus spiegelt sich eine schnelle Anlauf- und Unterstützung Zeit auch in der Nutzung von Community-Technologien wider. Hierbei werden nun die Technologien und die Community-Unterstützung gegenübergestellt.
Eine große Community und eine starke Aktivität zeigte Flutter und zwar aufgrund der starken Unterstützung durch Google und vielen anderen OSS-Entwicklern. Die Menge an Tutorials, Videos und Lösungen die sich zum Flutter auf dem Netz finden lässt, ist ein großer Pluspunkt. Bei Kotlin MP ist die Community relativ klein, wächst aber kontinuierlich und wird durch die viele Kotlin und Android-Entwickler getragen.
Flutter verfügt über eine großangelegte Zahl an sofort nutzbaren Plugins, so dass fast jede Anforderung abgedeckt wird (z.B. Maps, Zahlungen, Animationen). Für Kotlin Multiplatform ist die Anzahl an Plugins im Vergleich zu Flutter zwar begrenzt, jedoch können Entwickler damit direkt auf native APIs und vorhandene iOS- und Android-Bibliotheken zurückgreifen.
Es zeigt sich vor allem auf der Open-Source-Plattform GitHub, dass Flutter regelmäßig mit Updates, Bugfixes und neuen Features versorgt wird. Ähnliches vermag man für Kotlin Multiplatform zu konstatieren, allerdings insofern mit „regelmäßigen Updates” und „Troubleshooting-Contributions”, als bei Kotlin Multiplatform momentan ältere Anbieter (allen voran JetBrains) erst jetzt damit beginnen dürften, von der Open-Source-Euphorie der Entwickler mehr und mehr zu profitieren.
Für Flutter sicherlich ein Marketing Argument von hohen Kalibern, das Punkt für Punkt abgearbeitet werden kann: Es gibt viel Lernstoff, offizielle Dokumentation, YouTube-Videos, Blogs, Online-Plattformen, also wird man effektiv motivierten Entwicklern auch leicht Inhalt servieren können. In Sachen Kotlin Multiplatform stiehlt Flutter dem Mitbewerber in diesem Punkt also den einen oder anderen Schritt, auch wenn man mittlerweile auch hier angekommen ist. JetBrains (und die Android-Community mit ihr) haben den Stein schließlich ins Rollen gebracht.
Flutter ist die erste Wahl von führenden Unternehmen wie Google Ads, eBay und Alibaba, während Netflix, VMware und Philips lieber auf die Kotlin Multiplatform setzen. Mithilfe dieser beiden Frameworks sind die Unternehmen in der Lage, nicht nur die Entwicklungsgeschwindigkeit zu erhöhen, sondern auch fast schon auf nativer Ebene tiefgreifend zu punkten. Der vertraute Name der beiden Frameworks wird durch die bestätigten Namen gestärkt.
Sie haben immer noch keine klare Präferenz für ein Framework? Dann schauen wir uns doch einmal konkret an, welches Framework unter welchen Voraussetzungen (Startup vs. Unternehmen vs. Kundenprojekt) sinnvoll ist. Anhand von Fakten und echtem Output sollten wir klare Entscheidungen treffen.
Sie starten ein brandneues App-Projekt und möchten möglichst schnell Ergebnisse sehen? Da kann Flutter Ihre nächste Option sein. Mit nur einer Codebasis erhalten Sie eine App, die im Google Play Store und im App Store landet. Vor allem bei innovativen oder ästhetisch anspruchsvollen Apps mit vielen Animationen kann man mit Flutter glänzen.
Befinden sich native Android- oder iOS-Anwendungen bereits im Einsatz und ist die Frage nach dem “Wie könnte man den Entwicklungsaufwand für die Zukunft minimieren?” aktuell? Vielleicht sollten Sie dann über Kotlin Multiplatform nachdenken. Nutzen Sie die Möglichkeit, Teile des Codes wie beispielweise Netzwerk-Zugriffe oder Geschäftslogik in ein gemeinsames Modul herauszuziehen, ohne die Benutzeroberfläche zu beeinflussen.
Insbesondere für Start-up-Unternehmen scheint die Verwendung von Flutter eine hervorragende Option zu sein. Start-up-Unternehmen arbeiten in der Regel mit einer geringen Anzahl von Angestellten unter enormem Zeitdruck. Die Entwicklung kann schnell erfolgen, die Pflege des Programms ist einfach, und die aufwendige Aneignung von Wissen hinsichtlich unterschiedlicher Betriebssysteme ist nicht erforderlich. Ein App kann von einem einzigen Entwickler sowohl für Android als auch für iOS entwickelt werden.
Kotlin Multiplatform ist am besten geeignet, um auf die hohen Nutzererwartungen großer Unternehmen mit komplexen UI-Anforderungen oder plattformspezifischen Ansprüchen einzugehen. Es sichert eine verbesserte Performance, eine vorteilhafte Architektur und dadurch mehr Kontrolle über die Anwendung. Durch Kotlin Multiplatform profitiert man von der nativen Umsetzung der UI und der Nutzererfahrung; der Entwickler kann so die Logik für beide Kanäle teilen.
Für moderne App-Entwickler ist die Wahl zwischen den beiden Plattformen keine einfache, da beide ihre eigenen Vor- und Nachteile haben. Bei Flutter punktet vor allem die extreme Wiederverwendbarkeit der Codebasis, das schnelle Starten der UI und das kräfteschonende Arbeiten in kleinen Teams. Kotlin Multiplatform ist besser für langfristige Projekte, native Performance, große Unternehmensanwendungen und komplexe UI-Anforderungen oder plattformspezifische Ansprüche geeignet.
In Wirklichkeit hängt die Entscheidung, für welche Technologie man sich entscheiden sollte, maßgeblich von den eigenen Zielen ab. Wenn Sie möglichst schnell eine Anwendung entwickeln wollen, die sich durch ein hervorragendes Benutzererlebnis auszeichnet und vollständig Cross-Platform-kompatibel ist, dann ist Flutter genau das Richtige für Sie.
Wenn Sie jedoch Wert darauf legen, tatsächlich den Code zu teilen, bei gleichzeitiger Beibehaltung der nativen Geschwindigkeit und nativen Verhaltens-Charakteristika, dann wäre Kotlin Multiplatform die bessere Wahl.
Falls Sie darüber hinaus Beratung bei der Auswahl des für Sie geeigneten Frameworks benötigen – oder Sie sich einfach nur Unterstützung bei der Entwicklung Ihrer Anwendung wünschen, dann kontaktieren Sie uns gerne NetiquetteInfo Solution, einen vertrauenswürdigen Digital Solutions Partner: Wir begleiten Sie auf Ihrem Weg!