React Native App-Entwicklung: Eine Kurzanleitung

React-Native-Entwicklung

In this collection you'll learn

  • Ist React Native skalierbar, sicher und leistungsstark?
  • Was sind die Vor- und Nachteile?
  • Mit welchen Bibliotheken von Drittanbietern kann es kombiniert werden?
  • Welche bekannten Unternehmen verwenden React Native?
  • Wie schneidet React Native im Vergleich zu seinen Alternativen ab?

Einführung

React Native hat, wie jede andere Technologie, ihre Vor- und Nachteile. Es wird nicht für jedes Projekt eine perfekte Lösung sein.

Wie können Sie feststellen, ob es perfekt für Sie ist?

In diesem Handbuch helfen wir Ihnen bei der Untersuchung, indem wir Ihnen unsere folgenden Informationen zur Verfügung stellen:

  • positive und negative Lektionen,
  • beste Technologie-Stacks, die wir getestet haben,
  • Empfehlungen nützlicher Bibliotheken,
  • Vergleiche mit ähnlichen Technologien,
  • und mehr...

In diesem speziellen Artikel bieten wir Ihnen eine kompakte Version dieser Ergebnisse = alles, was Sie wissen müssen Die React Native-Entwicklung auf den Punkt gebracht.

Hinweis: Wenn Sie vor einer großen Entscheidung stehen, benötigen Sie Details, dessen sind wir uns vollkommen bewusst. Deshalb wird alles, was wir hier sagen, mit der Zeit verlängert.

Unser Ziel ist es, ein ganzes Handbuch über die Entwicklung von React Native-Apps zu erstellen.

Wenn Sie über bevorstehende Kapitel informiert werden möchten, ziehen Sie Folgendes in Betracht Abonnieren von Handbuch-Updates.

React Native-Entwicklung — Überblick

React Native ist ein Framework für die Entwicklung mobiler Apps Dadurch können Entwickler plattformübergreifende Android- und iOS-Apps mithilfe nativer Benutzeroberflächenelemente erstellen.

Es begann 2013 als internes Hackathon-Projekt von Facebook.

Das Ziel von Facebook war es, alle Vorteile der Webentwicklung, wie schnelle Iterationen und ein Team, das das gesamte Produkt entwickelt, auf Mobilgeräte zu übertragen.

Sie veröffentlichten die erste öffentliche Vorschau von React Native im Januar 2015 auf der Reactjs Conference. Das Framework ist seit 2015 auf GitHub verfügbar.

KAPITEL 1:

Leistung von React Native

Die Leistung der React Native-Apps ist niedriger als native Apps'.

Die Geschwindigkeit einer plattformübergreifenden App ist immer etwas langsamer als bei nativen Apps. In den meisten Fällen wirkt sich dies jedoch nicht auf die Benutzererfahrung aus. In den meisten Fällen sind die Unterschiede nicht wahrnehmbar.

Darüber hinaus hängt die Leistung stark von der Hardware-, Software- und Codequalität ab, da das JS auf der Client- und nicht auf der Serverseite ausgeführt wird.

Es gibt zwei Arten von Problemen, über die sich Entwickler beschweren:

  1. Größe der Anwendung — React Native verwendet zahlreiche APIs, Bibliotheken von Drittanbietern und native Komponenten. Der Vorteil ist die Beschleunigung der Entwicklung. Aber viele dieser Elemente machen die App schwer. Um die Größe einer App zu reduzieren, optimieren Sie native Bibliotheken, komprimieren Sie Bilder und konvertieren Sie JSON-Daten in statische Objekt-IDs.
  2. Speicherlecks — das passiert oft aufgrund vieler komplexer Prozesse im Hintergrund oder Warteschlangen auf der Bridge, insbesondere unter Android. Verwenden Sie Profiling-Tools in Android Studio oder Xcode, um den Speicherverbrauch während der Laufzeit zu verfolgen und die Ursache von Speicherlecks zu identifizieren.

Skalierbarkeit von React Native

Die Skalierbarkeit von React Native ist begrenzt und kann manchmal zu Problemen führen (mehr zu diesem Thema im nächsten Kapitel).

Zum Glück arbeitet das React Native-Team ständig an Verbesserungen, und neuere Versionen ermöglichen immer mehr, wie die Beispiele von Facebook, Instagram und Walmart weiter unten in diesem Artikel zeigen.

Die Skalierbarkeit Ihrer App ist jedoch nicht nur eine Frage von React Native selbst, sondern noch wichtiger. die Architektur: du kannst erfolgreich strukturieren Sie die Module Ihrer App für die Skalierung.

Sicherheit

