Co sprawia, że ​​React Native jest odpowiedni dla Uber Eats i innych aplikacji do dostarczania jedzenia online?

Opublikowany: 2021-12-07

Uber ma obowiązek oferować swoim klientom nieco więcej niż standardowo, niezależnie od domeny. Podczas gdy plan uruchomienia UberEats, internetowej aplikacji do dostarczania jedzenia był w przygotowaniu, firma zobowiązała się, że będzie to wyjątkowe doświadczenie, podobnie jak w przypadku UberPOOL i UberX.

Zespół programistów zdawał sobie sprawę z istniejących wyzwań w branży, takich jak dodatkowe kroki związane z odbiorem i dostawą, brak komunikacji w czasie rzeczywistym ze specjalistą ds. dostaw i nawiązywanie stałej komunikacji ze wszystkimi trzema branżami (klientami, restauracjami i doręczycielami) personelu.

Ostatecznie, korzystając z pomocy React Native, powstał UberEats. W tym poście wyjaśnimy, w jaki sposób wykorzystanie Reach Native pomogło Uberowi ukształtować aplikację.

Zrozumienie React Native

programista pracujący na komputerze
Obraz: Unsplash

RN lub React Native to uznany na całym świecie framework do tworzenia aplikacji mobilnych, napisany w JavaScript. Za pomocą React Native możliwe jest tworzenie natywnych aplikacji mobilnych na systemy iOS i Android. Tworzenie aplikacji dla różnych platform będzie odbywać się przy użyciu identycznej bazy kodu, co prowadzi do ogromnych wysiłków i oszczędności czasu.

Wygenerowany przez Facebooka i powiązane społeczności, React Native był oferowany jako narzędzie open-source w 2015 roku. Wkrótce po opracowaniu stał się standardowym źródłem używanym w tworzeniu rozwiązań hybrydowych i mobilnych, ze względu na niezrównaną łatwość i rozszerzoną użyteczność. Ponadto kod napisany raz może być używany do tworzenia aplikacji na iOS i Androida bez żadnych kłopotów.

Stał się tak widoczny wśród programistów, że korzysta z niego ponad 42%. W rzeczywistości nowoczesne aplikacje, takie jak Skype, Facebook i Instagram, powstały wyłącznie dzięki React Native.

Wyzwania

Tworzenie aplikacji mobilnej jest już zadaniem pełnym wyzwań, a głównym wyzwaniem dla Ubera był brak odpowiedniego stosu technologii wymaganego do stworzenia aplikacji mobilnej, ponieważ zespół zajmował się wyłącznie tworzeniem aplikacji internetowych, mając trzy strony. Rozwój takiej aplikacji wymagał pulpitu nawigacyjnego, który nie powinien ograniczać się do sieci, może wchodzić do restauracji i przekazywać krytyczne informacje z restauracji.

Na podstawie posiadanej wiedzy Uber zbudował prototyp aplikacji. Ale brakowało w nim wszystkich powyższych funkcji. Ponadto brak powiadomień dźwiękowych bardzo zaszkodził wrażeniu użytkownika końcowego, ponieważ zjadacze nie byli w stanie uzyskać aktualizacji zamówień w czasie rzeczywistym.

Prymitywny pulpit nawigacyjny restauracji był kompatybilny z siecią i zawierał stronę React/Flux dla tabletów, umożliwiając dostęp do ograniczonych urządzeń w tym czasie. Ta zmniejszona pojemność pulpitu nawigacyjnego restauracji zmusiła Ubera do ograniczonej komunikacji z restauracjami.

Jednym z najłatwiejszych przykładów tej kontrolowanej komunikacji jest to, że użytkownicy końcowi muszą komunikować się ze stroną internetową, aby obsługiwać sygnały dźwiękowe powiadomień. Pracownicy restauracji nie otrzymywali aktualizacji w czasie rzeczywistym po otrzymaniu nowego zamówienia, przybyciu personelu dostawy do kompletacji zamówienia i końcowej dostawie.

Poza tym poprzednia wersja UberEats umożliwiała tylko drukowanie fizycznych paragonów w restauracjach za pomocą drukarek zgodnych z AirPrint.

React Native Sprawił, że rzeczy będą lepsze

uber je,
Obraz: Unsplash

Zespół programistów nie wiedział, jak zbudować aplikację na iOS/Androida. Ale React został opanowany. Dlatego preferowanie React Native w Uber Eats było pewnym strzałem. To kluczowa część potężnego stosu technologii używanego w Uber Eats. Dobrze dogaduje się z istniejącą infrastrukturą Ubera i umożliwia zespołowi dostęp do funkcji, których szukał w tworzeniu natywnych aplikacji mobilnych.

Przed uruchomieniem w pełni funkcjonalnej aplikacji Uber postanowił stworzyć wersję demonstracyjną, która powinna zawierać poniższe kluczowe elementy:

  • Raporty o awariach aplikacji
  • Szczegółowa analiza użytkownika końcowego
  • Zdolność aplikacji do pobierania natywnych zależności
  • Uwierzytelnianie użytkownika

Zgodnie z raportem firmy, demo przyniosło pożądany rezultat, ponieważ zespół programistów odkrył, że raportowanie o awariach działa lepiej niż oczekiwano, mostkowanie JavaScript dla obiektu, takiego jak uruchamianie zdarzeń analitycznych, było bezproblemowe, a obserwowanie logiki biznesowej aplikacji było łatwe.

Redefinicja architektury aplikacji

React Native pomógł Uberowi połączyć tworzenie aplikacji mobilnych i internetowych, jednocześnie umożliwiając generowanie funkcji w natywnym lub JavaScript. Dzięki tej interoperacyjności twórcy Ubera mogli wykorzystać swoją wiedzę w zakresie tworzenia aplikacji internetowych również w tworzeniu aplikacji mobilnych.

Zaprojektowali Uber Eats w bardzo podobny sposób do zwykłej aplikacji internetowej React / Redux, jednocześnie utrzymując wzorce i wzorce modułów iOS na dystans, zgodnie z potrzebą godziny. Wykorzystanie React Native pozwala Uberowi na zwiększenie funkcjonalności routingu aplikacji.

Podczas gdy Uber Eats był tylko internetowy, Restaurant Dashboard korzystał ze słynnej biblioteki routerów reakcji. Korzystając z biblioteki, trasy aplikacji zostały wyjaśnione deklaratywnie, podobnie jak widok. Taki rodzaj routingu aplikacji obsługiwał tylko adresy URL, których dostępność nie była możliwa poza przeglądarką.

Wykorzystanie React Native zapewnia programistom precyzyjną bibliotekę nawigacyjną, która jest bardzo podobna do UINavigationController. Biblioteki React Native, takie jak NavigationExperimental lub Navigator, pozwoliły zespołowi programistycznemu Ubera na łatwą migrację poza zasięg routera. Waniliowy router zasięgowy jest doskonałym źródłem routingu aplikacji, ponieważ architektura aplikacji prawie go nie utrudnia.

Podczas gdy proces przenoszenia trwał, zespół programistów dowiedział się, że mądrym posunięciem jest ograniczenie interakcji między iOS i JavaScript podczas umieszczania logiki w warstwie JavaScript. Ten ruch pomógł na wiele sposobów. Na przykład ostateczna aplikacja zawierała mniej.

Przełączanie JavaScript i Objective-C dla lepszej przenośności i mniejszej szansy na wystąpienie błędu. Korzystając z n Reach Native, zespół programistów Uber Eats opracował surowy interfejs API do komunikacji, którego można używać na różnych poziomach.

Ulepsza aktualizacje/powiadomienia push

aplikacje na Maca
Obraz: StackSocial

Niekompetencja powiadomień dźwiękowych w aplikacji internetowej została ograniczona dzięki React Native, ponieważ aplikacje zbudowane przy użyciu tej technologii są połączone razem z niewielką częścią kodu Objective-C/Java. Te kody łączą się, tworząc obszerny pakiet, który jest później wysyłany wraz z aplikacją jako zasób. Gdy istnieje warstwa natywna, aplikacja może zmienić plik mostu React Native i zażądać ponownego załadowania.

W warstwie natywnej aplikacja może zmienić plik używany przez most React Native i zażądać jego ponownego załadowania. Zła aktualizacja, która w Uber Eats określana jest jako powodujący problemy pakiet, może wymusić zatrzymanie pulpitu restauracji. Może się to zdarzyć, zanim pakiet logiczny zacznie działać. Takie złe aktualizacje mogą pojawić się w dowolnym momencie i spowodować awarię pulpitu nawigacyjnego restauracji.

Zespół programistów naprawił ten problem, traktując każde wydanie jako eksperymentalne, aby możliwe było stopniowe wdrażanie. Unikalny pakiet javascript, oferowany w React Native, był automatycznie ładowany po załadowaniu dowolnego wypchniętego pakietu.

Zawijanie tego wszystkiego

Uber Eats ma ciekawą podróż, a React Native odegrał kluczową rolę w całej tej podróży. Ta technologia pomogła zespołowi programistów w uzyskaniu godnej pochwały wiedzy specjalistycznej i funkcji do tworzenia aplikacji natywnych, aby poprawić wrażenia użytkownika.

Przyniósł maksymalne rewolucyjne zmiany w unowocześnieniu Panelu Restauracyjnego. Sprawiło, że ten aspekt operacyjny jest wzmocniony, płynny i bardzo responsywny. Ten framework z pewnością zwiększył możliwości aplikacji bez zwiększania złożoności. Mimo że React Natives stanowi niewielką część gigantycznego stosu technologii UberEats, funkcjonalnego od tyłu, jego wkład jest godny pochwały.

Jeśli planujesz opracować internetową aplikację do dostarczania jedzenia, taką jak UberEats, rozważ React Native. Zatrudnij programistę lub zespół React Native, aby urzeczywistnić swój pomysł na projekt. Postawienie na to nikogo nie zawiedzie.

Od redakcji: Chandresh Patel jest dyrektorem generalnym, trenerem Agile i założycielem Bacancy Technology. Jego prawdziwie przedsiębiorczy duch, umiejętna wiedza fachowa i rozległa wiedza w zakresie usług rozwoju oprogramowania Agile pomogły organizacji osiągnąć nowy poziom sukcesu.

Masz jakieś przemyślenia na ten temat? Daj nam znać poniżej w komentarzach lub przenieś dyskusję na naszego Twittera lub Facebooka.

Rekomendacje redaktorów: