Cross-Platform Apps mit React Native: Vor- und Nachteile
Drei Jahre ist es jetzt her, dass React Native zum ersten Mal der Öffentlichkeit vorgestellt wurde. Während die Entwickler Community besonders im letzten Jahr exponentiell gewachsen ist, erwägen immer mehr Unternehmen die Nutzung des Frameworks, um ihre internen App Entwicklungsprozesse zu vereinheitlichen und doppelte Strukturen, die durch die Pflege von iOS und Android entstehen, abzubauen. In diesem Blog Eintrag möchten wir euch einen möglichst objektiven Überblick über die Chancen und Risiken eines solchen Schritts geben.
Schwächen
Starten wir mit den schlechten Nachrichten. Drei Jahre sind sicherlich eine lange Zeit, in Technologie-Lifecycles gesprochen allerdings immer noch Kinderstube. Zwar gibt es mittlerweile für fast jeden Use Case Libraries in React Native, mit denen sich arbeiten lässt. Bei vielen Libraries fehlt es aber noch an der kritischen Masse an Maintainern und immer wieder gibt es Use Cases, die noch nicht zu 100% abgedeckt sind. Eine weitere Schwäche an React Native ist das Fehlen einer vollumfänglichen UI Library. App Projekte, die von vorneherein mit einem Custom Design und eigener Designsprache daher kommen, mag das nicht stören. Die ganz flinken Projekte, bei denen man einfach nur ein bisschen UI zusammenklicken möchte, um zum Beispiel eine interne App zu launchen, lassen sich mit React Native nicht umsetzen.
Stärken
React Native verfolgt das Ziel, den Aufwand für plattformspezifische Entwicklung zu reduzieren. Und das funktioniert mit React Native richtig gut. Für iOS und Android gibt es ein Repository, einen Entwicklungsprozess, dasselbe Entwickler-Team und dieselben Tools. Es liegt nahe, dass der Sourcecode für beide Plattformen so viel schneller erstellt werden kann. Aber nicht nur der Sourcecode der App, auch die ganzen Prozesse drumherum wie Code Reviews, Abnahmen, Projektmanagement und (in unserem Fall) Kundenkommunikation werden vereinfacht. Das spart Zeit und Kosten und Nerven.
React Native wird von Facebook getrieben, hat aber darüber hinaus eine große Community an Contributors. Diese Mischung stellt aus unserer Sicht die perfekte Kombination dar. Facebook selbst hat ein Interesse an einer Verbreitung und Verbesserung des Frameworks, auf der anderen Seite ist das Framework nicht zu sehr von der internen Roadmap bei Facebook abhängig. React im Allgemeinen ist im Aufwind, vergleichsweise einfach zu erlernen und - so unser Eindruck - bei Entwicklern beliebt, was das Thema Recruiting vereinfacht.
Das Tooling von React Native ist überraschend gut. Es kann zum Großteil auf den Simulatoren der Plattformen entwickelt werden und auch nicht-technische oder administrative Rollen wie Projektmanager und DevOps finden sich leicht zurecht.
Risiken
Solltet ihr bereits eine native App entwickelt haben und einen Umbau auf React Native in Erwägung ziehen, sollte euch bewusst sein, dass dies ein Rewrite der App bedeutet. Dies wird sich je nach Komplexität der App auf lange Sicht auszahlen, bedeutet aber eine hohe Anfangsinvestition.
Das Lizenzrisiko hat sich im Herbst letzten Jahres erledigt, als Facebook React Native unter MIT Open Source Lizenz gestellt hat. Diese am häufigsten verbreitete Open Source Lizenz erlaubt es, das Framework kostenlos zu nutzen, zu verändern und kommerziell zu nutzen. Dennoch besteht das Risiko, dass Facebook React Native nicht mehr weiter verfolgen könnte. Einige werden sich vielleicht noch an den Parse Incident erinnern. Hier muss allerdings erwähnt werden, dass React Native viel stärker als Parse von der Open Source Community getrieben ist, was in so einem Fall als Rettungsanker dienen könnte. Zudem hat Facebook mit React ein Framework geschaffen, dass sich mittlerweile nicht mehr aus der Webentwickler Welt wegdenken lässt. Eine Aufgabe dieser Frameworks ist aktuell extrem unwahrscheinlich.
Chancen
Das attraktivste Feature von React Native ist aus unserer Sicht die Entwicklung einer echten nativen App in einem Entwicklungsschritt für iOS und Android in einer Programmiersprache, die attraktiv ist (no offense an alle Xamarin Entwickler), sich rasant weiterentwickelt und auch im Web genutzt werden kann.
Haben wir dein Interesse für einer React Native App geweckt? Schreib uns eine E-Mail an hello@hybridheroes.de.