Eine Frage des Ökosystems
Oberflächlich betrachtet fallen die Unterschiede zwischen Xamarin und Ionic gering aus: Beide zielen darauf ab, die Arbeit der Entwickler zu vereinfachen. Die Frameworks wollen Entwicklerarbeit beschleunigen und vereinfachen und sie gleichzeitig einer größeren Anzahl von Entwicklern zur Verfügung stellen. Der Unterschied ist daher in einem anderen Bereich zu finden:
- Ionic verwendet recht simple Webtechnologien, die standardisiert sind und damit (auch aufgrund der JavaScript-Basis) für den Löwenanteil des freien Internets gut geeignet ist.
- Xamarin ist ein Produkt von Microsoft und daher, wen könnte es wundern, vor allem auf die Nutzung mit anderen Produkten aus dem Microsoft-Ökosystem ausgelegt.
Ihr Versprechen lösen beide Frameworks ein und man kann Microsoft kaum dafür verurteilen, die eigenen Produkte vorantreiben zu wollen. Dennoch gilt: Entwickler, die bislang auf Xamarin setzen, sollten die Mühe nicht scheuen und das breitere Web-Ökosystem von Ionic zumindest ausprobieren.
Xamarin und Ionic im kurzen Überblick
Bevor wir ins Detail gehen, schauen wir uns kurz an, welche Merkmale Xamarin und Ionic auszeichnen.
Xamarins Eigenschaften im Vergleich…
Die .NET-Plattform wird durch Xamarin mit einigen Werkzeugen und Bibliotheken erweitert, um sowohl typische Desktop- als auch Mobile-Applikationen zu entwickeln. Dafür setzt es auf zwei unterschiedliche Frameworks.
Bei Xamarin Native handelt es sich um eine Sammlung aus UI-Frameworks, die voll funktionstüchtige SDKs für Android, iOS und macOS mitbringen. Xamarin.Forms hingegen ist ein quelloffenes, mobiles UI-Framework, um Apps für iOS, Android und Windows aus einer einzigen, geteilten Codebasis zu entwickeln.
Xamarin.Forms punktet durch seine Herangehensweise: einmal Code schreiben, überall ausführen. Xamarin Native hingegen ist komplexer in seiner Nutzung, denn es benötigt plattformspezifisches Fachwissen, was dafür aber auch mit besseren Möglichkeiten für die Feinjustierung der Apps einhergeht. Wie bereits erwähnt, ist Xamarin außerdem Microsoft-Territorium: Bestimmte Dinge lassen sich nicht umsetzen, ohne dabei etwa auf .NET, Azure oder andere Microsoftdienste zuzugreifen.
… zu Ionics typischen Merkmalen
Im Gegensatz dazu ist Ionic ein Framework, das die Entwicklung von mobilen und desktopbasierten Apps und auch Anwendungen im Web (entweder im Browser oder auch als Progressive Web App) erlaubt. Auch hier schreiben Entwickler den Code also nur ein einziges Mal und führen ihn dann überall aus, während Look & Feel recht nah an native Software herankommt.
Da hinter Ionic ein unabhängiges Unternehmen steckt, das Lösungen agnostisch und für das offene Web bereitstellt, entfallen viele der Xamarin-typischen Einschränkungen. Offene Standards und alle erdenklichen JavaScript-Frameworks geben hier den Ton an, sodass etwa React, Vue oder Angular (und auch JavaScript in seiner unveränderten Form) zum Einsatz kommen können. Von diesem massiven, offenen Ökosystem (aktuell zählt Ionic etwa 30 Millionen Entwickler) versprechen sich die Macher hinter dem Framework mehr Innovationen und Zusammenarbeit. Das sollte – theoretisch – auch dazu führen, dass sich Entwickler für bestimmte Apps schneller finden lassen.
Ionic gegen Xamarin in fünf Punkten
Die folgenden Abschnitte zeigen fünf wichtige Punkte, in denen Ionic – unserer Meinung nach – einen Vorteil gegenüber Xamarin verbuchen kann.
1. Einfaches Anheuern neuer Entwickler
Wir haben es gegen Ende des letzten Abschnittes bereits erwähnt: Entwickler für Ionic lassen sich schneller finden, da sie erstens in großer Vielfalt bereits vorhanden sind. Zweitens erfordert Xamarin Kenntnisse (und zwar recht umfangreiche) von C# und .NET. Unternehmen werden also wahrscheinlich schneller fähige JavaScript-Programmierer finden als gute C#- oder .NET-Entwickler. Auch die Zahlen belegen das: Die Umfrage unter https://insights.stackoverflow.com/survey/2019#technology-_-programming-scripting-and-markup-languages zeigt, dass im Vergleich zu C# ungefähr die doppelte Menge an JS-Programmierern verfügbar ist. Natürlich gilt: Quantität heißt nicht gleich Qualität. Die Chancen stehen aber von vornherein besser, Entwickler zu finden, die mit Ionic etwas anfangen können.
2. Mobile, Desktop und Web in einem Paket
Um mit einer einzigen App sowohl das Web als auch Smartphones zu bedienen, sind mit Xamarin zwei unterschiedliche Codequellen notwendig. Das gilt besonders, wenn zu einer traditionellen mobilen App noch eine PWA hinzustoßen soll. Ionic-Apps, wie sie auch bei uns entwickelt werden, nutzen hingegen dieselbe Codebasis für Web, Mobile und Desktop und laufen dabei nativ etwa unter Android und iOS und als PWAs unter Windows oder auch macOS. Am Ende ist es also auch eine Frage der Effizienz: Es lässt sich viel (Entwickler-)Zeit sparen, indem Entwickler auf den zweigleisigen Weg verzichten und gleich Ionic einsetzen.
3. Mehr Frameworks, Bibliotheken und Tools
Das Web bietet ganz einfach eine Lösung für so ziemlich alles an. JavaScript spült permanent neue Bibliotheken an Land und der extreme Umfang von Web-Entwicklern steuert die notwendige Kreativität für den Umgang mit den großen Frameworks dieser Welt bei. React etwa hat sich darauf eingeschossen, leicht zu erstellende UIs umzusetzen. Vue hingegen schafft sehr viel mit sehr wenig Code und bietet daher tolle Performance, während Angular vor allem auf Unternehmen abzielt, die eine umfangreiche Lösung für alles bevorzugen. Microsoft macht mit Xamarin zwar auch Fortschritte, aber an den gewaltigen Umfang von Werkzeugen und Bibliotheken von Ionic kann es noch nicht heranreichen.
4. Einfacher UI-Port von Web zu Mobile
Existiert bereits eine App, deren Design sehr strikten Richtlinien folgt und das genau definiert, wie eine bestimmte UI-Komponente aussehen soll, sorgt dies unter Xamarin für diverse Probleme – denn dort haben Entwickler nur Zugriff auf die nativen Komponenten von iOS oder Android. Ionic setzt hingegen auf standardisierte Webkomponenten, sodass beispielsweise bestimmte React-Bibliotheken schnell und einfach in eine mobile App portiert werden können. Bestimmte Aspekte des UI lassen sich außerdem mit einfachen Anpassungen in den dazugehörigen CSS-Dateien anpassen – ganz so, als würden Entwickler einfach eine Webseite umgestalten.
5. … .NET darf trotzdem bleiben
Wer sich bereits in .NET verliebt hat, muss es nicht aufgeben. Im Gegenteil: Die Fusion von Ionic und .NET kann auch Früchte abwerfen. Dazu nutzen Entwickler einfach Ionic für das Front-End: PWAs kommen zuerst und davon ausgehend kann später noch immer die Entwicklung mobiler Apps erfolgen. Die Back-End-Infrastruktur (wie SQL-Datenbanken oder APIs für C#) zusammen mit Azure kann sich dann wirksam um bestehende Cloud-Komponenten kümmern.
Also ist Ionic immer besser – oder?
„Besser“ kommt auch hier stark auf den Kontext an. Wer bereits bis zum Hals im Ökosystem von Microsoft steckt und Xamarin verwendet, kann auch ruhig dabeibleiben – allerdings kann es nicht schaden, Ionic auf eine Testfahrt mitzunehmen. Das breitere Angebot im Web ist einfach unschlagbar gut und für die simultane Entwicklung von Desktop, Mobile und Web gibt es nichts Besseres. Hinsichtlich der Performance nehmen sich beide Frameworks nicht viel: Der Endnutzer wird wahrscheinlich niemals bemerken, ob eine App mit Ionic oder Xamarin gebastelt wurde. Nicht die Tools sind hier entscheidend, sondern die Qualität des Codes.
Xamarin und Ionic können darüber hinaus beide Apps bereitstellen, die in Sachen Bedienung und Look absolut nativ scheinen. Hier bietet Ionic aber den Vorteil, dass durch Adaptive Styling dieses native UI-Erlebnis auch generiert wird, ohne dass Entwickler gesonderten Code dafür schreiben müssen – was am Ende eleganter und zeitsparend ist.
Wenn Sie Interesse daran haben, mit Ihren Apps auf zukunftssichere Frameworks umzusteigen und die Vorteile (sowohl bei Entwicklung als auch Wartung und Pflege) live zu erleben, können Sie uns gerne kontaktieren. Wir arbeiten seit langer Zeit mit Ionic und würden uns freuen, Ihr Projekt näher kennenzulernen.
Mehr Informationen zu Mobile App Entwicklung
Einheitliche Codebasis und plattformübergreifende Entwicklung, das gehört für Orlyapps einfach zusammen. Denn genau das macht Ihre App flexibel und pflegeleicht, egal für welches Endgerät. Oder gleich mehrere.