App Entwicklung für Android und iOS mit React Native

Nerd Alert im Candylabs-Blog: Heute geht es um das Potenzial von React Native.

Das Framework von Facebook bietet die Möglichkeit, Apps zu entwickeln, die sowohl mit Android als auch iOS kompatibel sind. Wir haben uns angeschaut, wie sich die Anwendung in der Praxis schlägt, was schon heute gut funktioniert und an welchen Stellen es noch Optimierungsbedarf gibt.

iOS oder Android - ein “und” gibt es hier aus technischer Perspektive normalerweise nicht. Mobile Anwendungen werden in der Regel nur für eines der beiden Systeme entwickelt. Das heißt: Wer iOS- und Android-Apps in den Markt bringen möchte, hat nahezu doppelten Aufwand in Konzept, Design, Entwicklung, Qualitätssicherung und auch später in der Wartung sowie beim Beheben der unvermeidlichen Bugs. Das Problem ist genauso alt wie Smartphones selbst - und genauso lange gibt es schon Lösungsansätze.

Candylabs-Blog-Bilder-React-Native-App.png

Einer der ersten Versuche, Apps gleichermaßen für iOS und Android zu konzipieren, war die Einbettung ganzer Webseiten in eine Anwendung. Das Ergebnis: ernüchternd. Die Performance war schlecht, die Offline-Funktionalität nicht mehr als ein Versprechen und über die Optik oder gar Usability dieser Anwendungen sprechen wir besser erst gar nicht.

Neue Hoffnung machte sich 2015 breit, als Facebook mit React Native seine Lösung für das immanente Problem ankündigte. Die Idee: Eine Anwendung wird einmal in - das für viele Entwickler vertraute - JavaScript implementiert und kann dann ohne weitere signifikante Anpassungen auf Android und iOS-Geräten installiert werden.

Die Vorteile: Was React Native kann

Bei der klassischen App-Entwicklung ist folgender Prozess Usus: Quellcode anpassen, kompilieren, auf Gerät installieren, Testen. Rinse and Repeat. Nicht so in der Welt von React Native. Neuer Code wird hier in Echtzeit kompiliert und angezeigt, im Simulator wie auf echten Geräten. Der Vorteil: Durch hohe Iterationsgeschwindigkeiten ist der Weg bis zum ersten Prototypen ein sehr kurzer.

Außerdem werden alle nativen Features entweder von React Native selbst oder von Drittanbieter-Modulen unterstützt. Für beliebte Funktionen sind diese Integrationen wirklich gut, nicht zuletzt weil sie nutzerorientiert von Mitarbeitern großer Unternehmen wie Airbnb betreut werden. Viele Anwendungen können sogar komplett ohne Fremdmodule entwickelt werden. Dann ist es nicht mal mehr notwendig die SDKs von Android und iOS zu installieren.

Möchte man zu der App noch eine Webanwendung umsetzen, dann gibt es sogar die Möglichkeit, gesamte Blöcke einer Anwendung gemeinsam zu entwickeln. Bibliotheken wie Apollo für GraphQL bieten eine gemeinsame API für Anwendungen in React und React Native. Somit müssen manche missionskritische Bereiche wie Datenübertragung nur einmal implementiert und getestet werden.

Luft nach oben? Ist vorhanden!

Trotz aller Vorteile ist nicht alles Gold, was glänzt. So gibt es für React Native sehr häufig neue, große Releases. Dies führt dazu, dass oft Anpassungen im Code vorgenommen und für manche Features spezielle Versionen von Modulen verwendet werden müssen. Das macht Upgrades zu einem langwierigen Prozess, zudem kann die jeweils aktuelle Version während des Updates teilweise nicht genutzt werden. Dazu kommt, dass man parallel alle Bibliotheken von iOS und Android im Auge behalten muss, um Funktionalität zu gewährleisten. Hier ist ein aktives Verfolgen der Szene gefragt.

Unser Fazit: Die konzeptionelle Abkehr von eingebetteten Webseiten als nativer App-Ersatz hat sich gelohnt. React Native ist sicher nicht für jedes Projekt die richtige Wahl. Aber - wenn alle Voraussetzungen erfüllt - bietet es eine gute Möglichkeit, qualitativ hochwertige Anwendungen in kürzester Zeit zu entwickeln. Und zwar für iOS und Android - das alleine ist Mehrwert genug und Grund, warum wir bei Candylabs intensiv mit React Native entwickeln.

Fragen zu React Native?

Schreib uns eine Nachricht!

Ihre Nachricht ist auf dem Weg zu uns!

Vielen Dank dafür. Wir melden uns schnellstmöglich bei Ihnen.

Vielen Dank für Ihre Anmeldung!

Bitte bestätigen Sie dazu noch Ihre E-Mail-Adresse in der Bestätigungs-Mail, welche Sie in Kürze erhalten.