Warum eignet sich React Native für Uber Eats und andere Online-Apps für Essenslieferungen?
Veröffentlicht: 2021-12-07Uber ist verpflichtet, seinen Kunden unabhängig von der Domain etwas mehr als das Herkömmliche zu bieten. Während der Plan zur Einführung von UberEats, einer Online-App für die Lieferung von Lebensmitteln, in der Pipeline war, war das Unternehmen bestrebt, daraus ein außergewöhnliches Erlebnis zu machen, genau wie es bei UberPOOL und UberX der Fall ist.
Das Entwicklerteam war sich der bestehenden Herausforderungen der Branche bewusst, wie z. B. zusätzliche Schritte bei der Abholung und Rückgabe, keine Echtzeitkommunikation mit dem Zusteller und die Einrichtung einer ständigen Kommunikation mit allen drei Branchen (Kunden, Restaurants und Zusteller). des Personals.
Letztendlich entstand UberEats mit Hilfe von React Native. In diesem Beitrag erklären wir, wie die Verwendung von Reach Native Uber geholfen hat, die App zu gestalten.
React Native verstehen
RN oder React Native ist ein weltweit anerkanntes Framework zur Entwicklung mobiler Anwendungen, das in JavaScript geschrieben ist. Mit React Native ist die Entwicklung nativer mobiler iOS- und Android-Anwendungen möglich. Die App-Entwicklung für die verschiedenen Plattformen wird mit einer identischen Codebasis durchgeführt, was zu enormem Aufwand und Zeitersparnis führt.
React Native wurde von Facebook und verwandten Communities entwickelt und 2015 als Open-Source-Tool angeboten. Bald nach der Entwicklung wurde es aufgrund seiner unübertroffenen Benutzerfreundlichkeit und erweiterten Benutzerfreundlichkeit zu einer Standardquelle für die Entwicklung hybrider und mobiler Lösungen. Außerdem kann einmal geschriebener Code problemlos für die Entwicklung von iOS- und Android-Anwendungen verwendet werden.
Es ist unter den Entwicklern so prominent geworden, dass mehr als 42 % es verwenden. Tatsächlich sind moderne Anwendungen wie Skype, Facebook und Instagram nur aufgrund von React Native entstanden.
Die Herausforderungen
Die Entwicklung einer mobilen App ist bereits eine Aufgabe voller Herausforderungen, und Ubers größte Herausforderung war das Fehlen eines angemessenen Technologie-Stacks, der für die Entwicklung einer mobilen App erforderlich ist, da sich das Team nur mit der Entwicklung von Web-Apps befasste und drei Parteien hatte. Die Entwicklung einer solchen App erforderte ein Dashboard, das nicht auf das Web beschränkt sein sollte, in die Restaurants gelangen und wichtige Informationen von Restaurants übertragen kann.
Basierend auf dem vorhandenen Wissen baute Uber einen Prototyp der App. Aber alle oben genannten Funktionen fehlten. Darüber hinaus beeinträchtigte das Fehlen von akustischen Benachrichtigungen die Erfahrung des Endbenutzers enorm, da die Esser nicht in der Lage waren, die Bestellaktualisierungen in Echtzeit zu erhalten.
Das primitive Restaurant-Dashboard war webkompatibel und verfügte über eine React/Flux-Seite für Tablet-Geräte, die zu dieser Zeit Zugriff auf begrenzte Geräte gewährte. Diese verringerte Kapazität des Restaurant-Dashboards zwang Uber zu einer eingeschränkten Kommunikation mit Restaurants.
Eines der einfachsten Beispiele für diese kontrollierte Kommunikation ist, dass Endbenutzer mit der Webseite kommunizieren müssen, um das geräuschbasierte Benachrichtigungs-Cueing zu unterstützen. Restaurantmitarbeiter erhielten keine Echtzeit-Updates über den Eingang einer neuen Bestellung, die Ankunft des Lieferpersonals zur Kommissionierung und die endgültige Lieferung.
Abgesehen davon gewährte die vorherige Version von UberEats Restaurants nur mit AirPrint-kompatiblen Druckern Zugang zum Drucken physischer Quittungen.
React Native hat die Dinge besser gemacht
Das Entwicklungsteam wusste nicht, wie man eine iOS/Android-App erstellt. Aber React wurde gemeistert. Es war also ein sicherer Schuss, React Native für Uber Eats zu bevorzugen. Es ist ein zentraler Bestandteil des gewaltigen Technologie-Stacks, der für Uber Eats verwendet wird. Es verträgt sich gut mit der bestehenden Infrastruktur von Uber und ermöglicht dem Team den Zugriff auf Funktionen, nach denen es bei der Entwicklung nativer mobiler Apps gesucht hat.
Vor dem Start einer voll funktionsfähigen App entschied sich Uber, eine Demoversion zu entwickeln, die die unten genannten Schlüsselelemente enthalten sollte:
- Absturzberichte der App
- Detaillierte Analyse des Endbenutzers
- Die Fähigkeit der App, die nativen Abhängigkeiten herunterzuladen
- Benutzerauthentifizierung
Laut dem Unternehmensbericht brachte die Demo erfolgreich das gewünschte Ergebnis, da das Entwicklerteam herausfand, dass die Absturzmeldung besser als erwartet funktionierte. Die JavaScript-Überbrückung für eine Einrichtung wie das Auslösen von Analyseereignissen war nahtlos und das Beobachten der Geschäftslogik der Anwendung war einfach.
Architektur der Anwendung neu definiert
React Native half Uber dabei, die Entwicklung mobiler und Webanwendungen zu verschmelzen und gleichzeitig die Generierung von Funktionen in nativem oder in JavaScript zu ermöglichen. Aufgrund dieser Interoperabilität konnten die Entwickler von Uber ihr Know-how in der Entwicklung von Webanwendungen auch bei der Entwicklung mobiler Anwendungen einsetzen.
Sie haben Uber Eats auf eine sehr ähnliche Weise wie die übliche React/Redux-Web-App entworfen, während sie die iOS-Muster und Modulmuster nach Bedarf der Stunde in Schach gehalten haben. Die Verwendung von React Native ermöglicht es Uber, die Routing-Funktionalität der App zu verbessern.
Während Uber Eats nur webbasiert war, verwendete Restaurant Dashboard die berühmte React-Router-Bibliothek. Anhand der Bibliothek wurden die Routen der App wie ein View deklarativ erklärt. Eine solche Art von App-Routing unterstützte nur URLs, deren Zugriff außerhalb des Browsers nicht möglich war.
Die Verwendung von React Native gewährt Entwicklern eine präzise Navigationsbibliothek, die UINavigationController sehr ähnlich ist. React Native-Bibliotheken wie NavigationExperimental oder Navigator ermöglichten dem Entwicklungsteam von Uber eine einfache Migration vom Reach-Router. Vanilla Reach-Router ist eine großartige Ressource für das App-Routing, da es kaum durch die Architektur der App behindert wird.
Während des Portierungsprozesses erfuhr das Entwicklungsteam, dass es ein kluger Schachzug ist, die Interaktion zwischen iOS und JavaScript zu reduzieren und die Logik in der JavaScript-Schicht zu platzieren. Dieser Schritt half in vielerlei Hinsicht. Zum Beispiel enthielt die endgültige App weniger.
JavaScript- und Objective-C-Wechsel für bessere Portabilität und weniger Chancen für das Auftreten von Fehlern. Unter Verwendung von n Reach Native entwickelte das Entwicklungsteam von Uber Eats eine einfache Kommunikations-API, die auf verschiedenen Ebenen weiterverwendet werden kann.
Verbessert Push-Updates/Benachrichtigungen
Die Sound-Benachrichtigungs-Inkompetenz von Web-Apps wurde mit React Native eingedämmt, da Anwendungen, die mit dieser Technologie erstellt wurden, mit einem kleinen Teil von Objective-C/Java-Code verknüpft werden. Diese Codes bilden zusammen ein umfangreiches Paket, das später wie ein Asset mit der Anwendung versendet wird. Wenn es eine native Schicht gibt, kann die Anwendung die React Native Bridge-Datei ändern und ein erneutes Laden anfordern.
Auf der nativen Ebene kann die Anwendung die von der React Native Bridge verwendete Datei ändern und anfordern, dass sie neu geladen wird. Ein fehlerhaftes Update, das in Uber Eats als störungsverursachendes Paket bezeichnet wird, kann das Stoppen des Restaurant-Dashboards erzwingen. Es kann passieren, bevor das Logikbündel in Aktion tritt. Solche schlechten Updates können jederzeit auftauchen und das Restaurant-Dashboard zum Absturz bringen.
Das Entwicklerteam hat dieses Problem behoben, indem es jede einzelne Version als Experiment behandelt hat, sodass ein schrittweiser Rollout möglich ist. Das einzigartige Javascript-Bundle, das in React Native angeboten wird, wurde nach dem Laden eines gepushten Bundles automatisch geladen.
Alles einpacken
Uber Eats hat eine interessante Reise hinter sich und React Native hat auf dieser ganzen Reise eine entscheidende Rolle gespielt. Diese Technologie hat dem Entwicklungsteam mit einigen lobenswerten Fachkenntnissen und Funktionen für die native App-Entwicklung geholfen, um die Benutzererfahrung zu verbessern.
Es brachte maximale revolutionäre Änderungen beim Upgrade des Restaurant-Dashboards. Es hat diesen betrieblichen Aspekt gestärkt, nahtlos und äußerst reaktionsschnell gemacht. Dieses Framework hat sicherlich die Leistungsfähigkeit der App intensiviert, ohne die Komplexität zu erhöhen. Auch wenn React Natives einen kleinen Teil des Mammut-Technologie-Stacks von UberEats ausmacht, der von hinten funktioniert, ist sein Beitrag lobenswert.
Wenn Sie planen, eine Online-App für die Lieferung von Lebensmitteln wie UberEats zu entwickeln, sollten Sie React Native in Betracht ziehen. Stellen Sie einen Entwickler oder ein Team von React Native ein, um Ihre Projektidee in die Realität umzusetzen. Eine Wette darauf zu platzieren, wird niemanden enttäuschen.
Anmerkung des Herausgebers: Chandresh Patel ist CEO, Agile Coach und Gründer von Bacancy Technology. Sein echter Unternehmergeist, sein geschicktes Fachwissen und sein umfassendes Wissen in agilen Softwareentwicklungsdiensten haben der Organisation geholfen, neue Höhen des Erfolgs zu erreichen.
Haben Sie irgendwelche Gedanken dazu? Lassen Sie es uns unten in den Kommentaren wissen oder übertragen Sie die Diskussion auf unseren Twitter oder Facebook.