Sicherheit wird etwas unpraktisch, wenn Sie React Native verwenden, um eine App zu erstellen, die Sicherheit vom Typ A erfordert (wie Mobile-Banking-Apps).

In solchen Fällen müssen Entwickler besonders auf bösartige Code-Schnipsel achten, insbesondere wenn sie Add-Ons von Drittanbietern verwenden.

Lernkurve von React Native

Mit React Native können Frontend-Webentwickler zu mobilen Entwicklern werden, ohne Swift oder Java lernen zu müssen.

Erfordert es viel zusätzliches Lernen?

Wir können nicht versprechen, dass Entwickler, die React.js kennen, reibungslos auf die React Native-Entwicklung umsteigen werden. Sie werden welche brauchen Wissen über native UI Elemente.

Es ist wichtig zu beachten, dass die Struktur mobiler Anwendungen, die Integration mit integrierten Komponenten (Kamera, GPS, Mikrofon, Push-Benachrichtigungen, Android/iOS-Betriebssysteme) und der Kontext der Anwendung völlig anders sind als bei Web-Apps.

Wichtiger Tipp zum Mitnehmen: Für Entwickler, die mit React.js vertraut sind, aber noch keine Erfahrung in der mobilen Entwicklung haben, wird das Kennenlernen von React Native nicht ganz reibungslos sein. Sie müssen etwas über native UI-Elemente und Konzepte der mobilen Programmierung lernen.

In Webanwendungen wird der Kontext vom Browser bereitgestellt (gerätespezifisch); in mobilen Anwendungen wird der Kontext meistens von Android- und iOS-Betriebssystemen bereitgestellt. Die Kenntnis dieser beiden Systeme und der Unterschiede zwischen ihnen ist unerlässlich, um mobile Anwendungen in React Native richtig zu entwickeln.

Auf der anderen Seite sind die meisten in React Native geschriebenen Komponenten für beide Plattformen geeignet. Es ist selten, eigene native Komponenten in Android und iOS zu schreiben.

React Native bringt Agilität und Geschwindigkeit in die Entwicklung. Warum können wir das sagen? Der Grund dafür ist: Sie benötigen ein Team statt zwei, um Ihre mobile App zu erstellen, da die meisten React Native-Komponenten zwischen iOS und Android wiederverwendet werden können.

Einschränkungen von React Native

Wie bereits erwähnt, hat React Native, wie jede andere Technologie, ihre Grenzen.

Dazu gehören:

  • Mangelnde Unterstützung für einige iOS- und Android-Funktionen.
  • Die Notwendigkeit, das Wissen der nativen Entwickler zu nutzen — insbesondere, wenn Sie umfangreiche Rechenoperationen in Ihre App integrieren.
  • Einige Komponenten verhalten sich unter iOS und Android möglicherweise unterschiedlich.
  • Abhängigkeit von Bibliotheken von Drittanbietern.
  • Etwas geringere Leistung.
  • Mögliche Probleme beim Aktualisieren von React Native-Versionen.

Mythen über die Entwicklung von React Native-Apps

Mit React Native entwickeln Sie eine App statt zwei

Sie müssen immer noch eine eigene App für jede Plattform entwickeln — Android-Apps müssen andere Anforderungen erfüllen als iOS-Apps. Der Vorteil der plattformübergreifenden Nutzung besteht darin, dass Sie eine Technologie statt zwei, du brauchst also nur ein Team.

Es ist einfach, agil zu arbeiten, und der gesamte Prozess ist schneller, insbesondere wenn Sie den größten Teil des Codes gemeinsam nutzen. Aber du arbeitest immer noch separat an diesen Apps. Aus diesem Grund senkt die plattformübergreifende Entwicklung die Kosten auch nicht um 50% (ein weiterer Mythos).

Mit React Native erstellen Sie Hybrid-Apps

Hybrid-Apps, die im Wesentlichen mit Frameworks wie Cordova erstellt wurden, sind Webview-Apps mit Zugriff auf Hardwarefunktionen.

React Native zeigt Komponenten als native Komponenten an, die auf der Ebene der Skriptsprache arbeiten. Die Logik der Anwendung ist in JavaScript implementiert.

Vorteile von React Native

React Native bietet viele Vorteile, sowohl aus Entwickler- als auch aus Geschäftsperspektive.

