React Native: Eine junge Technologie unter die Lupe genommen

Wie der Name bereits ausdrückt, handelt es sich hierbei um die React-Technologie für native App-Entwicklung. Aber was ist die React-Technologie?

Wien (OTS) - In unserem letzten Eintrag zum Thema Cross-Plattform-Development hatten wir einen Blick auf Xamarin geworfen und festgestellt, dass diese Technologie durchaus das Mittel der Wahl sein kann, wenn ein Unternehmen bereits C# beziehungsweise .NET Entwickler hat. Diese Woche wagen wir uns einen Schritt weiter und betrachten eine noch sehr junge Technologie, die für Unternehmen mit Web-Entwicklern, oder exakter JavaScript Entwicklern, interessant ist: React Native. Wie der Name bereits ausdrückt, handelt es sich hierbei um die React-Technologie für native App-Entwicklung. Aber was ist die React-Technologie?

React stammt von Facebook und ist selbst gar nicht so neu: Bereits seit 2011 von Facebook in Verwendung, wurde die Technologie erst 2013 der breiten Öffentlichkeit zur Verfügung gestellt. Dahinter verbirgt sich ein Ansatz, um speziell bei großen Web-Applikationen Skalierbarkeit zu gewährleisten. Oder salopp formuliert: Ein Ansatz der verhindern soll, dass Entwickler bei großen Projekten den Überblick verlieren und dadurch Bugs und Inkonsistenzen in Applikationen entstehen.

Geschichtliches

Das World Wide Web (WWW) entstand zur Anzeige von nicht-nur-text-Dokumenten (Hypertext-Dokumenten) und war anfangs zur Betrachtung und Navigation von statischen Inhalten gedacht. Erst nach und nach wurden Web-Seiten dynamischer, und spätestens seit dem Begriff Web 2.0 sprach man sogar von Web-Applikationen. Plötzlich war es möglich, als Unternehmen auf der eigenen Kontakt-Seite einen Karten-Ausschnitt von Google Maps einzubinden, ohne sich selbst über dieses Karten-Material beziehungsweise der Aktualität desselben Gedanken machen zu müssen. Und solange es um die Einbindung einzelner, in sich abgeschlossener Inhalte wie einem Karten-Ausschnitt ging, war das für Web-Entwickler überschaubar und vor allem auch wartbar.

Auch Facebook startete mit dieser Art von dynamischen Inhalten. Doch das schnelle Wachstum, sei es durch Eigenentwicklungen oder durch Zukäufe, machten den Entwicklern zunehmend Probleme: Die Webseite bestand nun nicht mehr nur aus einem Nachrichten-Feed, sondern parallel dazu einem Feed von Werbungen, Live-Anzeige von neuen Freundes-Anfragen und zu guter Letzt natürlich auch dem Messenger mit vielen parallelen Chats – alles auf ein und derselben Webseite. Und so kam es, dass die Facebook-Entwickler immer wieder mit Bugs zu kämpfen hatten, die alle dieselbe Ursache hatten: Die vielen Einzel-Komponenten innerhalb der Webseite selbst kamen sich in die Quere. So gab es zum Beispiel immer wieder Fehler bei der Anzeige für neue/ungelesene Chat-Mitteilungen: Bei vielen parallelen Chats kam es dazu, dass die Anzahl der ungelesenen Mitteilungen schlicht falsch war, da diese Anzeigen nicht vollautomatisch auf jede mögliche einzutretende Eventualität reagieren konnten.

React zur Lösung

Um dieses Problem in den Griff zu bekommen, wurden die einzelnen Komponenten der Webseite stärker isoliert und die Kommunikation untereinander standardisiert. Bekam nun ein Chat-Fenster eine neue Nachricht, so aktualisierte dieses nicht mehr selbst die Anzahl an neuen/ungelesenen Mitteilungen, sondern gab nur mehr die Informationen weiter, dass es eine neue Nachricht gab beziehungsweise eine gelesen wurde. Die Anzeige für die Anzahl neuer/ungelesener Mitteilungen selbst wurde als eigene Komponente, ohne tatsächlicher Business-Logik entwickelt: Die eigentlichen Daten zur Anzahl werden applikationsweit gespeichert und bei einem Ungelesen-Event erhöht respektive bei einem Gelesen-Event dekrementiert. Die Komponente reagiert somit nur mehr auf Änderungen dieser Daten, des sogenannten States, sie ist reactive.

