ReactNativeがUberEatsやその他のオンラインフードデリバリーアプリに適している理由は何ですか?

公開: 2021-12-07

Uberは、ドメインに関係なく、顧客に従来より少し多くを提供する義務があります。 オンラインフードデリバリーアプリであるUberEatsの立ち上げ計画が進行中でしたが、同社はUberPOOLやUberXの場合と同様に、これを卓越した体験にすることを約束しました。

開発者チームは、集荷と配達に伴う追加の手順、配達の専門家とのリアルタイムのコミュニケーションの欠如、3つの業種すべて(顧客、レストラン、配達担当者)との絶え間ないコミュニケーションの確立など、業界の既存の課題を認識していました。職員の。

最終的に、UberEatsはReactNativeの助けを借りて誕生しました。 この投稿では、ReachNativeの使用がUberがアプリを形作るのにどのように役立ったかを説明します。

ReactNativeを理解する

コンピューターで作業している開発者
画像:スプラッシュを解除

RNまたはReactNativeは、JavaScriptで記述された、世界的に認められたモバイルアプリケーション開発フレームワークです。 React Nativeを使用すると、ネイティブiOSおよびAndroidモバイルアプリケーションの開発が可能です。 さまざまなプラットフォームのアプリ開発は、同じコードベースを使用して行われるため、多大な労力と時間の節約につながります。

Facebookおよび関連コミュニティによって生成されたReactNativeは、2015年にオープンソースツールとして提供されました。開発後すぐに、比類のない使いやすさと使いやすさの向上により、ハイブリッドおよびモバイルソリューション開発で使用される標準ソースになりました。 また、一度書いたコードは、iOSやAndroidのアプリケーション開発に手間をかけずに使用できます。

開発者の間で非常に目立つようになり、42%以上がそれを使用しています。 実際、Skype、Facebook、Instagramなどの最新のアプリケーションは、ReactNativeのみが原因で誕生しました。

課題

モバイルアプリの開発はすでに課題に満ちた仕事であり、Uberの主な課題は、チームが3者で構成されるWebアプリ開発のみを扱っていたため、モバイルアプリの開発に必要な適切なテクノロジースタックの欠如でした。 このようなアプリの開発には、ウェブに限定されるべきではなく、飲食店に入り、レストランから重要な情報を送信できるダッシュボードが必要でした。

既存の知識に基づいて、Uberはアプリのプロトタイプを作成しました。 しかし、上記のすべての機能が欠けていました。 さらに、音による通知がないことは、食べる人がリアルタイムの注文更新を取得できなかったため、エンドユーザーエクスペリエンスに大きな打撃を与えました。

原始的なレストランダッシュボードはWeb互換であり、当時限られたデバイスへのアクセスを許可するタブレットデバイス用のReact / Fluxページを備えていました。 このレストランダッシュボードの容量の減少により、Uberはレストランとのコミュニケーションを制限することになりました。

この制御された通信の最も簡単な例の1つは、エンドユーザーが音声ベースの通知キューをサポートするためにWebページと通信する必要があることです。 レストランの従業員は、新しい注文の受け取り、注文のピッキングのための配達員の到着、および最終配達に関するリアルタイムの更新を受け取っていませんでした。

これ以外に、以前のバージョンのUberEatsは、AirPrint互換プリンターを使用してレストランに物理的なレシートを印刷するためのアクセスのみを許可していました。

Native MadeThingsをより良く反応させる

ユーバーは食べる
画像:スプラッシュを解除

開発チームは、iOS / Androidアプリの作成方法を知りませんでした。 しかし、Reactは習得されました。 したがって、UberEatsにReactNativeを好むことは確実なショットでした。 これは、UberEatsに使用される膨大なテクノロジースタックの中心的な部分です。 Uberの既存のインフラストラクチャとうまく調和し、チームがネイティブモバイルアプリ開発で探していた機能にアクセスできるようにします。

完全に機能するアプリをリリースする前に、Uberは以下の重要な部分を含むデモバージョンを考え出すことにしました。

  • アプリのクラッシュレポート
  • エンドユーザーの詳細な分析
  • ネイティブの依存関係をダウンロードするアプリの機能
  • ユーザ認証

会社のレポートによると、開発者チームは、クラッシュレポートが、分析イベントの発生などの機能に対するJavaScriptブリッジングがシームレスであり、アプリケーションのビジネスロジックの監視が容易であることがわかったため、望ましい結果をもたらすことに成功しました。

アプリケーションのアーキテクチャが再定義されました

React Nativeは、UberがモバイルとWebアプリケーションの開発を融合すると同時に、ネイティブまたはJavaScriptでの機能生成を可能にするのに役立ちました。 この相互運用性により、Uberの開発者はWebアプリケーション開発の専門知識をモバイルアプリケーション開発にも活用することができました。

彼らは、時間の必要に応じてiOSパターンとモジュールパターンを寄せ付けずに、通常のReact / ReduxWebアプリと非常によく似た方法でUberEatsを設計しました。 React Nativeを使用すると、Uberはアプリのルーティング機能を強化できます。

Uber EatsはWebベースのみでしたが、RestaurantDashboardは有名なreact-routerライブラリを使用していました。 ライブラリを使用して、アプリのルートがビューのように宣言的に説明されました。 この種のアプリルーティングはURLのみをサポートし、ブラウザの外部ではアクセスできませんでした。

React Nativeを使用すると、開発者はUINavigationControllerと非常によく似た正確なナビゲーションライブラリを利用できます。 NavigationExperimentalやNavigatorなどのReactNativeライブラリにより、Uberの開発チームはリーチルーターから簡単に移行できました。 バニラリーチルーターは、アプリのアーキテクチャによって妨げられることがほとんどないため、アプリルーティングに最適なリソースです。

移植プロセスが進行している間、開発チームは、ロジックをJavaScriptレイヤーに配置しながら、iOSとJavaScriptの間の相互作用を減らすことが賢明な方法であることを学びました。 この動きは多くの点で役立ちました。 たとえば、最終的なアプリの機能は少なくなりました。

JavaScriptとObjective-Cの切り替えにより、移植性が向上し、バグが発生する可能性が低くなります。 n Reach Nativeを使用して、UberEats開発チームはさまざまなレベルでさらに使用できる厳格なコミュニケーションAPIを考案しました。

プッシュ更新/通知を強化します

Macアプリ
画像:StackSocial

このテクノロジーを使用して構築されたアプリケーションは、Objective-C / Javaコードの小さなチャンクとリンクされているため、Webアプリの音声通知機能の欠如はReactNativeによって抑制されました。 これらのコードは一緒になってかさばるバンドルを構築し、後でアセットのようにアプリケーションとともにディスパッチされます。 ネイティブレイヤーがある場合、アプリケーションはReact Nativeブリッジファイルを変更し、リロードを要求することができます。

ネイティブレイヤーでは、アプリケーションはReact Nativeブリッジによって使用されるファイルを変更し、ファイルの再ロードを要求できます。 Uber Eatsでトラブルの原因となるバンドルと呼ばれる不適切な更新により、レストランダッシュボードが強制的に停止される可能性があります。 これは、ロジックバンドルが動作する前に発生する可能性があります。 このような悪い更新はいつでも表示され、レストランダッシュボードをクラッシュさせる可能性があります。

開発者チームは、段階的な展開が可能になるように、すべてのリリースを実験として扱うことでこの問題を修正しました。 React Nativeで提供される独自のjavascriptバンドルは、プッシュされたバンドルをロードした後に自動的にロードされました。

すべてをまとめる

Uber Eatsには興味深い旅があり、ReactNativeはこの旅を通して極めて重要な役割を果たしてきました。 このテクノロジーは、ネイティブアプリ開発のための優れた専門知識と機能を備えた開発チームが、ユーザーエクスペリエンスを向上させるのに役立ちました。

それはレストランダッシュボードのアップグレードに最大の革命的な変化をもたらしました。 これにより、この運用面が強化され、シームレスで、応答性が高くなりました。 このフレームワークは、複雑さを増すことなく、アプリの機能を確実に強化しました。 React NativesはUberEatsの巨大なテクノロジースタックのごく一部を占めており、背後から機能していますが、その貢献は称賛に値します。

UberEatsのようなオンラインフードデリバリーアプリの開発を計画している場合は、ReactNativeを検討してください。 React Nativeの開発者またはチームを雇って、プロジェクトのアイデアを実現します。 それに賭けても、誰もがっかりすることはありません。

編集者注: Chandresh Patelは、CEO、アジャイルコーチ、およびBacancyTechnologyの創設者です。 彼の真の起業家精神、熟練した専門知識、およびアジャイルソフトウェア開発サービスに関する幅広い知識は、組織が新たな成功の高さを達成するのに役立ちました。

これについて何か考えがありますか? コメントで下に知らせてください、または私たちのツイッターまたはフェイスブックに議論を持ち越してください。

編集者の推奨事項: