Wenn Sie sich fragen, ob .Net MAUI Xamarin ablösen wird, dann sind Sie hier richtig, denn nach aktuellen Angaben wird Microsoft den Support für Xamarin Forms zum 01. Mai 2024 einstellen. Durch die Einstellung des Plattform-Supports stehen Unternehmen vor der Entscheidung, ob sie das Produkt auf .NET MAUI als Nachfolger von Xamarin.Forms migrieren oder bei der Softwareentwicklung auf beliebte Cross-Plattform-Frameworks wie Flutter oder React Native setzen sollen.
Inhaltsverzeichnis
Einleitung: Die Bedeutung von Cross-Plattform-Entwicklung
Entwickler sind immer auf der Suche nach schnelleren, einfacheren und kostengünstigeren Möglichkeiten, Produkte auf den Markt zu bringen, insbesondere in der Mobile App Entwicklung. Viele plattformübergreifende Lösungen reduzieren die Kosten und die Komplexität von Projekten, indem sie die Unterstützung mehrerer Plattformen von einer einzigen Codebasis aus ermöglichen.
Dies kann sich erheblich auf die Markteinführungszeit und die Produktverfügbarkeit auswirken, da bei der Mobile App Entwicklung der Anwendungscode nur einmal geschrieben wird und dann auf jedem Gerät ausführbar sein muss.
Die Wahl der richtigen Plattform für Ihr nächstes Projekt kann schwierig sein. Beliebte Lösungen in diesem Bereich sind React Native, Ionic, Microsofts .Net MAUI und das von Google unterstützte Flutter. Keine Technologie ist perfekt, aber sicherlich kann eine von ihnen die geeignetere Lösung für die Systemanforderungen Ihres Projekts sein, daher sollte man die Vor- und Nachteile der verfügbaren Lösungen kennen.
Beginnen wir mit einigen Grundlagen dieser Frameworks.
Net Maui: Die neue Ära der .NET-basierten App-Entwicklung
Um zu verstehen, was .Net MAUI ist, sollten wir einen kurzen Blick auf seine Entwicklung werfen.
Xamarin
Xamarin ist ein Tool für Cross-Plattform-Entwicklung. Es wurde im Mai 2011 von den Ingenieuren veröffentlicht, die Mono, Xamarin.Android und Xamarin.iOS entwickelt haben. Bis 2014 mussten Xamarin-Ansichten für jede Plattform separat implementiert werden (XML – Android, Storyboard/ XIB – iOS). Mit der Einführung von Xamarin Forms wurde es möglich, eine gemeinsame Ansichtsschicht zu erstellen, unabhängig von der jeweiligen Plattform. Schließlich wurde Mono zu Xamarin und 2016 zu einem Teil von Microsofts .NET MAUI, das auf der Grundlage von Xamarin aufgebaut wurde, was es Entwicklern ermöglichte, Code in C# zu schreiben und ihn auf iOS- und Android-Plattformen verfügbar zu machen.
Xamarin Forms
Im Jahr 2014 wurde das Framework um Xamarin.Forms erweitert, was die Cross-Plattform- Wiederverwendung von Benutzeroberflächen ermöglicht und die Markteinführungszeit verkürzt. Dann wurde eine benutzerfreundliche Methode zur Gestaltung von Oberflächen mit XAML eingeführt. Diese Innovation erleichterte die Erstellung von Benutzeroberflächen, die sich nahtlos an verschiedene Plattformen anpassen.
.NET MAUI
2020 kündigte Microsoft MAUI (Multi-platform App UI) an, eine Weiterentwicklung von Xamarin.Forms. Die Veröffentlichung erfolgte im Mai 2022. MAUI übernimmt die besten Aspekte der Xamarin.Forms-Plattform und hebt sie auf eine neue Ebene. Die große Neuigkeit in MAUI ist, dass wir, wenn wir in unserem Projekt in Xamarin.Forms eine Lösung für jede Plattform benötigen, jetzt eine Codebasis in einem Projekt haben werden. Das bedeutet, dass Sie den Code einmal schreiben und ihn auf mehreren Zielplattformen ausführen können, was die Programmierung vereinfacht und Konsistenz gewährleistet.
Lassen Sie uns also einige wichtige Punkte über .NET MAUI zusammenfassen:
Hauptmerkmale der .Net MAUI als Cross-Plattform-Framework
- Programmiersprache
.NET MAUI verwendet C#, eine ausgereifte und weit verbreitete Programmiersprache, die von Microsoft entwickelt wurde. C# ist bekannt für seine objektorientierten Funktionen und seine starke Unterstützung für die Entwicklung von Unternehmensanwendungen.
- Mehr nativ als plattformübergreifend
.NET MAUI verwendet einen hybriden Ansatz. Es verwendet eine einzige C#-Codebasis zur Unterstützung von iOS und Android, erfordert aber eine separate Codebasis für Web und Desktop. Das bedeutet, dass zusätzlicher Code geschrieben werden muss, um diese anderen Plattformen zu unterstützen.
- Community und Support
NET MAUI ist ein neueres Framework, so dass die Unterstützung der Community auf GitHub sich noch im Wachsen befindet und bisher eine Bewertung von 21,3k Sternen (Februar 2024) aufweist. Allerdings wird es von Microsoft unterstützt, was bedeutet, dass es wahrscheinlich eine langfristige Zukunft haben wird. .NET MAUI ist außerdem sehr kompatibel mit bestehenden .NET-Bibliotheken und -Tools.
- Leistung und Benutzerfreundlichkeit
Die .NET MAUI befindet sich noch in der Entwicklung, so dass ihre Leistung und Benutzerfreundlichkeit noch nicht so ausgereift sind wie die von Flutter. Es wird jedoch erwartet, dass sich .NET MAUI in diesen Bereichen mit der Zeit verbessert.
Produktivität
Die Möglichkeit, durch die Integration von Visual Studio Enterprise-Funktionen mit .NET MAUI schöne und schnelle Anwendungen zu erstellen.
Hat .Net MAUI eine Zukunft?
Laut Entwicklern, die mit Xamarin gearbeitet haben, ist .Net MAUI eine gute Wahl für diejenigen, die sich mit .NET/C# auskennen und darin arbeiten. MAUI ist eine relativ neue Lösung und befindet sich noch in einem intensiven Entwicklungsprozess. Die Portierung der Kernfunktionalität von Xamarin auf MAUI ist eine Herausforderung und nicht immer erfolgreich. Für viele .Net-Entwickler ist MAUI recht unausgereift und für die alltägliche Programmierung nicht sehr praktisch. Die Benutzerfreundlichkeit, das Hot-Reloading und XAML sind unbefriedigend, und die Kompilierungszeit ist zu lang.
Dies liegt daran, dass MAUI einfach eine große Iteration in Xamarin Forms ist. Das Repository zeigt, dass die Hälfte der offenen Probleme Regressionsfehler sind und die andere Hälfte Xamarin-spezifische Probleme sind.
Man hat den Eindruck, dass Microsoft noch nicht entschieden hat, in welche Richtung es die MAUI-Entwicklung führen will, und das ist sein Hauptproblem. Es gibt viele Möglichkeiten, MAUI-Anwendungen zu schreiben und viele verschiedene Wege, auf denen man Dinge erledigen kann. Die Wahl des Ansatzes hängt unter anderem davon ab, ob man MVVM (Model – View – ViewModel ), MVU (Model-View-Update), Maui oder XAML-Markup oder Blazor Hybrid verwendet. Was ist mit Maui Blazor Bindings? Dies sind zwei sehr unterschiedliche Lösungen. Die eine bietet einfach eine Blazor-Webanwendung, die andere verwendet den Blazor-Programmierstil mit allen nativen Komponenten.
Dadurch entsteht in MAUI ständig der Eindruck von Chaos, in dem es recht schwierig ist, nach Informationen zu suchen, da es viele verschiedene Ansätze zur Lösung von Problemen gibt. Deshalb ist es empfehlenswert, Anwendungen nicht ausschließlich in MAUI zu entwickeln, sondern es als Wrapper zu verwenden, der eine Website für verschiedene Zwecke zusammenstellt. Im Gegensatz dazu hat Blazor und das kommende Blazor United, das gut mit MAUI zusammenarbeitet, sicherlich eine große Zukunft vor sich.
Fazit .Net MAUI
- Es ist noch neu auf dem Markt
Als eine Weiterentwicklung von Xamarin.Forms gibt es noch einige ungelöste Probleme. Entwickler können auf Bugs oder Einschränkungen stoßen, die sich auf die Projektentwicklungszeiten und die Gesamtstabilität auswirken können. Obwohl Microsoft .NET MAUI unterstützt, kann es einige Zeit dauern, bis die Plattform ausgereift ist und das gleiche Maß an Stabilität und Zuverlässigkeit erreicht wie etablierte Alternativen wie React Native oder Flutter.
- Abhängig vom .NET-Ökosystem
Während dies für Entwickler, die bereits mit .NET-Technologien vertraut sind, von Vorteil ist, ist die Einstiegsschwelle für diejenigen, die andere Programmiersprachen verwenden, schwierig. Im Gegensatz dazu verwenden Frameworks wie Flutter und React Native Dart bzw. JavaScript, die für ein breiteres Spektrum von Entwicklern zugänglich und attraktiv sind.
Schwächere Leistung der Plattform
.Net MAUI ist zwar der Xamarin.Forms-Plattform überlegen, erreicht aber nicht immer die Leistung der nativen Programmierung oder anderer Cross-Plattform-r Lösungen wie Flutter. Dies kann zu einem langsameren Anwendungsstart oder einer geringeren Reaktionsfähigkeit führen, was sich negativ auf die Benutzerwahrnehmung auswirken kann.
Wir werden uns nun auf die wichtigsten Funktionen von Flutter konzentrieren, einem der beliebtesten Frameworks auf dem Markt.
Flutter: Googles UI-Toolkit für nahtlose Benutzererfahrung
Flutter ist ein Open-Source-SDK für die Erstellung Cross-Plattform-r Anwendungen, das 2017 von Google veröffentlicht wurde. Es hat die Branche der Cross-Plattform-n Apps im Sturm erobert, und bis 2023 werden 36.889 Projekte mit Flutter erstellt worden sein, das zu den vier wichtigsten heute verfügbaren App-Entwicklungs-Frameworks gehört.
Die nachstehende Grafik zeigt, dass die Popularität von Flutter im Laufe der Jahre stetig zugenommen hat.
Und laut einer Statista-Umfrage unter Entwicklern im Jahr 2022 ist Flutter das beliebteste plattformübergreifende Mobile Framework, das von Entwicklern weltweit verwendet wird. Laut der Umfrage nutzen 46 Prozent der Entwickler Flutter. Insgesamt nutzt etwa ein Drittel der Mobilentwickler Cross-Plattform- Technologien oder Frameworks; der Rest der Mobilentwickler verwendet native Tools.
Warum wird Flutter häufig bei plattformübergreifenden Anwendungen eingesetzt?
Flutter bietet eine hohe Entwicklungsgeschwindigkeit bei der Cross-Plattform -Entwicklung und führt zu benutzerfreundlicheren Anwendungen. Es hat einen anderen Ansatz als andere Cross-Plattform-Lösungen. Es verwendet die von Google entwickelte Programmiersprache Dart, um die Notwendigkeit separater deklarativer Sprachen wie JSX oder XML zur Definition von Layouts oder Code zu vermeiden. Flutter ist in dieser einzigen Sprache geschrieben und bietet mehr Werkzeugoptionen, da sowohl die Benutzeroberfläche als auch die Logik dieselbe Struktur haben. Daher verfügt Flutter über eine der besten IDEs und Entwicklungswerkzeuge, die Entwicklern das Leben leichter machen.
Fazit Flutter
- Sprache und Ökosystem
Flutter verwendet Dart als Programmiersprache, die einen reaktiven und deklarativen Ansatz zur Erstellung von Benutzeroberflächen mit einer C#-ähnlichen Syntax bietet. Das Ökosystem umfasst eine große Anzahl von Paketen und Plugins, die über pub.dev verfügbar sind.
- Rendering der Benutzeroberfläche
Flutter verwendet eine benutzerdefinierte Rendering-Engine, Skia, um eine schnellere Benutzeroberfläche mit visuell ansprechenden und konsistenten Komponenten zu schaffen. Widgets in Flutter sind in hohem Maße anpassbar und ermöglichen pixelgenaue Designs.
- Popularität und Community
Flutter erfreut sich unter Entwicklern großer Beliebtheit, insbesondere bei der Entwicklung mobiler Apps, und seine lebendige Community trägt dazu bei. Sie hat eine starke Präsenz auf Plattformen wie Stack Overflow und GitHub.
- Cross-Plattform-Ansatz
Flutter verwendet eine einzige Codebasis und Basis, um viele Plattformen zu unterstützen, darunter iOS, Android, Web und Desktop (Unified API). Das bedeutet, dass Sie Ihren Code einmal schreiben und ihn dann ohne Änderungen auf all diesen Plattformen einsetzen können. Flutter erreicht dies mit einem „Write Once, Run Everywhere”-Ansatz (WORA), bei dem derselbe Code für jede Plattform in nativen Code kompiliert wird.
- Große Community und Support
Flutter hat eine viel größere und aktivere Community als .Net MAUI. Das bedeutet, dass für Flutter-Entwickler mehr Ressourcen zur Verfügung stehen, z. B. Tutorials, Dokumentation und Bibliotheken von Drittanbietern. Flutter hat auch eine breitere Palette von unterstützten Geräten.
- Leistung und Benutzerfreundlichkeit
Flutter ist für seine hohe Leistung und hervorragende Benutzerfreundlichkeit bekannt. Es verwendet die Skia-Grafik-Engine, die für ihre Geschwindigkeit und Leistung bekannt ist. Flutter bietet außerdem eine Reihe integrierter Widgets, mit denen Entwickler Benutzeroberflächen im nativen Design erstellen können.
Ist Flutter eine Zukunftstechnologie?
Flutter ist eine solide Technologie für die schnelle App-Entwicklung, da es eine leistungsstarke Rendering-Engine und eine Vielzahl von Widgets enthält. Es hat sicherlich eine Zukunft für die Cross-Plattform-Entwicklung und eignet sich hervorragend für die Erstellung von Apps für Startups, die so schnell wie möglich ein MVP erstellen möchten. Google investiert weiterhin stark in das native Entwicklungs-Ökosystem von Android und entwickelt und aktualisiert ständig neue Bibliotheken. Ein großer Vorteil ist, dass Flutter ein Open-Source-Projekt mit einer großen und wachsenden Community ist.
Selbst wenn das gesamte Flutter-Team entlassen würde, würden sicherlich viele weiter an dem Projekt arbeiten und sogar eine Stiftung gründen, um die Entwicklung fortzusetzen. Die Entwickler würden weiterhin an Flutter arbeiten, anders als bei proprietären Anwendungen (Stadia, andere Google-Anwendungen, die nicht mehr in der Entwicklung sind). Außerdem würde es immer noch Open-Source-Mitwirkende und andere Unternehmen (Bytedance, Alibaba, Sony, Ubuntu) geben, die sich um die weitere Pflege des Projekts kümmern würden.
Vergleich: .NET MAUI vs. Flutter
Wann ist .Net MAUI besser als Flutter?
NET MAUI kann in einigen Szenarien eine bessere Wahl als Flutter sein:
- Sprachpräferenz
Wenn Ihr Entwicklungsteam mit C# und XAML besser zurechtkommt, ist .NET MAUI möglicherweise die bessere Wahl, da es diese Sprachen verwendet.
- Integration
.NET MAUI lässt sich gut mit Visual Studio und Visual Studio Code integrieren.
- Eine große Sammlung von NuGet-Paketen und .Net-Tools, die bei der Arbeit mit Maui verfügbar sind.
Dennoch müssen wir uns darüber im Klaren sein, dass wir Zeit aufwenden müssen, um eine angemessene Unterstützung zu integrieren und alle Xamarin-Pakete vollständig anzupassen, um von diesem Ökosystem zu profitieren.
Wann ist Flutter besser als .Net MAUI?
Der Hauptvorteil ist die hohe Anwendungsleistung und die Erfahrung der Entwickler.
- Mehr native Gerätefunktionen
Flutter verwendet native UI-Komponenten. Bei MAUI kann dies, je nach Vorliebe, auch ein Nachteil sein, da es zu visuellen Inkonsistenzen zwischen verschiedenen mobilen Plattformen führen kann.
- Flutter-Anwendungen sind in der Regel kleiner und schneller als solche, die mit .Net MAUI erstellt wurden.
Dank der AOT-Kompilierung (Ahead Of Time) von Flutter, die die Größe des kompilierten Codes reduziert, kann ein erfahrener Flutter-Entwickler schnell Funktionen mit vielen gebrauchsfertigen, anpassbaren Widgets und einer guten integrierten Dokumentation bereitstellen.
- Flutter ist ausgereifter als MAUI.
Viele mit Flutter erstellte Anwendungen können heruntergeladen und getestet werden, was die Wahl erleichtert.
- Die Flutter-Engine kann als ganze Anwendung ausgeführt werden, was bedeutet, dass die Entwickler durch die Wahl von Flutter nicht eingeschränkt sind.
Es ist einfach, zu nativem Code zu wechseln oder einen Flutter-Bildschirm zu bestehenden nativen Anwendungen hinzuzufügen. So kann Flutter sehr schnell getestet und präsentiert werden.
- Schnellere Cross-Plattform-Entwicklung
Flutter unterstützt derzeit Plattformen wie Windows, iOS, Android, Google Fuchsia, Web-Plattform, Linux, macOS Windows und eingebettete Geräte (Automobil- oder Elektronikindustrie, z. B. Displays, Digitaluhren). Flutter-Entwickler können komplexe Anwendungen von einer einzigen Code-Basis aus schreiben und bequem Multiplattform-Anwendungen zu erschwinglichen Preisen erstellen. Außerdem spart es eine Menge Zeit.
- Kosten sparen durch die Erstellung von MVPs
Flutter eignet sich aufgrund seiner Skalierbarkeit, Flexibilität und der Verwendung integrierter Widgets für die Entwicklung von MVPs (Minimum Viable Products). Entwickler können schnell ein MVP für ihr Projekt erstellen und Änderungen schneller vornehmen, um benutzerdefinierte Anforderungen und Versionen zu erfüllen, was die Markteinführungszeit verkürzt.
- Erstellen von Anwendungen, die optisch ansprechend sind
Flutter basiert auf Widgets und seine App-Architektur kann für die Gestaltung ansprechender Benutzeroberflächen von Anwendungen verwendet werden. Sie können auch den visuellen App-Builder von Flutter Flow verwenden, um ansprechende UI-Designs ohne Programmierung zu erstellen.
Fazit: NET MAUI vs. Flutter in der Cross-Plattform-Entwicklung
Wie bereits erwähnt, sind sowohl .NET MAUI als auch Flutter Werkzeuge für die Entwicklung Cross-Plattform-Anwendungen, inbesondere in der Mobile App Entwicklung. Flutter ist eine gute Wahl für Projekte, die einen schnellen Entwicklungszyklus, eine breite Palette von unterstützten Geräten und eine starke Community erfordern. .NET MAUI eignet sich für Projekte, die eine weit verbreitete Programmiersprache und eine hohe Kompatibilität mit bestehenden .NET-Bibliotheken und -Tools erfordern.
Die Wahl zwischen den beiden hängt oft von den spezifischen Projektanforderungen, den Sprach- und Toolkenntnissen des Teams und den persönlichen Vorlieben ab.
Benötigen Sie Beratung zu .NET MAUI oder Flutter? Für weitere Informationen über alles, was mit .NET oder Flutter zu tun hat, können Sie uns jederzeit kontaktieren. Wir helfen Ihnen gerne bei der Auswahl der richtigen Lösungen.
Quellen:
- https://www.codemag.com/Article/1911092/From-Xamarin-Native-to-Xamarin.Forms-Reaping-the-Rewards-without-the-Risk https://dotnet.microsoft.com/en-us/platform/support/policy/xamarinsharpcorner.com/
- https://github.com/dotnet/maui
- https://dotnet.microsoft.com/en-us/apps/maui
- https://buildwith.app/compare/dotnetmaui-vs-flutter