React erlaubt es also, die Kontrolle über viele parallele Abläufe auf einer Webseite zu behalten indem sich einzelne Komponenten einer Web-Applikation nicht mehr direkt beeinflussen, sondern in sich gekapselt sind und auf Veränderungen des applikationsweiten oder übergeordneten States über standardisierte Nachrichten automatisch reagieren. 

React Native

Nach der Veröffentlichung von React, erlebte diese Technologie sehr viel Zuspruch seitens der Web-Entwickler und auch Facebook intensivierte weiterhin die Arbeit daran. Und nachdem Facebook immer schon danach getrachtet hatte, Web-Technologien ebenso für mobile Entwicklung einzusetzen, kam es zu dem Vorhaben, auf Basis der React-Technologie native Applikationen zu entwickeln.

Der Ansatz dahinter ist derselbe wie im Web: Die einzelnen nativen Interface-Komponenten wie beispielsweise ein Text-Feld, ein Button oder ein Listen-Eintrag werden als Komponenten entwickelt und reagieren auf Veränderungen. Das geht soweit, dass die Programmierung selbst in derselben Art erfolgt wie React-Web-Applikationen: in Javascript (und noch einigen anderen Technologien, auf die wir eventuell in einem anderen Blog-Beitrag näher eingehen werden).

So wie mit Xamarin auch, können nun iOS- und Android-Applikationen mit derselben Technologie entwickelt werden und dabei den exakt selben Code für das Ansprechen von Schnittstellen bzw. das lokale Speichern von Daten verwenden. Das User-Interface selbst kann zu einem Teil ebenfalls gleich aufgebaut sein – wenngleich dies nicht zwingend erstrebenswert ist, da Nutzer an die Eigenheit einer Plattform wie iOS oder Android gewöhnt sind und es daher für native Applikationen durchaus sinnvoll ist, ein eigenes Interface pro Plattform zu realisieren.

Wie „reif“ ist React Native?  

React Native wurde erstmals 2015 von Facebook veröffentlicht, zunächst nur für iOS und nach dem Sommer schließlich auch für Android. Der gesamte Technologie-Stack ist daher noch sehr jung und leidet daher auch an denselben Problemen, wie alle jungen Technologien: Zum einen gibt es noch eine ganze Reihe an kleineren und größeren Fehlern, zum anderen gibt es noch nicht sehr viel Wiederverwendbares von der Community. Daraus ergibt sich, dass die Vorteile von Cross-Plattform-Entwicklung für React Native derzeit noch nicht voll zur Geltung kommen. Es gibt aber bereits eine Fülle kleinerer Applikationen, die bereits mit React Native entwickelt und veröffentlicht wurden.

In jedem Fall lohnt es sich, die Entwicklung weiter zu verfolgen. Auch wenn es heute noch zu früh ist, komplexe Applikationen mit React Native zu erstellen, so ist anzunehmen, dass sich dies innerhalb der nächsten Monate stetig verbessert und die Community entsprechend mitwächst. Die jährlich stattfindenden, von Facebook gehosteten React Konferenzen können hierfür einen guten Einblick zum aktuellen Status-Quo bieten.

aaa Blog
Aktuelle Mobile News
Hier geht's lang!

Rückfragen & Kontakt:

aaa - all about apps GmbH
Mihaela Stipic
Public Relations
+43 1 547 12 73
mihaela.stipic@allaboutapps.at
https://www.allaboutapps.at

APA-OTS-ORIGINALTEXT PRESSEAUSSENDUNG UNTER AUSSCHLIESSLICHER INHALTLICHER VERANTWORTUNG DES AUSSENDERS - WWW.IT-PRESS.AT | AAA0002