React Native vs. Ionic: Das sind die Unterschiede
Wer zum ersten Mal eine App entwickelt, ist schnell überrascht darüber, wie aufwändig die Erstellung einer App im Vergleich zu einer Webseite ist. Dies liegt vor allen Dingen daran, dass die Plattformen iOS und Android grundverschieden sind. Wer eine App für beide Plattformen veröffentlichen möchte, erstellt eigentlich zwei Apps, die funktional zwar identisch, technisch aber komplett unterschiedlich sind. Dieses Problem lösen wir bei Hybrid Heroes, indem wir uns vollständig auf die Hybrid App, bzw. Cross-Platform App Entwicklung fokussiert haben. Diese hat zum Ziel den Anteil gemeinsamer Entwicklung von iOS und Android so groß wie möglich zu gestalten. Die Vorteile liegen auf der Hand: Die App-Entwicklung geht deutlich schneller, ist günstiger und der Prozess ist insgesamt schlanker, was auch die Wartung und Erweiterung der Apps vereinfacht.
React Native und Ionic sind aktuell die am häufigsten eingesetzten Frameworks für Cross-Platform Entwicklung und verfolgen beide doch grundverschiedene Ansätze. In diesem Blog Post möchten wir kurz auf die Gemeinsamkeiten aber vor allen Dingen auf die Unterschiede eingehen und dabei Handlungsempfehlungen geben, für welche Use Cases die Frameworks besonders interessant sind.
Ionic
Ionic ist schon länger auf dem Markt als React Native und verfolgt den Ansatz, eine identische App auf mehreren Plattformen zu veröffentlichen. Dieses Ziel wird erreicht, indem die App als Web App entwickelt wird und auf iOS und Android in einem Browser ausgeführt wird, der in einen nativen Container verpackt ist. So fühlt sich die App für den Benutzer wie eine übliche native App an, im Hintergrund kommen jedoch Webtechnologien zum Einsatz. Ionic ist in zwei Dingen unschlagbar: Erstens kann die App wirklich fast 1 zu 1 identisch auf allen Plattformen veröffentlicht werden, es entsteht so gut wie kein Aufwand für individuell angepassten Sourcecode für eine spezifische Plattform. Zweitens können Ionic Apps ohne Weiteres auch als Web App im Browser veröffentlicht und so einer noch breiteren Zielgruppe zugänglich gemacht werden.
React Native
React Native verfolgt ebenfalls das Ziel den Aufwand für plattformspezifische Entwicklung zu reduzieren. Im Gegensatz zu Ionic entstehen am Ende allerdings nicht nativ verpackte Web Apps sondern "echte" native Apps. React Native Apps werden in der Programmiersprache React entwickelt, dann aber in native Komponenten übersetzt. Dies erfordert eine gewisse Einarbeitung in die Besonderheiten von iOS und Android und nicht immer lassen sich beide Plattformen mit einer Lösung erschlagen. Am Ende stehen aber komplett native Apps. Wer wert auf natives User Interface legt, ist mit React Native sehr gut beraten. Zudem hat React Native bei performance-orientierten Apps, die zum Beispiel aufwändige graphische Operationen ausführen, die Nase vorne.
And the winner is...
Wenn wir uns mit dem richtigen Technologie Stack beschäftigen, gibt es ein paar No-Brainer, z.B.:
- Soll die App auch im Web veröffentlicht werden, dann ist Ionic meist der richtige und effizienteste Weg.
- Soll die App ein plattformspezifisches Design haben, dann ist React Native meist der bessere Weg.
Es gibt aber viele Fälle, bei der die Entscheidung schwerer ist. Grundsätzlich lässt sich sagen, dass Ionic auf Grund des hohen Anteils plattformunabhängiger Entwicklung etwas weniger aufwändig ist. Zudem ist die Technologie reifer und für jede Herausforderung gibt es schon ein Best Practice Beispiel. React Native hat die Performance und das native User Interface als Vorteile. Wir beraten unsere Kunden entlang der Faktoren Budget, geplante Plattformen, Designvorstellungen und Performanceorientierung der Applikation.
Haben wir dein Interesse für eine Ionic oder React Native geweckt? Schreib uns eine E-Mail an hello@hybridheroes.de.