Zu den häufig genannten Vorteilen gehören:

  • Entwicklungsgeschwindigkeit — Entwickler können Komponenten, die von ihnen und der gesamten Community erstellt wurden, wiederverwenden und recyceln.
  • Schnellere Markteinführung — Sie können schneller auf dem Markt erscheinen, um Ihr MVP zu testen.
  • Einfach zu bedienen — zeitsparende und robuste Tools machen die React Native-Entwicklung angenehm.
  • Wiederverwendbarkeit des Codes — das hängt vom jeweiligen Projekt ab, aber mit React Native können Teams normalerweise problemlos 50-90% des Codes wiederverwenden. Entwickler können auch den in React geschriebenen Code der Web-App verwenden, um eine mobile App zu erstellen.
  • Viele vorentwickelte Komponenten — sie beschleunigen die Arbeit Ihres Teams.
  • Einfache Vorschau der Änderungen — einfach durch Drücken von „Befehlstaste+R“, ohne jedes Mal neu erstellen zu müssen.

Wann möchten Sie React Native nicht verwenden?

Komplexe Spiele

Umfangreiche Visualisierungsfunktionen, ein hohes Maß an Anpassungsmöglichkeiten, umfangreiche Benutzerinteraktionen — für schwere Spiele sollten Sie besser die native Entwicklung wählen.

Versorgungsunternehmen

In diesem Fall ist die native Entwicklung schneller als das Schreiben nativer Wrapper. Akkumonitore, Helligkeitsregler, Media Player oder Antivirensoftware — sie verwenden immer native Funktionen und Plattform-APIs. Es ist einfacher, sie in der Muttersprache zu schreiben.

Apps mit komplexen Benutzeroberflächen

Wenn Ihre App viele Interaktionen, ein hohes Maß an Anpassung und viele Hintergrundprozesse erfordert, ist es möglicherweise besser, nativ zu arbeiten. JavaScript ermöglicht die Erstellung reibungsloser Apps, ist jedoch möglicherweise nicht das Beste für ressourcenintensive Apps.

KAPITEL 2:

Beispiele für React Native-Apps

Heutzutage verwenden viele namhafte Unternehmen React Native für ihre mobilen Apps. Unter ihnen finden Sie Marken wie Walmart, Facebook, Instagram, Blomberg und SoundCloud.

Walmart

Die App von Walmart ermöglicht es Benutzern, Produkte zu durchsuchen, ihre Preise zu überprüfen, sie zu bestellen und den Kauf zu bezahlen. Das Team achtete auf Produktivität und Markteinführungszeit und wandte sich daher der Entwicklung von React Native zu.

Was waren die Ergebnisse? Sie konnten 95% des Codes zwischen iOS und Android teilen und erzielten eine nahezu native Leistung.

Facebook-Werbung

Facebook Ads war die erste React Native-App für Android und die erste App, die vollständig auf dieser Technologie basierte. Das Entwicklungsteam von Facebook verwendete React Native, um eine saubere, intuitive Benutzeroberfläche und eine einfache Navigation zu bieten.

Was war das wichtigste Ergebnis? Eine blitzschnelle Leistung, die sie brauchten.

Instagram

Instagram entschied sich dafür, React Native in seine bestehende native App zu integrieren, angefangen mit der Push-Benachrichtigungsansicht. Das Team sagt, dass sie 85-99% des Codes zwischen Android und iOS teilen konnten.

React Native-Bibliotheken

React Native Elemente

React Native Elemente ist ein UI-Toolkit, das großartige Open-Source-UI-Komponenten zusammenstellt, die von Entwicklern erstellt wurden. Es enthält Komponenten wie Preisgestaltung, Overlay, Teiler und plattformspezifische Suchleisten. Sie können einfach angepasst werden. Das Toolkit hat 17.000 Sterne auf Github.

React Native Vektorsymbole

React Native Vektorsymbole ist eine Bibliothek mit über 3.000 Symbolen, die angepasst und gestaltet werden können — perfekt für Buttons und Navbars. Die Bibliothek unterstützt TabBar und Toolbar Android. Sie hat fast 12.000 Sterne auf Github.

CLI entzünden

CLI entzünden ist eine CLI mit Boilerplates, Plugins, Generatoren und mehr, die Ihnen hilft, Wochen oder sogar Monate an Arbeit zu sparen, wenn Sie mit React Native beginnen. Es ist ein solides Starterkit. Die CLI hat über 11.000 Sterne auf Github.

KAPITEL 3:

React Native gegen NativeScript

NativeScript wurde erstmals 2014 von der Progress Software Corporation als Open-Source-Framework für die Erstellung wirklich nativer mobiler Apps mit Angular, Vue.js, TypeScript oder JavaScript veröffentlicht.

Sowohl React Native als auch NativeScript sind JavaScript-Frameworks für Mobilgeräte, und beide sind für Entwickler mit JS-Erfahrung relativ einfach zu erlernen.

Der größte Vorteil von React Native gegenüber NativeScript ist die Multithread-Architektur. Diese Funktion ermöglicht es der JavaScript-Verarbeitung, das Rendern der Benutzeroberfläche nicht zu beeinträchtigen.

