Kurz gesagt
Ernsthaft zur Wahl stehen heute React Native und Flutter, dazu .NET MAUI in Häusern, die auf C# arbeiten. Der Unterschied zwischen den beiden erstgenannten ist weniger die Leistung als die Bauart: React Native benutzt die Bedienelemente des Systems, Flutter zeichnet eigene. Praktisch entscheidet meist die Sprache, die dein Team schon kann.
- Ernsthaft zur Wahl
- Zwei bis drei
- Entscheidet meistens
- Die Sprache
- Unsere Wahl
- React Native
-
Sie benutzen, was das System mitbringt
React Native und .NET MAUI erzeugen die tatsächlichen Bedienelemente von iOS und Android. Eine Liste ist dort eine Systemliste. Das fühlt sich pro Plattform richtig an und erbt automatisch, was Apple und Google an Bedienung und Barrierefreiheit ändern.
-
Sie zeichnen alles selbst
Flutter bringt eine eigene Zeichenschicht mit und malt jedes Bedienelement selbst. Ergebnis: auf beiden Plattformen exakt dasselbe Bild, unabhängig vom System. Das ist ein Vorteil, wenn eine eigene Formensprache zählt, und ein Nachteil, wenn die App sich plattformeigen anfühlen soll.
-
Sie zeigen eine Website in einer Hülle
Ionic und Cordova betreiben einen eingebetteten Browser. Das ist der kürzeste Weg von einer bestehenden Website zu etwas, das im Store steht, und der längste zu etwas, das sich wie eine App anfühlt.
| Cross-Platform-Frameworks nach Sprache, Bauart, Träger und Stand | Sprache | Bauart | Getragen von | Stand |
|---|---|---|---|---|
| React Native | JavaScript, TypeScript | Bedienelemente des Systems | Meta, dazu eine große Community | Aktiv |
| Flutter | Dart | Eigene Zeichenschicht | Aktiv | |
| Ionic mit Capacitor | Web-Technologien | Eingebetteter Browser | Ionic | Aktiv |
| .NET MAUI | C# | Bedienelemente des Systems | Microsoft | Aktiv, Nachfolger von Xamarin |
| Apache Cordova | Web-Technologien | Eingebetteter Browser | Apache | Kaum noch in neuen Projekten |
| Xamarin | C# | Bedienelemente des Systems | Microsoft | Support am 1. Mai 2024 beendet |
-
Die Sprache, die euer Team schon kann
TypeScript läuft bei uns in Web, Backend und App. Entwickler dafür findest du leichter als für Dart oder C#, und Wissen lässt sich zwischen den Projekten mitnehmen.
-
Über den Store hinweg nachbessern
Mit Expo lassen sich Korrekturen an der JavaScript-Ebene ausliefern, ohne auf eine neue Prüfung im Store zu warten. Für alles, was nicht die native Schicht betrifft, verkürzt das die Wege erheblich.
-
Wir betreiben es selbst
Unsere eigenen Produkte laufen auf diesem Stack, seit Jahren und im Store. Wir empfehlen nichts, dessen Wartung wir nicht selbst bezahlen.
-
Flutter, wenn die Oberfläche überall identisch sein soll
Flutter zeichnet seine Bedienelemente selbst, statt die des Systems zu benutzen. Das ergibt auf beiden Plattformen exakt dasselbe Bild, und es ist die bessere Wahl, wenn eine eigene Formensprache wichtiger ist als das Gefühl der jeweiligen Plattform. Der Preis ist Dart.
-
.NET MAUI, wenn ihr sowieso in C# arbeitet
Wenn eure Backends in .NET laufen und das Team C# kann, zählt die durchgehende Sprache mehr als die größere Community von React Native.
-
Ionic, wenn es im Kern eine Website ist
Wenn eure Inhalte sowieso aus dem Web kommen und zusätzlich als App verfügbar sein sollen, ist der eingebettete Browser der kürzeste Weg. Sobald sich die App wie eine App anfühlen soll, ist der Vorteil weg.
Welches Framework ist das beste?
Die Frage hat keine allgemeine Antwort, und wer sie gibt, verkauft etwas. React Native und Flutter sind beide tragfähig. Den Ausschlag geben in der Praxis die Sprache, die dein Team beherrscht, und die Frage, wen du in zwei Jahren dafür einstellen kannst.
Was ist der eigentliche Unterschied zwischen React Native und Flutter?
React Native benutzt die Bedienelemente des Systems, Flutter zeichnet eigene. Daraus folgt fast alles Weitere: React Native fühlt sich pro Plattform natürlicher an, Flutter sieht auf beiden Plattformen exakt gleich aus. Dazu kommt die Sprache, TypeScript gegen Dart.
Wie groß sind die Leistungsunterschiede?
Zwischen React Native und Flutter sind sie für gewöhnliche Anwendungen nicht ausschlaggebend. Deutlich wird der Abstand erst zu den Frameworks mit eingebettetem Browser. Wer im Netz auf feine Prozentangaben stößt, sollte nach der Messmethode fragen, meistens gibt es keine.
Ist Xamarin noch eine Option?
Nein. Microsoft hat den Support am 1. Mai 2024 eingestellt. Der Nachfolger ist .NET MAUI. Bestehende Xamarin-Apps sollten dorthin überführt werden.
Kann ich das Framework später wechseln?
Die Oberfläche muss dabei neu gebaut werden, das lässt sich nicht umgehen. Was du retten kannst, hängt daran, wie sauber Geschäftslogik, Datenzugriff und Oberfläche getrennt sind. Wer das von Anfang an trennt, macht aus einem Wechsel ein Projekt statt eine Neuentwicklung.
Kommen Cross-Platform-Apps an alle Gerätefunktionen heran?
React Native, Flutter und .NET MAUI kommen an alles heran, notfalls über ein eigenes natives Modul. Bei den Frameworks mit eingebettetem Browser ist der Zugriff enger und hängt an zusätzlichen Erweiterungen.
Welche Sprache muss mein Team lernen?
React Native: JavaScript oder TypeScript, meist schon vorhanden. Flutter: Dart, für fast jedes Team eine neue Sprache. .NET MAUI: C#, vorhanden, wenn ihr sowieso auf .NET arbeitet. Ionic: Web-Technologien.
Womit arbeitet ihr?
Mit React Native und Expo, auch für unsere eigenen Produkte. Wenn ein Projekt besser zu einem anderen Weg passt, sagen wir das im Erstgespräch, statt es passend zu machen.