Vorteile einer Cross-Platform-Umsetzung
Relativ neu ist die Idee, die mobile App nicht nur über iOS und Android zu abstrahieren, sondern quasi als zusätzliche Rendering-Ausgabe auch Desktop- und Webanwendungen als Ziel möglich zu machen.
Bei Flutter ist dies schon seit einiger Zeit möglich. Man kann mit dem Quell-Code der mobilen App nicht nur Android und iOS bedienen, sondern auch direkt eine Windows-Desktop-App, eine Mac-Desktop-App und eine Webanwendung deployen.
Auch Xamarin von Microsoft ist mit der neuen Version .Net MAUI (MAUI = Multi-platform Application UI) auf diesem Weg. Auch dort soll es bis Ende des ersten Quartals 2022 möglich sein, mobile Apps, Desktop- und Webanwendungen auf der gleichen Codebasis zu erstellen. Schon jetzt kann man auf Basis von .Net 6 und der Preview Version von Visualstudio 2022 einen ersten Eindruck davon bekommen.
Der Einsparfaktor wird durch diese zusätzlichen Ausgabeziele natürlich noch eklatanter. Müsste man diese Anwendungen alle mit separaten Technologien und Teams umsetzen, hätte man einiges zu tun.
Machen wir uns nichts vor: In Teilen ist dies ein Kompromiss und Hardcore-Webentwickler und Desktop-Entwickler merken natürlich zu Recht an, dass nicht alles so umsetzbar ist. Doch kommt man mit der Zeit immer dichter an Lösungen, die vom Kunden gewünscht sind.
Aber schon alleine im Mobile-App-Umfeld sind die Grenzen zwischen einer nativen App und einer App auf Basis von Flutter oder Xamarin (oder anderen Cross-Platform-Tools) teilweise nur noch von Experten zu erkennen (wie oben beschrieben ist diese natürlich auch nativ).
Was sind die Unterschiede zwischen Xamarin und Flutter?
Xamarin und Flutter gehören zum gleichen Team, sind aber sehr unterschiedliche Spieler. Diese Unterschiede sind wesentlich erheblicher, als auf den ersten Blick zu sehen ist.
Wie schon erwähnt, setzt Xamarin auf das Binden von nativen Controls und eine Abstraktion. Auf UI-Ebene ist dies besonders deutlich. Die Controls sind vereinheitlicht nutzbar und getrennt vom Business Logic Code.
In Flutter hingegen ist alles ein Widget und es gibt keine Trennung von Oberfläche und Programmlogik. Es werden nicht die nativen Controls der Plattform verwendet, sie werden mit der 2D Grafikbibliothek Skia gezeichnet. Dadurch sehen grundsätzlich die Apps auf Android und iOS gleich aus und lassen sich auch identisch bedienen. Der Vorteil dabei ist, dass zum Beispiel auch auf älteren Android Geräten die App schnell läuft und vor allem genauso gut aussieht.
Der Nachteil für Entwickler, die eine sauberer Trennung zwischen Oberfläche und Programmlogik gewohnt sind: Das Vermischen dieser Bereiche wirkt erst einmal verwirrend und eventuell abschreckend. Natürlich ist dies durch einen sauberen Projektaufbau in den Griff zu bekommen, aber es erfordert eine gewisse Disziplin und Erfahrung.
Insgesamt ist die Situation für App-Entwickler positiv: Noch nie gab es so viele verschiedene Möglichkeiten ein Mobile-App-Projekt umzusetzen. Natürlich kann man nicht beliebig zwischen den Welten wechseln. Aber den Wünschen der Kunden oder der eigenen App-Idee folgend kann man sich für den nativen Ansatz entscheiden oder eine der vielen mittlerweile guten Cross-Platform-Lösungen verwenden.
Marco Seraphin ist seit knapp 20 Jahren als freiberuflicher Entwickler und Trainer tätig. Seit 2013 entwickelt er mobile Apps.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Cross-Platform Lösungen sind alle nicht nativ, oder? |
Ja, das ist in der Tat ein strittiger Punkt, man kann hier nicht pauschal mit einem...
Das ist ein sehr interessanter Artikel
"Develop once , deploy anywhere' wurde inzwischen wie oft versprochen? Hat es (ehrlich...
Bei den guten CrossPlatform Apps die Du suchst, erkennst Du es eben nicht leicht oder...