PWA vs. React Native: Ein detaillierter Blick
Veröffentlicht: 2021-05-21Inhaltsverzeichnis
Ähnlich wie PWA und Flutter gehören PWA und React Native derzeit zu den beliebtesten Ansätzen für die Entwicklung plattformübergreifender Anwendungen. Und wenn Sie zu diesem Thema recherchieren, ist es verständlich, verwirrt zu sein, wenn Sie versuchen, sich für den richtigen Entwicklungspfad für Ihr Unternehmen zu entscheiden. In diesem Artikel gehen wir auf die Details der einzelnen Entwicklungsansätze ein – von ihren Anwendungsfällen und den Besonderheiten, wie jeder Entwicklungsansatz für Ihr Unternehmen von Vorteil sein kann.
Die kurzen Details
Hier sind die kurzen Zusammenfassungen der einzelnen Entwicklungsansätze sowie die Anwendungsfälle, zu denen sie gehören.
Progressive Web-App (PWA)
Definitionen
Progressive Web App (PWA) ist eine aufstrebende Lösung zur Entwicklung webbasierter Anwendungen . Im Kern verlassen sich PWAs auf Servicemitarbeiter und Web-App-Manifeste, um App-ähnliche Erfahrungen bereitzustellen, die Funktionen umfassen, die zuvor nur für Apps verfügbar waren, wie Push-Benachrichtigungen, Offline-Verfügbarkeit, Installierbarkeit usw.
Anwendungsfälle & Beispiele
Aufgrund ihrer webbasierten Natur eignen sich PWAs am besten für Websites, deren Hauptanliegen darin besteht, ansprechendere, konnektivitätsunabhängige Erlebnisse zu bieten – oder einfach für Websites, die ein breiteres Publikum erreichen möchten.
Ab sofort werden PWAs in der E-Commerce-Branche weit verbreitet, wo Funktionen wie Push-Benachrichtigungen und Offline-Verfügbarkeit erforderlich sind, um die Kaufkonversionsraten zu verbessern und einen loyaleren Kundenstamm aufzubauen.

Empfohlene Lektüre: 12 beste Beispiele für Progressive Web Apps (PWAs) im Jahr 2021
Nativ reagieren
Definitionen
React Native ist ein Framework für die Entwicklung plattformübergreifender, JavaScript-basierter echter nativer Anwendungen . Apps, die mit React Native erstellt wurden, können über das deklarative UI-Paradigma von React und JavaScript mit nativen APIs interagieren – und das bedeutet, dass eine einzige React-Codebasis verwendet werden kann, um zwei Plattformen (iOS und Android) zu verwalten, ohne die Erfahrungen der Benutzer zu beeinträchtigen.
Anwendungsfälle & Beispiele
Es ist schwierig, einen bestimmten Anwendungsfall für React Native zu definieren, da es verwendet wird, um verschiedene Arten von Apps zu erstellen, wie beliebte Social-Media-Apps (z. B. Facebook, Instagram, Pinterest usw.) oder digitale Kommunikations-Apps (z. B. Skype, Discord). , Tencent QQ usw.). Eine Liste der Apps, die mit React Native erstellt wurden, finden Sie unter React Native Apps Showcase.

Auf die Besonderheiten eingehen
Im folgenden Teil gehen wir auf die Besonderheiten jedes Entwicklungsansatzes ein und geben Einblicke, wie jeder Entwicklungsansatz in Ihren Geschäftsplan passen kann.
Sprache
PWAs verlassen sich auf Webtechnologien, um App-ähnliche Erfahrungen bereitzustellen. Websprachen wie HTML, CSS und JavaScript sind also immer noch die Kernsprachen, aus denen eine PWA besteht, während React Native-Apps React.js (eine JavaScript-Bibliothek) als ihre Kernsprache verwenden.
Aus diesem Grund sollten Sie beim Durchsuchen des Codes einer React Native-App feststellen, dass sie einige Ähnlichkeiten mit Websprachen aufweist, mit dem einzigen großen Unterschied, dass React Native-Apps native Komponenten anstelle von Webkomponenten verwenden, um die Benutzeroberfläche zu erstellen.

Benutzeroberfläche
Da PWAs auf Webtechnologien basieren und auf der Engine des Browsers ausgeführt werden, erscheint die Benutzeroberfläche einer typischen PWA für geschulte Augen möglicherweise nicht so natürlich. Für die typischen Benutzer sind die Unterschiede zwischen der App-ähnlichen Benutzeroberfläche von PWA und der echten nativen App-Benutzeroberfläche jedoch höchstens winzig.

Eine React Native-App hingegen ist in der Lage, echte native Erfahrungen zu liefern, dank der Verwendung nativer Komponenten – und dazu gehören plattformspezifische Komponenten wie <DatePickerIOS>
und <ProgressViewIOS>
für iOS oder <ViewPagerAndroid>
und <ToastAndroid>
für Android.

