Zum Inhalt springen

← Alle Notizen

Xamarin End of Life: .NET MAUI oder Flutter?

· 2 Min. Lesezeit

Microsoft hat den Support für Xamarin am 1. Mai 2024 beendet. Seitdem gibt es keine Updates mehr, auch nicht für neue iOS- und Android-Versionen. Bestehende Apps laufen zunächst weiter, aber Apple und Google heben ihre Anforderungen regelmäßig an: neue SDK-Versionen für Einreichungen im App Store, höhere Ziel-API-Level bei Google Play. Früher oder später lässt sich eine Xamarin-App deshalb nicht mehr aktualisieren. Wer sie weiterentwickeln will, muss migrieren.

Die zwei naheliegenden Wege

.NET MAUI ist der offizielle Nachfolger. Das Team bleibt bei C# und .NET, geteilte Geschäftslogik und viele Bibliotheken lassen sich weiterverwenden. Xamarin.Forms-Apps haben den kürzesten Weg, aber auch hier ist Umbauarbeit nötig, etwa bei Renderern, die in MAUI durch Handler ersetzt werden, und bei Drittbibliotheken, die nicht mitgezogen sind.

Flutter bedeutet, die App-Oberfläche in Dart neu zu bauen. Das Backend bleibt, wie es ist: Die App spricht weiter mit denselben APIs.

Kriterien für die Entscheidung

  • Team: Wer entwickelt die App künftig? Ein reines C#-Team kommt mit MAUI schneller voran. Dart ist C# in vielem ähnlich, und Flutter-Entwickler sind am Markt gut verfügbar.
  • Anteil geteilter C#-Logik: Steckt viel Fachlogik in der App selbst, spricht das für MAUI. Liegt sie im Backend, fällt dieser Vorteil weg.
  • Anspruch an die Oberfläche: Flutter zeichnet seine Oberfläche selbst und sieht auf iOS und Android gleich aus. Aufwendige, markenspezifische Designs lassen sich damit meist einfacher umsetzen.
  • Web als Ziel: Flutter kann dieselbe Codebasis auch im Browser ausliefern.
  • Native Integrationen: Beide Wege erlauben den Zugriff auf Plattform-APIs. Entscheidend ist, ob es für die benötigten Funktionen gepflegte Pakete gibt.

In der Praxis gewinnt Flutter meist bei UI-Anspruch, Team-Verfügbarkeit und Web-Ziel, MAUI dann, wenn viel C#-Code in der App steckt und das Team bei .NET bleiben will. Das .NET-Backend bleibt in beiden Fällen unangetastet.

Wie eine Migration nach Flutter abläuft

  1. Bestandsaufnahme: Screens, Abläufe, APIs, Anmeldung, Push-Benachrichtigungen, native Funktionen.
  2. API-Verträge festhalten: Gibt es eine OpenAPI-Beschreibung, lässt sich der Dart-Client daraus generieren. Die DTOs bleiben dieselben.
  3. Querschnittsthemen zuerst: Anmeldung, Fehlerbehandlung, Offline-Verhalten, Push.
  4. Screens in fachlichen Blöcken umsetzen und jeweils gegen die bestehende App prüfen.
  5. Den Release planen: Die neue App ersetzt die alte unter derselben Bundle-ID beziehungsweise demselben Paketnamen und Signaturschlüssel. So erhalten Nutzer ein normales Update.

Unterstützung

Ich habe selbst Xamarin-Apps und .NET-Backends auf Azure gebaut und migriere Xamarin-Apps nach Flutter. Im ersten Gespräch sage ich Ihnen auch, wann MAUI die bessere Wahl ist. Gespräch vereinbaren.