top of page
Hintergrund

React Native – das “Seamless Cross-Platform” Framework

React Native ist ein Open-Source-Framework zur Entwicklung mobiler Anwendungen, mit dem Apps für die Plattformen Android und iOS erstellt werden können. Bei „hybriden“ Frameworks stellt sich aber auch immer die Frage, ob und bis zu welchem Grad sie dieses Versprechen halten können…

React Native – das “Seamless Cross-Platform” Framework

Freitag, 23. Juni 2023

Thomas Görldt und Ralf Siewert, zwei sehr erfahrene SW-Profis, Gründer der Actyvyst GmbH und Entwickler der actyvyst GO Anwendung, geben einen tieferen Einblick in ihre Arbeit mit React Native. Sie erklären, ob React Native in ihren Augen den Cross-Plattform-Anspruch erfüllt, was die Developer-Community um React Native ausmacht und wie man den ein oder anderen Stolperstein umgehen kann.

Transkript

Ashley: Willkommen zur nächsten Ausgabe der Taktsoft Campus Podcast der Podcast für Software und IT Professionals. Schön, dass er wieder dabei seid. Mein Name ist Ashley Steele. Heute habe ich zwei sehr erfahrene IT Profis bei mir Thomas Görldt und Ralf Siewert. Beide sind Fullstack Developer und deren Skills decken Technologien von iOS, Swift, Objective C bis hin zu React und React Native hin. Sie sind Gründer der Acyvyst GmbH und mit Actyvyst haben die eine Reise App entwickelt, die Reisende Informationen Buchung zu bestimmten Orten ermöglichen. Heute wollen wir in das Thema React Native einsteigen. Ich freue mich auf. Das Gespräch und. Hallo, Thomas. Hallo, Ralf. 
Thomas: Hallo, Ashley. 
Ralf: Hallo, Ashley. 
Ashley: Hi. Ich hoffe, dass es euch gut geht heute. 
Thomas: Ja, wir sind halbwegs ausgeschlafen und fit. Ja, soweit. 
Ashley: Perfect. Perfect? Ja, wir haben das Theme heute. React Native. Das ist das Thema, was wir heute widmen wollen. Aber zum Anfang Ich habe mal so eine einfache Frage. Ich höre immer von React und ich höre von React Native. Was ist dann eigentlich der Unterschied zwischen den beiden? Oder sind die beiden gleich? Könnt ihr dazu ein bisschen was erzählen? 
Ralf: Ja gerne. React ist ja ein JavaScript Framework fürs Web, was HTML produziert letztendlich. Und es heißt, weil es reaktiv ist. Das heißt, es funktioniert so Du hast einen Status, du hast Variablen, die ändern sich. Ein Zustand hast du, der wird runter geschickt in so eine Komponenten Hierarchie. Und diese Komponenten wiederum haben eine Markup Sprache, die letztendlich ins in HTML übersetzt wird, also ins DOM. Das heißt bei React, denn das Virtual Dom und das letztendlich beschreibt, was dargestellt werden soll und React native ist ein JavaScript Framework für Native, für native Apps, für mobile Applikationen, also für iOS und Android. Und es funktioniert. Genauso ist auch die gleiche React Codebasis, nur eben, dass es gibt kein Virtual Dom, weil es ja kein Dom gibt. Es wird nicht. Es wird nicht HTML Seite manipuliert am Ende, sondern es wird. Es werden native Komponenten angesprochen, also native Steuerelemente aus aus Android und das iOS. Und das ist eigentlich der Unterschied. 
Thomas: Genau. Also das wo was im ragt oder das Dom ist, ist dann indirekt native die nativen Komponenten und es gibt da eben Module in Rec Native, die dann auf die nativen Komponenten gemappt sind, sozusagen also die, die ansprechen, mit denen man die steuern kann. 
Ashley: Und ihr habt dann Aktivist als Mobile App gebaut und ich habe dann, ich sag mal so, bewusste Entscheidung getroffen, React Native zu nutzen, um um das zu bauen. Wenn ich das richtig verstanden habe, was waren dann die? Die Beweggründe dann wirklich zu sagen okay, ich mach das mit Native und nicht mit irgendeiner anderen Plattform, die zur Verfügung steht. 
Thomas: Also zuerst mal war für uns wichtig für das Produkt, dass wir, was wir betreiben, dass wir beide Plattformen beliefern können. Das war extrem wichtig und das möglichst mit möglichst geringem Aufwand. Also das, dass man eben den Code für die mobile Applikation möglichst einfach auf beide Plattformen verteilen kann. Und wir waren am Anfang, also ich besonders war da am Anfang relativ skeptisch, weil wir so erste Versuche auch schon mal hatten in unserer gemeinsamen Vergangenheit, bei einer bei Pixel damals und da haben wir so die ersten, das war vor elf Jahren, mittlerweile 2010, da haben wir so die ersten Cross Platform Frameworks benutzt, die, die es damals gab. Titanium Accelerator war das damals und das war eine ziemlich schreckliche Erfahrung, weil ja das Ding selber die Plattform selber, das Framework hat sich im Prinzip wochenweise wurde das aktualisiert. Es gab Versionen, die gar nicht funktioniert haben und das war ehrlich gesagt ein einziger Horror, damit zu arbeiten so, aber es war halt vermeintlich eine Möglichkeit, das Ganze schneller hinzukriegen als als damals Objective C zu lernen und damit dann aber auch nur eine Plattform bedienen zu können. Insofern war ich da ein bisschen skeptisch. Aber dann haben wir so unsere ersten. Versuche damit gemacht und sind dabei geblieben und sind absolut überzeugt.Ja. 
Ralf: ja, es gibt noch ein paar. Es gibt ja verschiedene Cross Platform Lösungen. Also noch ein paar Punkte, die für Ihr Projekt sprechen. Also das, neben dem das natürlich beide Plattformen unterstützt. Hast du die Nähe zu von zwischen den Race Native und. Und das heißt, was du fürs Web machst, ist sehr ähnlich. Es ist nicht kein Code Sharing, aber es ist sehr ähnlich. Du kommst. Es ist das gleiche Prinzip. Es ist JavaScript. Wir benutzen auch im Backend JavaScript. Das heißt, wir haben im Grunde. Wir haben keine Inseln. Also es gibt keine Technologie, die nur einer kann, sondern es ist eigentlich alles basiert auf auf JavaScript und es ist recht. Es ist, glaube ich, das populärste Framework. Das ist ja auch immer so ein bisschen Thema. Wie ist die Zukunftssicherheit? Es ist davon auszugehen, dass es das in fünf Jahren auch noch gibt. Und da stehen die Chancen für React ganz gut. Die Community ist riesig und aktiv. Ja, das waren glaube ich so die die Gründe. Und vielleicht noch ein ein Punkt, was diese Cross Platform Sachen ja immer haben. Die gehen ja nur bis zu einem gewissen Punkt und es gibt dann immer wieder irgendwelche exotischen Probleme, wo man dann doch mal. Nativ was auf iOS machen muss, was es nur auf iOS gibt oder. Oder auf Android. Und das ist native möglich. Es ist nicht nicht wahnsinnig einfach, aber es ist möglich. Das heißt du bist. Du begrenzt dich nicht durch das. Durch das Framework. 
Ashley: Ja, Thomas, du hattest mal gesagt, in der Vergangenheit, es ist nur ein bisschen skeptisch, was zum Thema Cross Platform. Ich höre immer wieder dieses Wort Kos Platform und frag mich okay, ist das ein Buzzword oder ist das wirklich Cost platform, dass hinterher man wirklich einen Lauf Weges Anwendung sowohl auf iOS als auch auf Android hat? Wie gesagt ist es ein Buzzword oder oder funktioniert wirklich als Cross Platform Ansatz. 
Thomas: Also es funktioniert wirklich als Cross Platform Ansatz. Das kann man schon so sagen. Das hängt so ein bisschen von der Komplexität der Applikationen ab, die man da so baut. Was der Ralf eben auch schon so kurz erwähnt hat, ist, dass aber das der große Vorteil ist alles, was ich eben nicht wirklich pur mit React Native bauen kann, kann ich dann immer noch. Kann ich mir dann immer noch für die jeweilige Plattform dazu bauen. Und insofern funktioniert das tatsächlich voll cross Plattform mäßig. Also vorausgesetzt, man ist dann in der Lage, diese fehlenden Funktionalitäten für die jeweilige Plattform auch nativ zu entwickeln, sodass das ist so, dass der einzige Bottle Neck, würde ich dabei sagen, aber im Grunde ist es ja Cross Platform. Ja. 
Ashley: Für eine klare Antwort auf die Frage Ihr Ralf Wollte sie noch was dazu sagen? 
Ralf: Ja, wir betonen jetzt so ein bisschen diese Unterschiede und die, die die Dinge, die man dann vielleicht nicht damit machen kann, aber es ist Prozentual gesehen. Ich weiß nicht, Thomas, was würde man sagen? 95 % Features sind in Race Native. Das ist jetzt. Was wir zuletzt hatten, sind Einbindung von Payment Modulen, die dann eben nativ vorliegen. Da muss man dann nativ eingreifen. Aber ich sage mal so eine STANDARD App kriegt man ausschließlich mit React Native hin. 
Ashley: Und das Thema ist ui, wenn man wirklich diese Benutzeroberfläche entwickelt, passt das auch oder muss man das dann auch nativ machen zwischen zwischen iOS und Android? 
Thomas: Das passt für viele Elemente in der Regel out of the box. Ähm, es gibt so ein paar, klar, so ein paar Elemente, wo man, wo man dann vielleicht noch hier oder anders ein bisschen stiehlt. Aber ansonsten, so grundsätzlich sind die alle für beide Plattformen verfügbar. Ja. 
Ashley: Ja, super, super. Bevor wir in das Thema Community einsteigen Das hattest du, glaube ich, vorhin erwähnt. Gibt es denn irgendwelche Performance Auswirkungen? Ich sag mal so, wenn ich dann ein Schicht zwischen ich sage mal so meine Anwendungen Betriebssystem habe, weil sie sich get recht auf das Betriebssystem das nativ benutze, gibt es dann irgendwelche Performance Einbuße wenn man native benutzt? 
Ralf: Also keine würde ich sagen, keine relevanten, die wir zumindest entdecken. Ich würde jetzt wahrscheinlich keine Spiele mit mit machen oder mit Race Native machen. Das wird man wahrscheinlich ja mit mit mit spezialisierten Plattformen wie Unity oder so was machen. Aber für alles, für alles andere haben wir keine keine Performance Nachteile wahrgenommen. Das ist ja, es ist ja nicht so, dass es das ist. Das ist eine Web Technologie ist die in dem Web View läuft oder so, sondern es spricht ja direkt native Komponenten an, die eben von JavaScript aus gesteuert werden. Also da ist was nicht Thomas, aber da, da gibt es eigentlich nichts. Nicht die Performance ausbremst? 
Thomas: Nein, eigentlich nicht. Es gibt so ein paar. Also wenn man, wenn man irgendwie ausgefeiltere Animationen zum Beispiel benutzt, so was weiß ich, irgendwie Bewegungen, blenden und so was gibt es von React aus oder von der von den jeweiligen Komponenten aus immer die Möglichkeit, da für native Treiber zu benutzen oder eben nicht native Treiber zu benutzen. Und das hängt so ein bisschen von der Fülle an Animationen auf, auf einem Screen ab sozusagen. Und wenn man nicht native Treiber benutzt, also im Prinzip die ganze Animations Berechnung dann native per JavaScript überlässt, dann kann man schon. Dann kann man das schon ausbremsen. Dann kann man schon Performance Einbußen sehen. Aber wie gesagt, ich glaube das habe ich jetzt selber in der Form auch noch nicht erlebt. Und das ist dann eher der Fall, wenn man tatsächlich dann irgendwie versucht, Spiele damit zu entwickeln oder so was. Das sollte man, glaube ich, nicht tun. Das macht nicht wirklich Sinn. 
Ashley: Verstehe, verstehe. Du hattest Ralf vorhin das Thema Community angesprochen. Wie groß und wie lebendig ist dann eine das Community um React Native? Ich sage mal so Wenn es Bugs gibt, wie schnell werden die Bugs behoben und behoben? Und du sagtest auch, dass es dann zukunftssicher. Ich glaube, das hattest du mal erwähnt, Thomas. So an zukunftssichere Technologie. Ja. Wie lebendig ist dann diese Community, um das wirklich zu. Zu zu leben? Bugfixes, Erweiterungen, Anpassungen an neuer Versionen des Betriebssystems, sei es iOS oder. Oder Android. Wie? Wie ist dann die Community um um React Native herum? 
Thomas: Also die Community ist riesig, so dass mal zum einen und extrem lebendig und und agil. Also ja Bugfixes selber irgendwie einzureichen bei React Native oder sowas oder Bug Requests oder Tickets irgendwie aufzumachen haben wir noch nie gemacht. Aber man sieht halt allein an den diversen issue boards, die es in den jeweiligen git plattformen der der community gibt, also der der jeweiligen modulen. Dann also es ist da muss man vielleicht zu sagen, es gibt, es gibt so eine React, eine offizielle React native Community, die dann auch bestimmte Komponenten rausgibt und es gibt diverse. Ich bin ja Zuarbeiter sozusagen, die halt ihre eigenen Packages erstellen, so wie wir das mit den Payment Modulen zum Beispiel auch gemacht haben. Und da ist und dann gibt es auch noch mal, ich glaube, das ist so, das wird so ein bisschen von der native Community irgendwie gekapselt, auch noch mal so ein bisschen die die Verbindung von von diesen vereinzelten plus plus Dinge, die über die native Community selber rausgegeben werden. 
Ralf: Ja, vielleicht für den zweiten Teil der Frage so was wie schnell neue Versionen adaptiert werden, neue Betriebssystem Versionen. Also man braucht keine Angst zu haben. Also zumindest haben wir das bisher überhaupt noch nie erlebt, dass Apps, die man gebaut hat, irgendwie kaputtgehen oder nicht mehr funktionieren auf neuen Betriebssystemen. So was passiert eigentlich aus unserer Erfahrung gar nicht. Was natürlich schon ist, wenn es jetzt ganz neue Features in den Betriebssystemen, in der neuen iOS Version oder Android Version gibt, dann kann das ein bisschen dauern, bis die unterstützt werden. Also ein Beispiel werden jetzt App Clips sind im letzten Jahr irgendwie rausgekommen bei bei iOS. Das sind so quasi Mini Apps die man nicht installieren muss um so sofort da zu sein. Schon mal mit mit mit Content. Dafür gibt es noch keine Unterstützung. Man kann warten auf die Unterstützung. Die wird mit Sicherheit mit Sicherheit kommen. Oder man müsste dann, wenn man es unbedingt braucht, hätte man immer noch die Möglichkeit, was wir am Anfang gesagt haben, eben nativ auszuscheren und den Part dann nativ zu schreiben. 
Ashley: Und das heißt das Theme rückwärts Kompatibilität gibt es dann eigentlich nicht oder gibt es keine Probleme mit Kompatibilität? Das ist das, was ich gerade rausgehört habe von der Toleranz. 
Ralf: Wir haben das noch. Wir haben das in der Tat noch nie erlebt. Ähm. 
Ashley: Ja. Super. Und ist ja knietief, dann Open Source. Ich habe es verstanden. Das ist Open Source. Und dass es ursprünglich von Facebook kam. 
Ralf: Ja, das ist. Das ist Open Source und inzwischen auch mit Lizenz, was so die STANDARD Lizenz ist. Also man kann einfach alles damit machen. Es war glaube ich lange ein Thema. Ich glaube, bis vor zwei oder drei Jahren hatte hatte Facebook noch mal eine eigene Special Lizenz, die wohl ihre Tücken hatte. Ich weiß auch, dass einige Firmen dann deswegen auch davon Abstand genommen haben. Das ist aber vor zwei, drei Jahren geändert worden. Es sind ganz normale MIT Lizenz. Man kann damit machen, was man will. Ist Da gibt es keine Fallstricke. 
Ashley: Schön. Ähm, ich sag mal so, bis jetzt habt ihr, ich sage mal so ein ein sehr positives Bild, ein schönes Bild von ein wahres Bild, natürlich auch von vom Faktor Native Mal dargestellt. 
Ralf: Wir sind nicht von Facebook. 
Ashley: Da gibt es dann irgendwelche pitfuls. Ich sage mal so, es gibt eine lebendige Community, es gibt immer neue Libraries. Gibt es dann irgendwelche pitfuls, wo es sagt Oh, da muss ich mal ein bisschen aufpassen, nicht in irgendwelche Problembereiche rein zu laufen. 
Thomas: Ja, also die Lebendigkeit und und die vielen Libraries, dass das bringt. Oder die vielen Möglichkeiten. Sagen wir mal so, das bringt natürlich auch mit sich, dass sich da auch viel Aktualisierung und Veränderung tut und da ist, also da sollte man einfach den Anschluss nicht verlieren. Man sollte schon irgendwie auf dem Schirm haben, was man, was man so in seinen, in seinen Apps untergebracht hat, an Packages und die entsprechenden Abhängigkeiten pflegen und und auf auf dem neuesten Stand halten, wenn möglich also gerade so ähm ja also React native selber. Also das das Package von React Native selber, was man einklinkt in der Entwicklung, das geht auch ständig, unterliegt auch ständigem wandel und versions updates sollte man da nicht verschlafen? Also wenn man wenn man so ein major update irgendwie verpasst, dann tut das weh, wenn man wenn man einen übersprungen neue Version irgendwie wieder einholen möchte. Das ist dann recht anstrengend. 
Ashley: Das heißt wirklich schauen was passiert in der Community, welche Versionen gibt es dann wirklich ein Auge drauf haben, dass man eher den Anschluss nicht verliert, wenn ich das so so mal ausgenommen darf. Ja gut, gut. Gehen wir dann davon aus, dass ein Entwickler entscheidet und sagt Okay, React Native hört sich gut an, ich will da einsteigen. Gibt es dann irgendwelche Tipps? Was tut der Entwickler als erstes? Wo geht er hin? Du hattest diese React Community mal angesprochen. Braucht der Entwickler eben eine besondere Entwicklungsumgebung oder es ist relativ einfach für jemanden da einzusteigen. 
Thomas: Das ist relativ einfaches. Kommt ein bisschen drauf an, was man machen möchte. Also wenn man halt beide Plattformen von Anfang an bedienen möchte, braucht man auf jeden Fall einen Mac, weil also für die klassische React native Variante. Mac mit mit den entsprechenden Entwicklungsumgebung für die nativen Plattformen auch X Code für iOS und Android, Studio für für Android. Die bringen ihre Emulatoren mit. Insofern ist das zum Ausprobieren schon mal ein ganz gutes Setup, wenn man sich nur auf Android beschränken möchte, was man auch kann. Man muss ja nicht. Muss ja nicht Cross Plattform liefern oder entwickeln. Dann geht das auch unter Windows. Also dann sind alle Komponenten, die man braucht, auch unter Windows verfügbar. 
Ashley: Hm. Hm. Und Ralf, für deine Erfahrung, das alles mal aufzusetzen, ist es dann? Ist es dann einfach zu tun? 
Ralf: Ja, das ist nicht schwierig, aber das sind natürlich schon ganz schöne Boliden. Also dieses XCOM und Android Studio. Man, da muss man schon ein paar Stunden paar Stunden Setup investieren. Es gibt Alex. Thomas hat gesagt, das ist die klassische Variante. Es gibt schon ein interessantes Tool, das wird auch mittlerweile von Rick Natives selber als Setup empfohlen, das heißt Expo. Also das eigentlich, wenn man das das Start up von React. Wenn man auf die native Seite geht und nachschaut, wie fange ich an? Dann wird das sogar als hier Default Weg empfohlen. Und Expo kapselt das so ein bisschen weg. Das heißt, wenn du damit arbeitest, brauchst du die. Brauchst du zum Beispiel die Entwicklungsumgebung, die nativen Entwicklungsumgebung nicht. Da reicht es einfach, wenn du Not hast und dann kannst es schon auf deinem Telefon laufen lassen. Wenn du die Emulatoren haben willst, musst du auch, musst du auch Export oder Android Studio entwickeln. Damit kann man es ist ein bisschen Open United, dieses dieses Expo. Da sind halt verschiedene Module schon mit drin. Man kann aber auch keine eigenen mehr dazu packen oder so, aber es ist für für den Start und um reinzuschnuppern ist es super. Damit würde ich anfangen. Und dann kann man sozusagen, wenn man, wenn man weiß, man bleibt dabei, kann man sich dann die die nativen Umgebungen. 
Ashley: Das ist auf jeden Fall einen guten Tipp von den Entwickler. Und dann, wenn ich fragen würde, okay, die Top zwei Websites, wo man dann hingeht, um wirklich, ich sage mal so das Hello World von React Native Ma zu bekommen. Gibt es dann irgendwelche, ich sag mal so Top Hits von von eurer Seite aus wo es sieht Jo da, wenn man da hingeht, kriegt man auf jeden Fall die richtige Tipps, Dokumentation und vielleicht Module, wo man damit es erste Schritte machen kann. 
Thomas: Ja, das ist auf jeden Fall recht native dort net nicht dort, dort net dort. Def heißt das Native und das ist ein super Startpunkt. Also von da aus kann man eigentlich immer ganz gut anfangen. Und sie sagen. 
Ashley: Schön, schön, was ich so mitgenommen habe aus dem Gespräch. Ja, vielen Dank nochmal für euch beide, für die, für die tolle Information. Ich sage mal so das Thema Cross Plattform, das ist wirklich Plattform, dass man auch keine Einbuße in Richtung Performance mitnehmen muss und dass auf jeden Fall diese Community lebendig ist. Das heißt auch, was du sagtest, Thomas Ein bisschen im Sinne von zukunftssicher, aber mit der Warnung sozusagen bleibt wirklich dran und und und verpassen keine Updates, sonst gibt es dann vielleicht doch Probleme. Gibt es irgendwelche anschließender Anekdoten von euch? So schöne Sachen, die ich erlebt habe bei Native oder schlechte Sachen, die er erlebt habt? 
Thomas: Ähm, schöne Sachen. Also was wirklich super ist es das also dadurch, dass wir, wie wir beide jetzt als Entwickler, wir fokussieren uns so ein bisschen Ralf eher so in die Backend Richtung und ich eher so in die Frontend Richtung. Aber dadurch, dass wir eben ein eine Sprache benutzen, javascript eben und also ist dass es das super. Also wir können uns halt einfach prima austauschen über die Dinge, die wir machen und haben mehr oder weniger ad hoc immer auch ein Verständnis von dem, was der andere gerade tut. Und das ist das ist großartig. Also das ist auf jeden Fall ein großer Vorteil dieser, dieses, dieses Universums, was wir da benutzen. So. 
Ashley: Ich höre, ihr seid ein gut eingespieltes Team. Das ist alles, was ich aus den letzten Satz da rausgenommen habe. Ralf Thomas Ich bedanke mich recht herzlich für das Gespräch. Das war super informativ, vielen, vielen herzlichen Dank und ich würde mal sagen bis die Tage mal! 
Thomas: Ja, sehr gerne. Bis dann. Ciao. 
Ashley: Danke dir, Ashley. Bis dann. 
Ashley: Taktsoft Campus Podcast. Der Podcast für Software und IT Professionals Im Taktsoft Campus Podcast beschäftigen wir uns mit einem breiten Themenspektrum, um euch zu helfen. Praxisfragen zu Technologie, aber genauso Fragen zur Umsetzung, Prozessen oder Projektorganisation. Danke, dass ihr dabei wart. Euer Taktsoft Campus Podcast Team!
bottom of page