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% 이상이 사용하고 있을 정도로 개발자들 사이에서 매우 유명해졌습니다. 사실 스카이프, 페이스북, 인스타그램과 같은 최신 애플리케이션은 React Native 덕분에 탄생했습니다.
도전 과제
모바일 앱 개발은 이미 도전 과제로 가득 차 있었고 Uber의 주요 과제는 팀이 3개 팀으로 구성된 웹 앱 개발만 처리했기 때문에 모바일 앱을 개발하는 데 필요한 적절한 기술 스택이 부족했다는 것입니다. 이러한 앱의 개발에는 웹에 국한되어서는 안 되는 대시보드가 필요했고, 식당에 들어갈 수 있고, 식당에서 중요한 정보를 전송할 수 있습니다.
기존 지식을 바탕으로 Uber는 앱의 프로토타입을 구축했습니다. 그러나 위의 모든 기능이 누락되었습니다. 또한 소리 알림이 없으면 먹는 사람이 실시간 주문 업데이트를 받을 수 없기 때문에 최종 사용자 경험에 큰 피해를 입혔습니다.
원시적인 레스토랑 대시보드는 웹과 호환되었으며 당시 제한된 장치에 대한 액세스 권한을 부여하는 태블릿 장치용 React/Flux 페이지를 특징으로 했습니다. 레스토랑 대시보드의 이러한 감소된 용량으로 인해 Uber는 레스토랑과의 통신이 제한되었습니다.
이 제어된 통신의 가장 쉬운 예 중 하나는 최종 사용자가 사운드 기반 알림 신호를 지원하기 위해 웹 페이지와 통신해야 한다는 것입니다. 레스토랑 직원은 새로운 주문 수신, 주문 피킹을 위한 배달 직원 도착 및 최종 배달에 대한 실시간 업데이트를 받지 못했습니다.
이 외에도 이전 버전의 UberEats는 AirPrint 호환 프린터를 사용하여 식당에 대한 실제 영수증 인쇄에 대한 액세스 권한만 부여했습니다.
네이티브가 더 나은 것을 만들었습니다.
개발팀은 iOS/Android 앱을 빌드하는 방법을 몰랐습니다. 그러나 React는 마스터되었습니다. 따라서 Uber Eats에 대해 React Native를 선호하는 것은 확실한 선택이었습니다. Uber Eats에 사용되는 막대한 기술 스택의 중추적인 부분입니다. Uber의 기존 인프라와 잘 어울리며 팀이 기본 모바일 앱 개발에서 찾고 있던 기능에 액세스할 수 있습니다.
완전한 기능의 앱을 출시하기 전에 Uber는 아래에 언급된 핵심 부분을 포함해야 하는 데모 버전을 내놓기로 결정했습니다.
- 앱의 충돌 보고서
- 최종 사용자의 상세한 분석
- 기본 종속성을 다운로드하는 앱의 기능
- 사용자 인증
회사 보고서에 따르면 데모는 개발자 팀이 분석 이벤트 발생과 같은 시설에 대한 JavaScript 브리징이 원활하고 애플리케이션의 비즈니스 로직을 관찰하는 것이 쉽기 때문에 충돌 보고가 예상보다 더 잘 작동한다는 것을 발견했기 때문에 원하는 결과를 가져오는 데 성공했습니다.
애플리케이션 아키텍처 재정의
React Native는 Uber가 네이티브 또는 JavaScript에서 기능 생성을 허용하면서 모바일 및 웹 애플리케이션 개발을 융합하는 데 도움이 되었습니다. 이러한 상호 운용성 덕분에 Uber 개발자는 모바일 애플리케이션 개발에서도 웹 애플리케이션 개발 전문 지식을 활용할 수 있었습니다.
그들은 Uber Eats를 관습적인 React/Redux 웹 앱과 매우 유사한 방식으로 디자인하면서 iOS 패턴과 모듈 패턴을 시대의 필요에 따라 궁지에 몰아넣었습니다. React Native를 사용하면 Uber가 앱의 라우팅 기능을 향상시킬 수 있습니다.
Uber Eats는 웹 기반이었지만 Restaurant Dashboard는 유명한 react-router 라이브러리를 사용하고 있었습니다. 라이브러리를 사용하여 앱의 경로를 View와 같이 선언적으로 설명했습니다. 이러한 종류의 앱 라우팅은 브라우저 외부에서 액세스할 수 없는 URL만 지원했습니다.
React Native를 사용하면 개발자에게 UINavigationController와 매우 유사한 정확한 탐색 라이브러리를 제공합니다. NavigationExperimental 또는 Navigator와 같은 React Native 라이브러리를 사용하면 Uber의 개발 팀이 도달 라우터에서 쉽게 마이그레이션할 수 있습니다. Vanilla Reach-router는 앱 아키텍처에 의해 거의 방해받지 않기 때문에 앱 라우팅을 위한 훌륭한 리소스입니다.
이식 프로세스가 진행되는 동안 개발 팀은 JavaScript 계층에 논리를 배치하면서 iOS와 JavaScript 간의 상호 작용을 줄이는 것이 현명한 조치라는 것을 알게 되었습니다. 이 움직임은 여러 면에서 도움이 되었습니다. 예를 들어, 최종 앱은 더 적은 기능을 했습니다.
더 나은 이식성과 더 적은 버그 발생 가능성을 위한 JavaScript 및 Objective-C 전환. n Reach Native를 사용하여 Uber Eats 개발 팀은 다양한 수준에서 추가로 사용할 수 있는 엄격한 커뮤니케이션 API를 고안했습니다.
푸시 업데이트/알림 향상
웹 앱의 소리 알림 기능은 이 기술을 사용하여 빌드된 애플리케이션이 작은 덩어리의 Objective-C/Java 코드와 함께 연결되기 때문에 React Native로 억제되었습니다. 이러한 코드는 나중에 자산처럼 애플리케이션과 함께 발송되는 부피가 큰 번들을 빌드하기 위해 함께 제공됩니다. 기본 레이어가 있는 경우 애플리케이션은 React Native 브리지 파일을 변경하고 다시 로드를 요청할 수 있습니다.
네이티브 계층에서 애플리케이션은 React Native 브리지에서 사용하는 파일을 변경하고 다시 로드하도록 요청할 수 있습니다. Uber Eats에서 문제를 일으키는 번들이라고 하는 잘못된 업데이트는 레스토랑 대시보드를 강제로 중지할 수 있습니다. 로직 번들이 실행되기 전에 발생할 수 있습니다. 이러한 잘못된 업데이트는 언제든지 표시되어 레스토랑 대시보드에 충돌을 일으킬 수 있습니다.
개발자 팀은 점진적 롤아웃이 가능하도록 모든 단일 릴리스를 실험으로 처리하여 이 문제를 해결했습니다. React Native에서 제공되는 고유한 javascript 번들은 푸시된 번들을 로드한 후 자동으로 로드되었습니다.
모든 것을 포장
Uber Eats에는 흥미로운 여정이 있으며 React Native는 이 여정 전체에서 중추적인 역할을 했습니다. 이 기술은 사용자 경험을 개선하기 위해 네이티브 앱 개발을 위한 몇 가지 훌륭한 전문 지식과 기능으로 개발 팀을 도왔습니다.
그것은 레스토랑 대시보드의 업그레이드에서 최대의 혁신적인 변화를 가져왔습니다. 이를 통해 이러한 운영 측면을 더욱 강력하고 매끄럽고 빠르게 대응할 수 있게 되었습니다. 이 프레임워크는 복잡성을 증가시키지 않으면서 앱의 기능을 확실히 강화했습니다. React Natives는 UberEats의 거대한 기술 스택의 작은 부분을 차지하지만 뒤에서 기능하지만 그 기여는 칭찬할 만합니다.
UberEats와 같은 온라인 음식 배달 앱을 개발할 계획이라면 React Native를 고려하십시오. React Native 개발자 또는 팀을 고용하여 프로젝트 아이디어를 현실로 만드십시오. 그것에 내기를 걸면 아무도 실망하지 않을 것입니다.
편집자 주: Chandresh Patel은 CEO이자 Agile 코치이며 Bacancy Technology의 설립자입니다. 그의 진정한 기업가 정신, 숙련된 전문 지식 및 Agile 소프트웨어 개발 서비스에 대한 광범위한 지식은 조직이 새로운 차원의 성공을 달성하는 데 도움이 되었습니다.
이에 대한 생각이 있습니까? 의견에 아래로 알려주거나 Twitter 또는 Facebook으로 토론을 진행하십시오.