是什麼讓 React Native 適合 Uber Eats 和其他在線食品配送應用程序?

已發表: 2021-12-07

優步有義務為其客戶提供比傳統更多的服務,無論其領域是什麼。 雖然推出在線食品配送應用 UberEats 的計劃正在籌備中,但該公司致力於使其成為一種非凡的體驗,就像 UberPOOL 和 UberX 一樣。

開發人員團隊意識到了行業現有的挑戰,例如接送過程中涉及的額外步驟,無法與交付專業人員進行實時溝通,以及與所有三個垂直領域(客戶、餐廳和交付人員)建立持續的溝通的人員。

最終,在 React Native 的幫助下,UberEats 應運而生。 在這篇文章中,我們將解釋 Reach Native 的使用如何幫助 Uber 塑造應用程序。

了解 React Native

在計算機上工作的開發人員
圖片:不飛濺

RN 或 React Native 是全球公認的移動應用程序開發框架,用 JavaScript 編寫。 使用 React Native,可以進行原生 iOS 和 Android 移動應用程序的開發。 各種平台的應用程序開發將使用相同的代碼庫完成,這會帶來巨大的努力和節省時間。

React Native 由 Facebook 和相關社區生成,於 2015 年作為開源工具提供。開發後不久,由於其無與倫比的易用性和擴展的可用性,它成為混合和移動解決方案開發中使用的標準源。 此外,一次編寫的代碼可以輕鬆用於 iOS 和 Android 應用程序開發。

它在開發人員中變得如此突出,超過 42% 的人正在使用它。 事實上,Skype、Facebook 和 Instagram 等現代應用程序的出現只是因為 React Native。

挑戰

開發移動應用程序已經是一項充滿挑戰的工作,而 Uber 的主要挑戰是缺乏開發移動應用程序所需的足夠技術堆棧,因為該團隊僅處理 Web 應用程序開發,由三方組成。 開發這樣一個應用程序需要一個儀表板,它不應該局限於網絡,可以進入餐館,並從餐館傳輸關鍵信息。

基於現有知識,Uber 構建了該應用程序的原型。 但是,它缺少上述所有功能。 此外,沒有聲音通知極大地損害了最終用戶的體驗,因為食客無法獲得實時訂單更新。

原始的 Restaurant Dashboard 與 Web 兼容,並為平板設備提供了一個 React/Flux 頁面,當時授予對有限設備的訪問權限。 餐廳儀表板容量的減少迫使優步與餐廳的溝通受到限制。

這種受控通信的最簡單示例之一是最終用戶必須與網頁通信以支持基於聲音的通知提示。 餐廳員工沒有收到關於收到新訂單、送貨人員到達以進行訂單揀选和最終送貨的實時更新。

除此之外,之前版本的 UberEats 只允許使用兼容 AirPrint 的打印機打印實體收據給餐廳。

React Native 讓事情變得更好

超級吃
圖片:不飛濺

開發團隊不知道如何構建 iOS/Android 應用程序。 但是,React 被掌握了。 因此,為 Uber Eats 選擇 React Native 是肯定的。 它是用於 Uber Eats 的龐大技術堆棧的關鍵部分。 它與 Uber 的現有基礎設施相得益彰,並允許團隊訪問他們在本地移動應用程序開發中尋找的功能。

在推出功能齊全的應用程序之前,Uber 決定推出一個演示版本,其中應包括以下關鍵部分:

  • 應用程序崩潰報告
  • 最終用戶的詳細分析
  • 應用程序下載本機依賴項的能力
  • 用戶認證

根據公司報告,該演示成功地帶來了預期的結果,因為開發團隊發現崩潰報告比預期的效果更好。JavaScript 橋接像觸發分析事件這樣的設施是無縫的,並且觀察應用程序的業務邏輯很容易。

應用程序架構重新定義

React Native 幫助 Uber 融合了移動和 Web 應用程序開發,同時允許在原生或 JavaScript 中生成功能。 由於這種互操作性,Uber 的開發人員也能夠在移動應用程序開發中利用他們的 Web 應用程序開發專業知識。

他們以與慣用的 React /Redux Web 應用程序非常相似的方式設計 Uber Eats,同時根據時間的需要保持 iOS 模式和模塊模式。 React Native 的使用允許 Uber 增強應用程序的路由功能。

雖然 Uber Eats 只是基於 Web 的,但 Restaurant Dashboard 使用的是著名的 react-router 庫。 使用該庫,應用程序的路由以聲明方式進行解釋,就像視圖一樣。 此類應用程序路由僅支持 URL,其可訪問性在瀏覽器之外是不可能的。

React Native 的使用為開發人員提供了一個與 UINavigationController 非常相似的精確導航庫。 像 NavigationExperimental 或 Navigator 這樣的 React Native 庫使 Uber 的開發團隊能夠輕鬆地從reach-router 遷移。 Vanillareach-router 是應用程序路由的絕佳資源,因為它幾乎不會受到應用程序架構的阻礙。

在移植過程進行時,開發團隊了解到,在將邏輯放在 JavaScript 層中的同時減少 iOS 和 JavaScript 之間的交互是明智之舉。 這一舉措在很多方面都有幫助。 例如,最終應用程序的功能較少。

JavaScript 和 Objective-C 切換以獲得更好的可移植性,並減少錯誤發生的機率。 使用 n Reach Native,Uber Eats 開發團隊提出了一個簡單的通信 API,可以在各個級別進一步使用。

增強推送更新/通知

mac 應用程序
圖片:堆棧社交

由於使用該技術構建的應用程序與一小塊 Objective-C/Java 代碼鏈接在一起,因此 Web 應用程序的聲音通知功能不可用 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 是 Bacancy Technology 的 CEO、敏捷教練和創始人。 他真正的企業家精神、熟練的專業知識和在敏捷軟件開發服務方面的廣泛知識幫助該組織達到了新的成功高度。

對此有什麼想法嗎? 在下面的評論中讓我們知道,或者將討論帶到我們的 Twitter 或 Facebook。

編輯推薦: