Xamarin vs. Flutter: Welches Framework ist besser für die Entwicklung mobiler Apps?

Veröffentlicht: 2022-11-09

Stellen Sie sich vor, Sie möchten eine perfekte mobile Anwendung erstellen. Sie haben bereits eine Geschäftsstrategie entwickelt, Ihre Ziele festgelegt, eine Wettbewerbsanalyse durchgeführt und ein Budget geschätzt. Verstehen Sie mich nicht falsch: Sie haben einen gigantischen Job gemacht und den Weg von der allgemeinen Idee in Ihrem Kopf bis zur Veröffentlichung einer voll funktionsfähigen mobilen Anwendung erheblich verkürzt. Ich muss jedoch ehrlich sein: Dies ist nicht das Ende schwieriger Entscheidungen.

Eine der kritischsten Entscheidungen im Zusammenhang mit der Entwicklung mobiler Anwendungen ist die Wahl zwischen nativen und plattformübergreifenden Ansätzen. In unserem anderen Artikel können Sie mehr über die Unterschiede zwischen nativer und plattformübergreifender Entwicklung lesen. Heute werden wir versuchen, eine noch detailliertere Frage zu beantworten: Welches Framework, Xamarin vs. Flutter , ermöglicht es Ihnen, in vollem Umfang von der plattformübergreifenden Entwicklung mobiler Apps zu profitieren?

Flutter vs. Xamarin vs. React Native: Wählen Sie die besten Tools zum Erstellen einer nativen mobilen App

Haben Sie unseren Artikel über native und plattformübergreifende Frameworks gelesen oder sich mit anderen ähnlichen Vergleichen vertraut gemacht? Wenn Sie etwas recherchieren, werden Sie sicher zumindest in Betracht ziehen, einen plattformübergreifenden Ansatz für Ihr nächstes mobiles Anwendungsprojekt zu wählen. Plattformübergreifende Technologie ist schneller, billiger, ermöglicht eine hervorragende Flexibilität und bietet ein authentisches natives Erlebnis zu einem Bruchteil der Kosten.

Denken Sie jedoch daran, dass Sie sich auch dann noch zwischen verschiedenen Frameworks und Tools entscheiden müssen, wenn Sie sich für Cross-Plattform entscheiden. Derzeit sind die beliebtesten Lösungen auf dem Markt: Flutter und React Native, Xamarin, PWA, Cordova und Ionic. Dieser mehrstufige Entscheidungsprozess mag kompliziert klingen, also lassen Sie mich ihn bitte vereinfachen. Ich habe bereits zwei Artikel über native vs. plattformübergreifende und Flutter vs. React Native-Ansätze erwähnt. Heute ist es Zeit für das Aufeinandertreffen der nächsten beiden Schlüsselspieler: Flutter vs Xamarin .

Große Entscheidungen vor Ihnen? Sie sind nur einen Schritt davon entfernt, technologische Informationen in einer zugänglichen, geschäftlichen Form zu erhalten. Abonnieren Sie unseren Newsletter und erhalten Sie einmal im Monat Ihren Wissensschub!

In diesem Artikel werde ich mir zwei von Google und Microsoft entwickelte Open-Source-Plattformen genau ansehen. Ich werde Flutter und Xamarin hinsichtlich technischer und geschäftlicher Aspekte vergleichen und das beste Tool zum Erstellen eigener mobiler Android- und iOS-Anwendungen empfehlen. Lass uns anfangen!

Xamarin: allgemeine Informationen

Xamarin ist ein Open-Source-Framework, das seit 2016 regelmäßig verwendet wird, als Microsoft es in seine Visual Studio IDE integrierte. Seitdem wurde es zusammen mit den anderen Entwicklungstools von Microsoft entwickelt.

Mit Xamarin können Entwickler C#-Code für Android, iOS, macOS und Windows (UWP) erstellen und gleichzeitig mobile und Desktop-Anwendungen entwickeln. Und da Microsoft erklärt, die plattformübergreifende Entwicklung ernst zu nehmen, sollten wir in der Lage sein, die Xamarin-App überall dort auszuführen, wo die .NET-Umgebung installiert ist (womit wir auf Linux OS verweisen).

Xamarin-Architektur

