Cross-Platform-Development mit React-Native

Autor: Christoph Klinar

verschiedene mobile devices, verschiedenster Größen, wie z. B. Tablets und Smartphones

Um eine mobile Applikation der breiten Masse zugänglich zu machen, muss sie sowohl auf Android-Geräten als auch auf iPhones funktionieren. Die herkömmlichen Ansätze zur Entwicklung mobiler Anwendungen von Google und Apple unterscheiden sich in vielen Aspekten wie zum Beispiel Programmiersprache, Tools und APIs, sodass zwei getrennte Applikationen entwickelt werden müssen – auch native Entwicklung genannt.

Es liegt also nahe, die Anwendung plattformübergreifend zu entwickeln. Dieser Vorgang nennt sich Cross-Platform-Development und minimiert den Aufwand, da nur mehr eine Anwendung entwickelt wird, welche sowohl auf Android als auch auf iOs funktioniert.

Die entscheidenden Vorteile von Cross-Platform-Development:

  • Code-Reusability:
    Die einfache Wiederverwendbarkeit von Code ist einer der größten Vorteile, die die Entwicklung von Hybridanwendungen bietet. Ein einziger Code kann für mehrere Plattformen verwendet werden. Es ist also nur halb so aufwendig und zeitaufwendig wie die native Entwicklung von Anwendungen.
  • Cost-Effectiveness:
    Es bietet relativ geringere Entwicklungskosten im Vergleich zur nativen Anwendungsentwicklung, da der Code einmal geschrieben und für beide (oder mehrere) Plattformen verwendet wird.
  • Consistency in UI-Components:
    Plattformübergreifende Anwendungen bieten ein angemessenes Maß an Konsistenz in den nativen UI-Komponenten des Geräts. Das Aussehen und die Bedienung sind einheitlich.
  • Weniger technische Barrieren:
    Entwickler stoßen auf weniger technische Barrieren, da es nicht notwendig ist, bestimmte Sprachen wie Objective-C oder Swift zu lernen.
  • Kürzere Zeit bis zur Markteinführung:
    Die Cross-Platform-Apps bieten eine kürzere Markteinführungszeit.

React-Native

Ein populäres Open-Source-Framework für die plattformübergreifende Entwicklung von Android-, iOS-, Web- und UWP-Anwendung ist React-Native:

React-Native wurde 2015 von Facebook als Open-Source-Projekt vorgestellt und ermöglicht die Entwicklung von Anwendungen mittels React. React-Native erzeugt Code, der die nativen Elemente von den jeweiligen Betriebssystemen benutzt und deshalb in der Performance fast genauso schnell ist wie die nativen Applikationen selbst.

React Native liefert eine solide Alternative gegenüber der Entwicklung von Nativen Applikationen. Vor allem bei der Erstellung von Applikationen, die nur Basisfunktionen (GPS, Kamera, Benachrichtigungen, …) benutzen, ist eine React-Native Applikation meist schneller entwickelt. Bei komplexeren Applikationen wie AR oder Spielen, ist man mit Nativen Applikationen besser beraten.

Vorteile von React-Native

Programmiersprache

Es verwendet eine sehr beliebte und weit verbreitete Sprache – JavaScript. Auch die Verwendung von TypeScript ist möglich.

Community

React Native hat eine riesige Entwicklergemeinde. Zusätzlich gibt es unzählige Tutorials, Bibliotheken und UI-Frameworks, die es leicht machen, die Technologie zu erlernen – und auch schnell und einfach damit zu entwickeln.

React-Native Expo

Ein React-Native-Framework das den Zugang zu nativen APIs vereinfacht – es verfügt über fertige Lösungen für typische mobile Funktionen (z.B. Push-Benachrichtigungen).

Leicht zu lernen für Web Entwickler

Web Entwickler welche bereits Erfahrung mit React haben fällt der Einstieg in die Entwicklung mit React-Native relativ leicht. Es können sehr viele gleiche oder ähnliche Bibliotheken, Werkzeuge und Tools verwendet werden.

Integration in Native-Applikationen

Einer der großen Vorteile von React-Native ist die Möglichkeit, es in bereits entwickelte Native-Anwendungen zu integrieren. Dies ermöglicht die Weiterverwendung der bisher entwickelten Anwendungen in Kombination mit Erweiterungen, welche mit React-Native umgesetzt wurden.

Nachteile von React-Native

Anwendungsgröße

Anwendungen, die in React Native geschrieben wurden, müssen Javascript-Code ausführen können (JavaScript Virtual Machine). Android verfügt nicht standardmäßig über diese Funktionalität – das bedeutet, dass Anwendungen eine Bibliothek enthalten müssen, die JavaScript-Code unterstützt, was zu Anwendungen führt, die größer sind als ihre nativen Android-Pendants. iOS-Anwendungen, die mit React Native erstellt wurden, haben dieses Problem nicht, aber sie sind trotzdem normalerweise größer als die nativen Anwendungen.Allerdings arbeitet das React Native-Team daran, die Größe der Anwendungen zu reduzieren.

Nicht wirklich Native-Performance

Wie bei jeder plattformübergreifenden Lösung werden weder die UI-Experience noch die Leistung die gleiche sein wie bei nativen Anwendungen – nur eben ähnlich.

Populäre Apps welche React-Native verwenden

Instagram, Facebook, Skype, Tesla, Wix, Uber Easts, Bloomberg