Что делает React Native подходящим для Uber Eats и других онлайн-приложений для доставки еды?
Опубликовано: 2021-12-07Uber обязан предложить своим клиентам немного больше, чем обычно, вне зависимости от домена. В то время как план запуска UberEats, онлайн-приложения для доставки еды, находился в стадии разработки, компания стремилась сделать его исключительным опытом, как в случае с UberPOOL и UberX.
Команда разработчиков знала о существующих проблемах отрасли, таких как дополнительные шаги, связанные с получением и доставкой, отсутствие связи в режиме реального времени со специалистом по доставке и установление постоянной связи со всеми тремя вертикалями (клиенты, рестораны и курьеры). персонала.
В конце концов, UberEats появился на свет с помощью React Native. В этом посте мы объясним, как использование Reach Native помогло Uber сформировать приложение.
Понимание React Native
RN или React Native — всемирно признанная среда разработки мобильных приложений, написанная на JavaScript. С помощью React Native возможна разработка нативных мобильных приложений для iOS и Android. Разработка приложений для разных платформ будет осуществляться с использованием идентичной кодовой базы, что потребует огромных усилий и экономии времени.
Созданный Facebook и связанными с ним сообществами, React Native был предложен в качестве инструмента с открытым исходным кодом в 2015 году. Вскоре после разработки он стал стандартным источником, используемым при разработке гибридных и мобильных решений, благодаря своей непревзойденной простоте и расширенному удобству использования. Кроме того, код, написанный один раз, можно без проблем использовать для разработки приложений для iOS и Android.
Он стал настолько популярным среди разработчиков, что его используют более 42%. Фактически, современные приложения, такие как Skype, Facebook и Instagram, появились только благодаря React Native.
Испытания
Разработка мобильного приложения уже является сложной задачей, и главная проблема Uber заключалась в отсутствии адекватного стека технологий, необходимого для разработки мобильного приложения, поскольку команда занималась только разработкой веб-приложений, имея три стороны. Для разработки такого приложения требовалась панель управления, которая не должна ограничиваться Интернетом, может входить в закусочные и передавать важную информацию из ресторанов.
На основе имеющихся знаний Uber построил прототип приложения. Но в нем отсутствовали все вышеперечисленные функции. Кроме того, отсутствие звуковых уведомлений сильно ухудшило работу конечного пользователя, поскольку едоки не могли получать обновления заказа в режиме реального времени.
Примитивная приборная панель ресторана была совместима с Интернетом и содержала страницу React/Flux для планшетных устройств, предоставляющую доступ к ограниченным устройствам в то время. Из-за этого уменьшенная емкость панели управления рестораном вынудила Uber ограничить общение с ресторанами.
Одним из самых простых примеров такой контролируемой связи является то, что конечные пользователи должны взаимодействовать с веб-страницей для поддержки звуковых уведомлений. Сотрудники ресторана не получали обновления в режиме реального времени о получении нового заказа, прибытии персонала службы доставки для сбора заказа и окончательной доставке.
Помимо этого, предыдущая версия UberEats предоставляла доступ к печати физических чеков ресторанам только с использованием принтеров, совместимых с AirPrint.
React Native сделал вещи лучше
Команда разработчиков не знала, как создать приложение для iOS/Android. Но React был освоен. Так что выбор React Native для Uber Eats был верным решением. Это ключевая часть огромного стека технологий, используемого для Uber Eats. Он хорошо сочетается с существующей инфраструктурой Uber и позволяет команде получить доступ к функциям, которые они искали при разработке собственных мобильных приложений.
Прежде чем запускать полнофункциональное приложение, Uber решил выпустить демо-версию, которая должна включать следующие ключевые части:
- Отчеты о сбоях приложения
- Подробный анализ конечного пользователя
- Возможность приложения загружать собственные зависимости
- Аутентификация пользователя
Согласно отчету компании, демонстрация привела к желаемому результату, поскольку команда разработчиков обнаружила, что отчеты о сбоях работают лучше, чем ожидалось, связывание JavaScript для таких средств, как запуск аналитических событий, было бесшовным, а наблюдение за бизнес-логикой приложения было простым.
Архитектура приложения переопределена
React Native помог Uber объединить разработку мобильных и веб-приложений, позволяя создавать функции в нативном или JavaScript-коде. Благодаря этой совместимости разработчики Uber смогли использовать свой опыт разработки веб-приложений и в разработке мобильных приложений.
Они разработали Uber Eats очень похоже на обычное веб-приложение React/Redux, сохраняя при этом шаблоны iOS и шаблоны модулей в соответствии с потребностями часа. Использование React Native позволяет Uber улучшить функциональность маршрутизации приложения.
В то время как Uber Eats был только веб-интерфейсом, Restaurant Dashboard использовал знаменитую библиотеку react-router. Используя библиотеку, маршруты приложения объяснялись декларативно, как представление. Такая маршрутизация приложений поддерживала только URL-адреса, доступ к которым был невозможен вне браузера.
Использование React Native предоставляет разработчикам точную библиотеку навигации, очень похожую на UINavigationController. Библиотеки React Native, такие как NavigationExperimental или Navigator, позволили команде разработчиков Uber легко мигрировать с Reach Router. Vanillareach-router — отличный ресурс для маршрутизации приложений, поскольку его архитектура практически не мешает работе.
Пока шел процесс переноса, команда разработчиков поняла, что это мудрый шаг — уменьшить взаимодействие между iOS и JavaScript, поместив логику на уровень JavaScript. Этот шаг помог во многих отношениях. Например, в финальном приложении было меньше элементов.
Переключение между JavaScript и Objective-C для лучшей переносимости и снижения вероятности появления ошибок. Используя n Reach Native, команда разработчиков Uber Eats разработала простой коммуникационный API, который можно использовать в дальнейшем на различных уровнях.
Улучшает push-обновления/уведомления
Некомпетентность веб-приложений в области звуковых уведомлений была ограничена с помощью React Native, поскольку приложения, созданные с использованием этой технологии, связаны вместе с небольшим фрагментом кода Objective-C/Java. Эти коды объединяются для создания громоздкого пакета, который позже отправляется вместе с приложением в качестве актива. При наличии нативного уровня приложение может изменять файл моста React Native и запрашивать перезагрузку.
На нативном уровне приложение может изменить файл, используемый мостом React Native, и запросить его повторную загрузку. Плохое обновление, которое в Uber Eats называется пакетом, вызывающим проблемы, может привести к остановке панели управления рестораном. Это может произойти до того, как сработает логическая связка. Такие плохие обновления могут появиться в любое время и привести к сбою панели управления рестораном.
Команда разработчиков исправила эту проблему, рассматривая каждый отдельный выпуск как эксперимент, чтобы сделать возможным постепенное развертывание. Уникальный пакет javascript, предлагаемый в React Native, автоматически загружался после загрузки любого отправленного пакета.
Завершение всего этого
Uber Eats прошел интересный путь, и React Native сыграл ключевую роль на этом пути. Эта технология помогла команде разработчиков получить похвальный опыт и функциональные возможности для разработки нативных приложений, чтобы улучшить взаимодействие с пользователем.
Это внесло максимально революционные изменения в обновление Личного кабинета ресторана. Это сделало этот операционный аспект расширенным, бесшовным и быстро реагирующим. Эта структура, безусловно, расширила возможности приложения, не усложнив его. Несмотря на то, что React Natives составляет небольшую часть гигантского стека технологий UberEats, его вклад достоин похвалы.
Если вы планируете разработать онлайн-приложение для доставки еды, такое как UberEats, подумайте о React Native. Наймите разработчика или команду React Native, чтобы воплотить идею вашего проекта в реальность. Ставка на него никого не разочарует.
Примечание редактора: Чандреш Патель — генеральный директор, тренер по Agile и основатель Bacancy Technology. Его подлинный предпринимательский дух, квалифицированный опыт и обширные знания в области услуг разработки программного обеспечения Agile помогли организации достичь новых высот успеха.
Есть какие-нибудь мысли по этому поводу? Дайте нам знать внизу в комментариях или перенесите обсуждение в наш Twitter или Facebook.