Leistung
Leistung ist ein heikles Thema, da es schwierig ist, der Wahrheit auf den Grund zu gehen. Allerdings seit Da beide Entwicklungsansätze stark JavaScript verwenden, können Sie davon ausgehen, dass die Leistung auf allen Seiten ziemlich ähnlich ist – mit einem kleinen Vorteil von React Native, da es enger in das verwendete System integriert ist und nicht über einen Browser kommunizieren muss.
Die Tatsache, dass PWAs in der Browserumgebung leben , bedeutet jedoch nicht wirklich, dass sie wie eine durchschnittliche Website funktioniert. Dank der fortschrittlichen Caching-Methode, die in PWAs verwendet wird, gibt es nicht mehr die gelegentlichen Schluckaufe beim Laden zwischen Seiten, wie sie bei durchschnittlichen Websites/Web-Apps zu finden sind; und in Verbindung mit der Tatsache, dass PWAs im Wesentlichen verbesserte Single-Page-Anwendungen sind, kommt die wahrgenommene Leistung von PWAs einer echten nativen App-Erfahrung so nahe wie möglich.

Ein Beispiel dafür ist Temoorst, die in Kuwait ansässige Marke der Einwegartikelindustrie. Mit SimiCart als Lösungsanbieter ihrer Wahl entschied sich die Marke sowohl für eine native App als auch für eine PWA, um die bestmöglichen ROIs zu erzielen, und der Leistungsaspekt von PWA ist immer noch etwas, das die Marke nicht erwartet hat. Bei einem Blindtest wird es Ihnen schwer fallen, Leistungs- und visuelle Unterschiede zwischen ihrer PWA und ihrer React Native-App zu finden.