Andererseits können Benutzeroberflächen von NativeScript-Apps hängen bleiben, wenn prozessorintensiver JavaScript-Code ausgeführt wird.

KAPITEL 4:

React Native gegen Xamarin

Xamarin wurde von Microsoft entwickelt und im Mai 2011 veröffentlicht. Um eine Xamarin-App zu erstellen, müssen Entwickler in C# codieren.

Sowohl React Native als auch Xamarin bieten eine nahezu native Leistung, beide werden von bekannten Marken verwendet und beide bieten großartigen Community-Support.

Der wichtigste Unterschied zwischen diesen beiden Technologien ist die von ihnen verwendete Programmiersprache. Im Fall von Xamarin ist es C# und in React Native ist es JavaScript. Ihre Wahl hängt also stark von der Erfahrung Ihres Entwicklungsteams ab.

React Native gegen Flutter

Flutter wurde 2017 von Google erstellt. Um eine App mit Flutter zu erstellen, müssen Sie eine Programmiersprache namens Dart lernen. Entwickler behaupten jedoch, dass dies ziemlich einfach zu erlernen ist und die Entwicklung Spaß macht.

Obwohl es das neueste Framework der Reihe ist, ist es bei Entwicklern bereits beliebt geworden. Laut der Entwicklerumfrage von Stackoverflow aus dem Jahr 2020 ist Flutter beliebter als React Native.

Wiederverwendbarkeit des Codes

Mit React Native kann ein erheblicher Teil des Codes wiederverwendet werden. Von Zeit zu Zeit benötigen Sie eine Komponente oder eine Reihe von Komponenten, die für die Plattform geeignet sind, die Sie ausführen.

Mit Flutter ist alles ein Widget und der Code ist wiederverwendbarer. Sie definieren einen Widget-Baum und verwenden diese Logik wieder.

Vor- und Nachteile von Flutter

  • Es basiert auf einer objektorientierten Programmiersprache namens Dart, die Entwickler lernen müssen (sie wird als relativ einfach angesehen).
  • Es unterstützt eine schnellere Fehlerbehebung.
  • Ihre Architektur hängt von reaktiver Programmierung ab.
  • Es wird von Continuous Integration nicht unterstützt.
  • Es ist noch nicht ausgereift.
  • Bisher sind nicht viele Bibliotheken von Drittanbietern verfügbar, daher müssen Entwickler sie selbst erstellen.

Die Zukunft der React Native-Entwicklung

React Native wird weiterhin von Facebook unterstützt. Einige Unternehmen sind besorgt über diese Abhängigkeit, da sie die Gefahr bergen kann, sie jederzeit zu beenden. Die gute Nachricht ist jedoch: derzeit vorbei 60% des React Native-Codes stammen von unabhängigen Entwicklern'Beiträge.

Die Bedrohung scheint noch weniger schwerwiegend zu sein, da Facebook immer noch stark in React Native investiert und stetig wächst. Vorschläge der Community werden schnell berücksichtigt und Lösungen für Probleme werden in regelmäßigen Veröffentlichungen bereitgestellt.

Die aktuelle Priorität des Teams von React Native besteht darin, die Bibliothek schlanker zu machen, indem die API-Oberfläche reduziert und infolgedessen die Geschwindigkeit der Apps verbessert wird. Hermes, eine JavaScript-Engine, die die Leistung auf Android verbessern soll, befindet sich ebenfalls im Aufbau.

Wichtiger Tipp zum Mitnehmen: React Native wächst dank der Beiträge der Community sowie der Investitionen, regelmäßigen Updates und Veröffentlichungen von Facebook stetig.

Die Architektur von React Native wird ständig modernisiert. Es ist geplant, die Architektur von React Native komplett zu ändern, um native Module, neue Renderer und Verbesserungen bei der Initialisierung abzudecken.

KAPITEL 5:

Prämie: OpenCV mit React Native für die Bildverarbeitung verwenden

OpenCV ermöglicht es React Native-Entwicklern, Bilder auf Mobilgeräten zu verarbeiten. In diesem Bonuskapitel stellen wir ein Tutorial vor, in dem wir ein Beispieltool erstellen, das Kamerabilder mit nativem Code mithilfe von OpenCV und React Native verarbeitet — Schritt für Schritt.

Was kommt als Nächstes?

Dies ist erst der Anfang. Über die Entwicklung von React Native kann noch viel mehr gesagt werden.

Wenn Sie dieses Framework weiter untersuchen möchten, wenden Sie sich bitte an erforschen verfügbare Kapitel jetzt oder abonnieren Sie Handbuch-Updates für benachrichtigt werden über neue Ressourcen, bevor sie der Öffentlichkeit zugänglich gemacht werden.

Viel Spaß!