florian_trautmann_geschaeftsfuehrer_it_intouch
Kontakt aufnehmen:
Flutter vs. Xamarin/.Net MAUI

Flutter vs. Xamarin/.Net MAUI - Ein Vergleich der Entwicklungsframeworks

Flutter vs. Xamarin/.Net MAUI

In diesem Blogbeitrag möchten wir die Unterschiede zwischen den Entwicklungsframeworks Flutter (von Google) und Xamarin (von Microsoft) gegenüberstellen, um allen Interessenten die Entscheidung für das nächste Entwicklungsprojekt zu vereinfachen. Flutter und Xamarin sind beides plattformübergreifende Entwicklungsframeworks für mobile Anwendungen.

Die beiden größten Unterschiede zwischen Xamarin und Flutter sind die verwendeten Sprachen und die Art, wie die Benutzeroberfläche gerendert wird. In Xamarin wird die Benutzeroberfläche mithilfe von XAML und C# implementiert. In Flutter werden sowohl die Logik als auch die gesamte Benutzeroberfläche mit der modernen Programmiersprache Dart umgesetzt. Ebenso werden Grafiken und Animationen in Flutter von der Skia-Rendering-Engine in Echtzeit auf den Bildschirm gezeichnet. Die Xamarin-Technologie ist hingegen langsamer, da sie die nativen Steuerelemente erst übersetzen muss. Neben einer veralteten Programmiersprache hat Xamarin zwei weitere Nachteile gegenüber Flutter.

1. Benutzeroberfläche

Bei Xamarin sorgt eine einzelne freigegebene Codebasis nicht dafür, dass die Benutzeroberfläche auf verschiedenen Plattformen gleich aussieht. Der einfache Grund dafür ist, dass Xamarin das geschriebene XAML einer plattformspezifischen Implementierung zuordnet. Bei einfachen UI-Elementen funktionieren diese Steuerelemente meistens ohne Probleme. Möchte man komplexere Elemente hinzufügen (z. B. Farbverläufe, Animationen, Schatten, Rahmen usw.), müssen benutzerdefinierte Steuerelemente implementiert werden.

2. „Renderer“-Problematik

Wenn Xamarin-Anwendungen in einem individuellen Design erstellt werden sollen, muss dafür ein „benutzerdefinierter Renderer“ geschrieben werden. Abgesehen von der Tatsache, dass das Schreiben von plattformspezifischem Code in einer plattformübergreifenden Anwendung in erster Linie den Zweck einer plattformübergreifenden Lösung zunichtemacht, ist es zudem sehr aufwendig diese Renderer zu schreiben. Darüber hinaus kann ein benutzerdefinierter Renderer nicht in der Muttersprache Swift oder Kotlin geschrieben werden, sondern muss in C# erstellt werden.

 Neben diesen Nachteilen, die die Entwicklung von Xamarin mit sich bringt, sprechen auch folgende Punkte für eine App Entwicklung mit Flutter:

3. Kosten

Die Entwicklung mit Xamarin ist teurer als mit Flutter. Der Grund dafür, dass Xamarin teuer ist, liegt zum Einen in den Lizenzkosten der Microsoft Visual Studio IDE. Zum Anderen an dem besseren „Code-Sharing“ von Flutter über die verschiedenen Betriebssysteme hinweg. Dies spart Aufwände besonders bei der individuellen App Entwicklung, was die Gesamtkosten eines Projekts entsprechend schlank hält im Gegensatz zu Xamarin-Projekten. Flutter ist somit die beste verfügbare Option, wenn das Budget des Projekts verhältnismäßig niedrig ist. Die Projektkosten lassen sich generell senken, wenn für ein Projekt passende Fördermaßnahmen genutzt werden. Um das richtige Förderprogramm für ein App-Projekt zu finden, haben wir ein Whitepaper veröffentlicht, das alle möglichen Fördermaßnahmen verständlich erklärt.

Zum Whitepaper

Falls Sie einen Blogbeitrag bevorzugen haben wir alternativ auch einen ausführlichen Blogbeitrag zum Thema Förderprogramme für Digitalisierung erstellt, der weitere Informationen zu möglichen Förderprogrammen beinhaltet. 

4. Popularität

Fast eine halbe Million Apps verwenden Flutter! Flutter wurde in kürzester Zeit zum beliebtesten plattformübergreifenden UI-Toolkit, was auch die Analyse-Daten von statista belegen:

Entwicklung der Nutzung von Flutter und anderen Entwicklungsframeworks

Xamarin verliert hingegen mit jedem Jahr Marktanteile, nicht nur im Vergleich zu Flutter sondern auch anderen Frameworks wie z.B. React Native. Dies ist jedoch auch damit zu begründen, dass Xamarin nicht mehr besonders intensiv von Microsoft supported wird und seinen Fokus auf den Xamarin-Nachfolger .Net MAUI legt. Ein Wechsel auf .Net MAUI ist theoretisch möglich, jedoch befindet sich .Net MAUI noch in der Entwicklungsphase, sodass nicht alle Features zur Verfügung stehen. In dieser frühen Phase muss mit vielen Kinderkrankheiten gerechnet werden, was zu unnötig mehr Aufwand in neuen Entwicklungsprojekten führen könnte.

5. Ein Code für alle Plattformen

Einer der größten Vorteile von Flutter ist, dass der Code fast vollständig auf allen Plattformen genutzt werden kann, was Zeit und Mühe für einen Entwickler spart. Bei Xamarin besteht hier die Herausforderung, dass nicht immer ein Code für alle Plattformen genutzt werden kann und es nicht selten vorkommt, dass individuelle Anpassungen pro Plattform mit verschiedenen Programmiersprachen durchgeführt werden müssen, damit Applikationen richtig funktionieren.

Fazit

Flutter hat besonders in den letzten Jahren Xamarin ganz klar den Rang als populärstes Entwicklungsframework abgelaufen. Zwar bieten Xamarin und .Net MAUI durchaus auch noch Vorteile gegenüber Flutter, wie z.B. eine bessere Dokumentation oder auch teilweise bessere Entwicklungstools. Dennoch überwiegen die Vorteile von Flutter wenn man eine App programmieren lassen möchte. Deshalb sind auch wir von der Entwicklung mit Xamarin nicht auf .Net MAUI sondern auf Flutter gewechselt. In unserem neuen Blogbeitrag dieser Reihe: Flutter vs. React Native  – Gemeinsamkeiten und Unterschiede der Entwicklungsframeworks finden Sie weitere hilfreiche Informationen zum Thema. 

Weitere Artikel aus unserem Magazin

App programmieren lassen - Alle Infos für Ihr App-Projekt

Auf dieser Seite möchten wir Ihnen neben hilfreichen Tipps auch alle Informationen zu Kosten, Dauer und möglichen Förderungen geben, wenn Sie eine App programmieren lassen möchten.

Flutter Agentur Auswahlkriterien - Warum Sie eine App mit Flutter entwickeln lassen sollten

Hier sind wesentliche Auswahlkriterien, die Ihnen helfen, die optimale Flutter Agentur für Ihre Anforderungen zu finden.

React Native vs Flutter: Unterschiede & Gemeinsamkeiten im Vergleich

In diesem Blogbeitrag möchten wir die Unterschiede zwischen den Entwicklungsframeworks React Native (von meta/Facebook) und Flutter (von Google) gegenüberstellen.