Xamarin ermöglicht die gemeinsame Nutzung von Benutzeroberflächencode (geschrieben in XAML) oder Geschäftslogik (geschrieben in C#) zwischen Zielplattformen wie Android oder iOS. Bitte werfen Sie einen Blick auf die allgemeine Übersicht der Xamarin-Architektur unten:

Erläuterung der Xamarin-Architektur
Quelle: Wo ist Xamarin? von Learn Microsoft

Nicht sicher, was das obige Diagramm bedeutet? Lassen Sie es mich auf zwei Arten erklären – technologisch und geschäftlich.

Nach einem technischen Deep-Dive für bestimmte Plattformen werden wir sehen, dass die Kompilierung für Android mit Xamarin.Android erfolgt, das von C# in Intermediate Language (IL) kompiliert – und dann Just-in-Time (JIT) zu einer nativen Assembly kompiliert wird, wenn die Anwendung startet. Wohingegen Xamarin.iOS-Anwendungen vollständig Ahead-of-Time (AOT) sind, kompiliert von C# in nativen ARM-Assembly-Code.

Was bedeutet das aus betriebswirtschaftlicher Sicht? Microsoft erklärt, dass 80 % des Xamarin-Quellcodes über die native API geteilt werden können, die Entwicklern den Zugriff auf Funktionen wie Sensor, Geolokalisierung, Kamera oder sicheren Speicherzugriff und andere Funktionen ermöglicht, die Ihre App möglicherweise benötigt. Mit anderen Worten, die gemeinsam genutzte Codebasis in Xamarin ermöglicht die schnelle Entwicklung mobiler Anwendungen mit allen erforderlichen Funktionen.

Xamarin ermöglicht das plattformübergreifende Teilen von App-Logik.

Flutter: ein revolutionäres Open-Source-SDK von Google

Ähnlich wie Xamarin ist Flutter ein plattformübergreifendes Framework , das von einem Branchenriesen entwickelt wurde. Die erste stabile Veröffentlichung des Open-Source-Frameworks durch Google fand im Dezember 2018 statt. Seitdem wird Flutter vom Google Developers Team, Softwareentwicklungsexperten und der wachsenden Community, die sich um dieses Tool versammelt hat, aktiv entwickelt und gepflegt.

Die Geschichte der Flutter-Entwicklung

Flutter-Entwickler schreiben Code mit der Dart-Sprache. Die plattformübergreifenden Flutter-Anwendungen können in kurzer Zeit für mehrere Plattformen veröffentlicht werden, darunter Android, iOS, Web und (neu) alle Desktop-Systeme wie macOS, Windows und Linux. Scheint es viel zu sein? Nun, die Liste der von Flutter freigeschalteten Möglichkeiten endet hier nicht!

Erstens ermöglicht Flutter das Ausführen von Code auf eingebetteten Systemen wie Haushaltsgeräten oder Autos. Zweitens wird Google bald ein neues Betriebssystem, FuchsiaOS, veröffentlichen. Es ist keine Überraschung, dass Dart und Flutter die primären Entwicklungstools für dieses Betriebssystem sein werden.

Erfahren Sie als Erster von den einflussreichsten technischen Updates.

Melden Sie sich für unseren Newsletter an

Flutter-Architektur erklärt

Flutter ist ein erweiterbares Schichtsystem, das aus unabhängigen Bibliotheken besteht, die von der zugrunde liegenden Schicht abhängen. Keine Schicht hat privilegierten Zugriff auf die darunter liegende Schicht; Jeder Teil der Rahmenebene ist optional und austauschbar. Was bedeutet das aus betriebswirtschaftlicher Sicht? Wie trägt die Flutter-Architektur zur hohen Leistung dieses Frameworks bei?

Überblick über die Flutter-Architektur
Quelle: Flutter-Architekturübersicht von Flutter

Während der Entwicklung verwendet Flutter eine virtuelle Maschine (mit JIT-Ausführung), um seinen Code auszuführen, sodass Entwickler spontane Änderungen am Quellcode ohne vollständige Neukompilierung vornehmen können. Dieses berühmte Flutter-Feature ist Hot Reload – worüber wir in unserem nächsten Flutter-Artikel mehr schreiben werden. Die andere bemerkenswerte Flutter-Funktion ist die Leistungsansicht, die Live-Timing- und Leistungsinformationen für Aktivitäten in Ihrer Anwendung bereitstellt.

Der oben erwähnte Mechanismus unterscheidet sich vom Freigabemodus (AKA, wenn Ihre App für Benutzer von App-Stores verfügbar wird). Die virtuelle Maschine ermöglicht die Überwachung des Arbeitsfortschritts an der Anwendung und erleichtert es sicherzustellen, dass das Endergebnis auf allen Plattformen einwandfrei funktioniert.

Was passiert als nächstes? Um die endgültige marktreife App zu veröffentlichen, verwendet das Entwicklungsteam einen Ahead-of-Time (AOT)-Compiler, um den Code in JavaScript (für das Web) oder ARM/x64 (für andere Plattformen) zu konvertieren.

Überblick über die Dart-Programmiersprache.
Quelle: Dart-Programmiersprachenübersicht von Dart – Bild angepasst von Miquido

Flutter vs. Xamarin: SWOT-Analyse

Geschäftsentscheidungen, insbesondere in Bezug auf die Wahl der Technologie oder der Tools, die für die Entwicklung Ihrer Anwendung erforderlich sind, sollten niemals spontan sein oder auf selektiven Argumenten beruhen. Sowohl Xamarin als auch Flutter haben Stärken und Schwächen – daher ist es wichtig, jedes dieser Tools so gut wie möglich kennenzulernen und zu verstehen.

Die SWOT-Analyse ist eines der grundlegendsten, aber auch transparenten und fairen Werkzeuge, die strategische Geschäftsentscheidungen erleichtern. Sind Sie neugierig auf das Ergebnis meiner SWOT-Bewertung von Flutter vs. Xamarin? Weiter lesen!

Xamarin: Stärken, Schwächen, Chancen, Bedrohungen

Um Xamarin und Flutter zu vergleichen, beginnen wir mit einer SWOT-Analyse jedes Tools separat. Beginnen wir mit den Stärken, Schwächen, Chancen und Risiken von Xamarin.

Xamarin-Stärken:

  • C# ist eine der weltweit beliebtesten Entwicklungssprachen, daher werden Sie höchstwahrscheinlich leicht C#-Entwickler finden, die bereit sind, eine mobile Xamarin-App zu erstellen.
  • Xamarin ist ein ausgereiftes Framework ohne allgemeine Probleme mit dem frühen Reifezustand.
  • Mobile Xamarin-Anwendungen stimmen mit einem einzigen Tech-Stack aus Produkten der Microsoft-Familie überein: ASP.NET, .NET Core und Azure.
  • Bei der Arbeit an einer Xamarin-basierten App arbeiten Ihre Entwickler mit einer der ausgeklügeltsten und fortschrittlichsten IDEs der Welt – Visual Studio IDE.

Xamarin-Schwächen:

  • Im Vergleich zu Flutter entwickelt sich Xamarin recht langsam. Die beliebteste Flutter-Funktionalität, ein Hot Reload/Hot Restart, wurde zwei Jahre später in Xamarin eingeführt und war immer noch nicht so effizient wie Flutters Flaggschiff-Funktion.
  • Xamarin bietet keine einfache Entwicklung für Animationen und ansprechende Effekte oder Komponenten. Xamarin wurde explizit für Geschäftsanwendungen wie Zeiterfassungstools, Berichtssysteme, Finanzen oder CRMs (Customer Relationship Management Tools) entwickelt.
  • Die App-Größe im Freigabemodus ist für den Endbenutzer beträchtlich groß.
  • Obwohl Xamarin für die kommerzielle Nutzung kostenlos ist, sind die kommerziellen Lizenzen für Visual Studio teuer. Das kostenlose und leichtgewichtige Visual Studio Code bietet nicht alle erforderlichen Tools.
  • Xamarin ist extrem schwierig mit nativem Code zu verbinden und nahezu unmöglich in vorhandene Apps einzubinden.
  • Xamarin fehlt eine reibungslose UI-Leistung.

Xamarin-Möglichkeiten:

  • Xamarin ist möglicherweise eine gute Wahl für Unternehmen, die an großen Programmen arbeiten, die möglicherweise mobile App-Clients benötigen. Große Unternehmen haben bereits viele .NET-Entwickler, die möglicherweise eher bereit sind, Xamarin als Flutter zu verwenden.

Xamarin-Bedrohungen:

  • Angesichts der langsamen Entwicklung von Xamarin, das derzeit seine Marktposition an React Native oder Flutter verliert, besteht die Gefahr, dass das Projekt verworfen wird – und beispielsweise durch .NET MAUI (Multiplatform App UI) oder Blazor ersetzt wird. Als Teil von Xamarin war Xamarin.Forms bereits in MAUI integriert.
  • Xamarin passt neue Android- und iOS-Funktionen mit erheblicher Verzögerung an.
  • Es gibt einige Open-Source-Xamarin-Bibliotheken, die zu Codierungsproblemumgehungen oder nativer Codierung in der Sprache einer bestimmten Plattform führen können. Dies wirkt sich zweifellos auf die Effizienz der Entwicklung Ihrer Anwendung aus.

Flutter Stärken, Schwächen, Chancen, Bedrohungen

Flatterstärken:

  • Flutter ist ein gut dokumentiertes Framework mit vielen Anwendungsfällen, Kochbüchern und Beispielen. Jeden Tag wächst eine blühende Flutter-Community!
  • Einer der wichtigsten Vorzüge von Flutter ist seine zugängliche Lernkurve und niedrige Einstiegsschwelle. Entwickler können ihr Wissen mit unzähligen Tutorials und Kursen ständig erweitern.
  • Wenn Sie an Flutter arbeiten, können Sie mit häufigen SDK-Updates mit Bibliotheken und Modulen rechnen.
  • Keine dedizierte IDE oder Code-Editor – Flutter-Entwickler können Android Studio, Visual Studio Code oder einen anderen Entwicklungs-Editor verwenden.
  • In Flutter sind viele Open-Source-Bibliotheken und -Erweiterungen auf pub.dev verfügbar. Außerdem können Sie sich auf APIs für native Funktionen verlassen.
  • Flutter ermöglicht das Anhängen von Modulen oder Code an bestehende mobile Apps und gewährleistet eine barrierefreie Kommunikation mit nativem Code.
  • Hot-Restart- und Hot-Reload-Mechanismen ermöglichen Änderungen unterwegs.
  • Flutter bietet Entwicklungstools für die Entwicklung und Monetarisierung von Spielen, einschließlich Anzeigen oder Abonnementzahlungen.
  • Flutter ist schnell und flüssig, da es eine Leistung von 60 fps bietet.

Flatterschwäche:

  • Flutter ist ein ziemlich frisches Projekt und hat noch einige Probleme im Zusammenhang mit seiner Reifephase. Aufgrund der häufigen Ablehnung der API wird Entwicklern empfohlen, das SDK in einem Projekt zu aktualisieren.
  • Beliebte Bibliotheken weisen oft Fehler auf, und ihre Verwendung kann zum Absturz Ihrer App führen.
  • Automatisiertes Testen hat keine Priorität, und Tests bieten keine zuverlässige Qualität und sind auch nicht einfach zu handhaben.
  • Obwohl Dart einfach zu erlernen ist, eine hohe Leistung bietet und mehrere Anwendungsfälle hat, ist es bei Entwicklern immer noch nicht so beliebt.

Flattermöglichkeiten:

  • Möglichkeit, mit Flutter mehr Geräte zu erreichen als mit Xamarin (bereits unter Berücksichtigung eingehender Betriebssysteme, Fuchsia und IOT).
  • Rapid Prototyping und kurze Time-to-Market. Flutter ist perfekt für MVPs und Proofs of Concept.

Flutter-Drohungen:

  • Trotz der wachsenden Popularität von Flutter (häufig als aktueller plattformübergreifender Technologieführer bezeichnet), sei daran erinnert, dass Google oft mit seinen Projekten experimentiert. In Anbetracht mehrerer berühmter, aber eingestellter Google-Produkte (wie Stadia oder Google Glasses) kann man mit Sicherheit sagen, dass es immer eine kleine Chance gibt, dass dasselbe mit Flutter passiert.

Flutter vs. Xamarin: Zusammenfassung

Gleich vorweg: Alle plattformübergreifenden Lösungen wie Xamarin und Flutter befinden sich noch in der Entwicklung. Eines ist jedoch sicher: Anwendungen, die mit plattformübergreifenden Frameworks erstellt wurden, sind in Bezug auf Codierung und Leistung näher als je zuvor an einem nativen Erlebnis. Und das ist der Hauptgrund für seine ununterbrochen wachsende Popularität. Cross-Plattform wird allmählich zum einflussreichsten technologischen Konzept in der Anwendungsentwicklung. Daher ist es jetzt wichtig, sich mit den grundlegendsten, aber bemerkenswertesten Frameworks (wie Xamarin und Flutter) vertraut zu machen .

Aber kommen wir zur Sache. Wir haben bereits eine SWOT-Analyse für Flutter und Xamarin durchgeführt. Es ist also an der Zeit, die Ausgangsfrage kurz zusammenzufassen und zu beantworten: Welches Framework, Xamarin vs. Flutter, ist die bessere Wahl für Unternehmen? Für welche digitalen Produkte sollten Sie Flutter und für welche Xamarin verwenden?

Xamarin vs. Flutter: Welches Framework ist besser?

Im Vergleich zu Flutter ist Xamarin ein ausgereiftes Framework, das häufig von Unternehmen gewählt wird, die schnell in den mobilen Markt eintreten möchten. Wieso den?

Große Unternehmen entscheiden sich aus finanziellen und organisatorischen Gründen für Tools aus ihren Tech-Stacks oder Portfolios, wie zum Beispiel bereits vorhandene Enterprise-Lizenzen für Microsoft-Produkte. Darüber hinaus verfügen Unternehmen häufig über interne .NET-Entwickler, die darauf aus sind, in einem bekannten Stack zu arbeiten. Unter Berücksichtigung dessen könnte Xamarin sicherlich eine gute Wahl sein.

Was ist mit Flutter? Das von Google entwickelte plattformübergreifende Software-Entwicklungskit ermöglicht die Erstellung weitaus vielseitigerer Lösungen. Eine gemeinsame Codebasis, mit der Sie Ihre Kunden auf mehreren Wegen erreichen können? Geprüft! Fesselnde, stark personalisierte Mobil-, Web- und Desktop-Anwendungen gleichzeitig entwickelt? Geprüft!

Last but not least: Zeit, Flexibilität und Kosteneffizienz. Eine reichhaltige Sammlung von Flutter-Bibliotheken und -Komponenten macht die Entwicklung schneller als im Fall von Xamarin. Außerdem kann Flutter in bestehende native Apps integriert werden, zB als Bibliothek oder Modul. Mit anderen Worten? Es muss nicht die gesamte Anwendung auf einmal in Flutter neu geschrieben werden – was aus Sicht des Zeit- und Kostenmanagements zweifellos ein erheblicher Vorteil ist.

Abschließende Gedanken zu Xamarin und Flutter

Xamarin vs. Flutter: Übersicht über die Popularität.
Quelle: Google-Trends

Bitte werfen Sie einen Blick auf das obige Trenddiagramm der beiden Frameworks. Was siehst du? Das ist richtig: Xamarin war noch nie so beliebt wie Flutter. Das von Google entwickelte Framework sammelte schnell eine hingebungsvolle Community von Evangelisten und Praktikern und wurde in einem halsbrecherischen Tempo zum wahren Führer der mobilen Technologie. Wieso den?

Es ist ziemlich klar: Flutter hat schnell die Aufmerksamkeit von Entwicklern, Start-ups und Geschäftsinhabern auf sich gezogen, die nach anderen, weniger verbreiteten Wegen suchen, um den Endbenutzer zu erreichen. Aber was ist mit Xamarin?

Stapelüberlauftrends: Xamarin vs. Flutter (2018-2022)
Quelle: Stapelüberlauftrends

Hier ist eine sichere Wette: Derzeit befindet sich Xamarin in einer Stagnationsphase. Möglicherweise müssen mit Xamarin entwickelte Anwendungen in andere Frameworks wie .NET MAUI, Blazor oder sogar Flutter umgeschrieben werden. Mit Blick auf die Zukunft ist Flutter eine viel bessere und sicherere Wahl. Immer noch nicht überzeugt? Werfen Sie einfach einen Blick auf diese beeindruckende Liste von Unternehmen: BMW, eBay, Groupon, Nubank, Alibaba, Abbey Road Studios. Dies sind nur einige Unternehmen, die ihre digitalen Produkte bereits mit Flutter entwickelt haben.