Um den Leistungsunterschied zwischen einer React Native-App und einer PWA zu testen, empfehlen wir Ihnen, Temoorst-Apps auszuprobieren. Die Apps selbst sind Zeugnisse dafür, wie eine gut optimierte React-Native-App oder eine PWA aussehen könnte, wenn sie bis zum Maximum ausgereizt wird.
- Native App reagieren : Google Play Store | Apple App-Store
- PWA : https://temoorst.com/
Sicherheit
Aufgrund der höheren Integration mit dem verwendeten Gerät ist eine React-Native-Anwendung natürlich sicherer und weniger anfällig für Schwachstellen. Um einer React Native App mehr Sicherheitsebenen hinzuzufügen, gibt es verschiedene Ansätze, die während des Entwicklungsprozesses angewendet werden können, wie zum Beispiel:
- SSL-Pinning: zum Sichern von App-zu-Server-Verbindungen
- Schlüsselbund/sensible Informationen: bieten sichere lokale Speicherung zusammen mit biometrischer/Gesichtsauthentifizierung
- Jscrambler: Verhindern Sie Code-Manipulationen, indem Sie eine Selbstverteidigungsschicht hinzufügen
Da PWAs in der Browserumgebung leben und den Browser für die meisten seiner Funktionen nutzen, wird der größte Teil der Sicherheitsarbeit vom Browser selbst erledigt. Im Vergleich zu einer normalen Website ist eine PWA sicherer, da die Kernkomponente der PWA – Service Worker – nur über HTTPS läuft, was bedeutet, dass die Kommunikation zwischen Client- und Serverseite immer verschlüsselt ist.
Service Worker laufen nur über HTTPS. Da Servicemitarbeiter Netzwerkanfragen abfangen und Antworten ändern können, könnten „Man-in-the-Middle“-Angriffe sehr schlimm sein.
Einführung in den Service Worker
Auffindbarkeit
Hier glänzen PWAs. PWAs sind nicht nur im Web verfügbar und Suchmaschinen ausgesetzt, sie können auch in App Stores veröffentlicht werden. Google, Microsoft und sogar Samsung haben sich alle dem Zug angeschlossen, um auf eine stärkere Akzeptanz von PWAs zu drängen, indem sie neu verpackte PWAs in ihre App-Stores aufnehmen. Der Microsoft Store zum Beispiel geht sogar noch einen Schritt weiter und plant, seinen App Store automatisch mit hochwertigen PWAs zu füllen, die von ihren eigenen Bing-Crawlern indiziert werden:
Der vom Bing-Crawler unterstützte Microsoft Store indiziert automatisch ausgewählte hochwertige Progressive-Web-Apps
Begrüßung von Progressive Web Apps für Microsoft Edge und Windows 10
Ab sofort ist der Apple App Store der einzige verbleibende beliebte App-Marktplatz, den PWA scheinbar nicht erreichen kann. Dies liegt daran, dass Apple in seinen Überprüfungsrichtlinien klargestellt hat, dass die App, um genehmigt zu werden, „über eine neu verpackte Website hinaus“ sein muss – und dies ist eine ganz andere Diskussion für sich, darüber, wie Apple aktiv die Entwicklung von das Web aus Angst, ihr Endergebnis zu beeinträchtigen.
Im Vergleich zu PWAs ist die Auffindbarkeit von Apps, die mit React Native erstellt wurden, nicht so beeindruckend, aber die plattformübergreifende Natur des Frameworks bedeutet, dass Sie Ihre App mit einer einzigen Codebasis sowohl im Google Play Store als auch im Apple App Store auffindbar machen können. Und wenn man bedenkt, dass iOS-Benutzer in einigen Ländern (einschließlich der USA) in der Mehrheit sind – und dass PWAs nicht im Apple App Store veröffentlicht werden können – sollte dies Grund genug sein, sich für die Entwicklung von React Native-Apps zu entscheiden, um dort zu dienen Die Mehrheit Ihrer Benutzer sind..
Google Play Store | Apple App-Store | Microsoft-Store | Netz | |
---|---|---|---|---|
Nativ reagieren | Ja | Ja | Ja (mit Erweiterungspack) | Nein |
PWA | Ja | Nein | Ja | Ja |
Hardware-Zugänglichkeit
Da React Native-Apps echte native Anwendungen sind, genießen sie einen viel breiteren Zugriff auf native APIs. Und das bedeutet, dass sogar Low-Level-Zugriff auf die Hardware des Geräts (z. B. Zugriff auf NFC (Near Field Communication), Kontaktliste usw.) und systemischer Zugriff (z. B. Zugriff auf Systemeinstellungen, Protokolle usw.) möglich sind und genutzt werden können um die Benutzererfahrung zu verbessern.
Und da PWA für den Zugriff auf die Hardware auf die Web-APIs angewiesen ist, ist eine PWA natürlich stärker eingeschränkt , wie sie die Ressourcen des Systems nutzen kann. Im besten Fall – das heißt, wenn der verwendete Browser alle neuesten Hardwarezugriffs-APIs unterstützt – kann eine PWA Zugriff auf verschiedene Hardwarefunktionen haben, die zuvor nur nativen Apps vorbehalten waren, wie Geolokalisierung, Zugriff auf Kamera und Mikrofon, Augmented Reality (mit WebXR Geräte-API).
Empfohlene Lektüre: Progressive Web App (PWA) und Hardwarezugriff
Entwicklungskosten
In Bezug auf die Entwicklungskosten sind React Native-Projekte aufgrund der hohen Komplexität eher teuer. Beispielsweise ist es üblich, dass ein einfaches React Native-Projekt etwas kostet ab 15.000 $ , während ein einfaches PWA-Projekt nur etwa 1.000 bis 10.000 $ kosten sollte. Im Vergleich zu anderen nativen App-Frameworks bleibt React Native dank seiner plattformunabhängigen Architektur jedoch eine kostengünstige Lösung. Mit einer einzigen Codebasis von React Native können Sie Ihre App sowohl im Google Play Store als auch im Apple App Store veröffentlichen, wodurch die Gesamtentwicklungskosten erheblich gesenkt werden, ohne die Benutzererfahrung zu beeinträchtigen.
Und obwohl sie in der Regel günstiger sind als React Native-Projekte, können die Entwicklungskosten eines PWA-Projekts je nach gewähltem Entwicklungspfad erheblich variieren. Wenn Sie sich beispielsweise für die Headless-Architektur entscheiden (die im Vergleich zur herkömmlichen Architektur eine flexiblere, skalierbarere Lösung ist), können Sie damit rechnen, dass die Entwicklungskosten Ihrer PWA aufgrund des höheren technischen Fachwissens, das für den Prozess erforderlich ist, erheblich steigen werden .
Fazit
Da dies zwei Entwicklungspfade für sehr spezifische Anforderungen sind, kann die Wahl zwischen React Native und PWA eine schwierige Entscheidung sein. Eine PWA ist leichtgewichtig, mit mühelosen Aktualisierungs- und Installationsvorgängen, und die Features und Funktionen, die PWA bietet, sollten für den durchschnittlichen App-Benutzer mehr als ausreichend sein. Aufgrund der aktuellen Einschränkungen, die Apple seinen App Stores auferlegt, kann es jedoch eine gute Idee sein, in eine gute React Native-App zu investieren, wenn die Mehrheit Ihrer mobilen Benutzer ein iPhone verwendet.
Für Magento-Händler, die entweder plattformübergreifende React Native-Apps oder Headless-PWAs erstellen möchten, bieten wir hier bei SimiCart kostengünstige Lösungen, mit denen Sie sich einen Wettbewerbsvorteil gegenüber Ihren Mitbewerbern verschaffen können.