Qu'est-ce qui rend React Native adapté à Uber Eats et à d'autres applications de livraison de nourriture en ligne ?

Publié: 2021-12-07

Uber est obligé d'offrir un peu plus que du conventionnel à ses clients, quel que soit le domaine. Alors que le projet de lancement d'UberEats, une application de livraison de nourriture en ligne, était en préparation, l'entreprise s'est engagée à en faire une expérience exceptionnelle, tout comme c'est le cas avec UberPOOL et UberX.

L'équipe de développeurs était consciente des défis existants de l'industrie, comme les étapes supplémentaires impliquées dans le ramassage et le dépôt, l'absence de communication en temps réel avec le professionnel de la livraison et l'établissement d'une communication constante avec les trois secteurs verticaux (clients, restaurants et livreurs) des personnels.

Finalement, UberEats a vu le jour, avec l'aide de React Native. Dans cet article, nous expliquerons comment l'utilisation de Reach Native a aidé Uber à façonner l'application.

Comprendre React Native

développeur travaillant sur ordinateur
Image : Unsplash

RN ou React Native est un framework de développement d'applications mobiles mondialement reconnu, écrit en JavaScript. En utilisant React Native, le développement d'applications mobiles natives iOS et Android est possible. Le développement d'applications pour les plates-formes assorties se fera à l'aide d'une base de code identique, ce qui entraînera d'énormes efforts et un gain de temps.

Généré par Facebook et les communautés associées, React Native a été proposé en tant qu'outil open source en 2015. Peu de temps après le développement, il est devenu une source standard utilisée dans le développement de solutions hybrides et mobiles, en raison de sa facilité inégalée et de sa convivialité étendue. De plus, le code écrit une fois peut être utilisé pour le développement d'applications iOS et Android sans aucun problème.

Il est devenu si important parmi les développeurs que plus de 42 % l'utilisent. En fait, des applications modernes comme Skype, Facebook et Instagram ont vu le jour uniquement grâce à React Native.

Les défis

Développer une application mobile est déjà un travail rempli de défis et le principal défi d'Uber était le manque d'une pile technologique adéquate nécessaire pour développer une application mobile, car l'équipe ne s'occupait que du développement d'applications Web, en trois parties. Le développement d'une telle application nécessitait un tableau de bord qui ne devait pas se limiter au Web, pouvait entrer dans les restaurants et transmettre les informations critiques des restaurants.

Sur la base des connaissances existantes, Uber a construit un prototype de l'application. Mais, toutes les fonctionnalités ci-dessus en manquaient. De plus, l'absence de notifications sonores a considérablement nui à l'expérience de l'utilisateur final, car les consommateurs n'ont pas pu obtenir les mises à jour des commandes en temps réel.

Le tableau de bord du restaurant primitif était compatible avec le Web et comportait une page React/Flux pour les tablettes donnant accès à des appareils limités à l'époque. Cette capacité réduite du tableau de bord du restaurant a forcé Uber à avoir une communication limitée avec les restaurants.

L'un des exemples les plus simples de cette communication contrôlée est que les utilisateurs finaux doivent communiquer avec la page Web pour prendre en charge le signal de notification basé sur le son. Les employés du restaurant ne recevaient pas de mises à jour en temps réel sur la réception d'une nouvelle commande, l'arrivée du personnel de livraison pour la préparation des commandes et la livraison finale.

En dehors de cela, la version précédente d'UberEats n'accordait l'accès à l'impression de reçus physiques qu'aux restaurants utilisant des imprimantes compatibles AirPrint.

React Native a amélioré les choses

uber mange
Image : Unsplash

L'équipe de développement ne savait pas comment créer une application iOS/Android. Mais, React était maîtrisé. Donc, préférer React Native pour Uber Eats était un coup sûr. C'est un élément essentiel de la pile technologique lourde utilisée pour Uber Eats. Il s'intègre bien à l'infrastructure existante d'Uber et permet à l'équipe d'accéder aux fonctionnalités qu'elle recherchait dans le développement d'applications mobiles natives.

Avant de lancer une application entièrement fonctionnelle, Uber a décidé de proposer une version de démonstration qui devrait inclure les éléments clés mentionnés ci-dessous :

  • Rapports de plantage de l'application
  • Analyse détaillée de l'utilisateur final
  • La capacité de l'application à télécharger les dépendances natives
  • Authentification d'utilisateur

Selon le rapport de l'entreprise, la démo a réussi à apporter le résultat souhaité, car l'équipe de développeurs a découvert que les rapports d'incident fonctionnaient mieux que prévu.

L'architecture de l'application redéfinie

React Native a aidé Uber à fusionner le développement d'applications mobiles et Web tout en permettant la génération de fonctionnalités en natif ou en JavaScript. Grâce à cette interopérabilité, les développeurs d'Uber ont également pu utiliser leur expertise en développement d'applications Web dans le développement d'applications mobiles.

Ils ont conçu Uber Eats d'une manière très similaire à l'application Web habituelle React / Redux tout en gardant les modèles iOS et les modèles de modules à distance selon les besoins de l'heure. L'utilisation de React Native permet à Uber d'améliorer la fonctionnalité de routage de l'application.

Alors qu'Uber Eats était uniquement basé sur le Web, Restaurant Dashboard utilisait la célèbre bibliothèque de routeurs de réaction. À l'aide de la bibliothèque, les itinéraires de l'application ont été expliqués de manière déclarative, comme une vue. Ce type de routage d'application ne prenait en charge que les URL, dont l'accessibilité n'était pas possible en dehors du navigateur.

L'utilisation de React Native offre aux développeurs une bibliothèque de navigation précise très similaire à UINavigationController. Les bibliothèques React Native telles que NavigationExperimental ou Navigator ont permis à l'équipe de développement d'Uber de migrer facilement hors du routeur de portée. Le routeur de portée vanille est une excellente ressource pour le routage des applications car il n'est guère gêné par l'architecture de l'application.

Pendant le processus de portage, l'équipe de développement a appris qu'il était sage de réduire l'interaction entre iOS et JavaScript tout en plaçant la logique dans la couche JavaScript. Ce déménagement a aidé à bien des égards. Par exemple, l'application finale en comportait moins.

Commutation JavaScript et Objective-C pour une meilleure portabilité et moins de risques d'apparition de bogues. À l'aide de n Reach Native, l'équipe de développement d'Uber Eats a mis au point une API de communication austère qui peut être utilisée à différents niveaux.

Améliore les mises à jour/notifications push

applications mac
Image : StackSocial

L'incompétence des applications Web en matière de notification sonore a été limitée avec React Native, car les applications créées à l'aide de cette technologie sont liées à un petit morceau de code Objective-C/Java. Ces codes se réunissent pour créer un ensemble volumineux qui est ensuite envoyé avec l'application comme un atout. Lorsqu'il existe une couche native, l'application est capable de modifier le fichier de pont React Native et de demander un rechargement.

Au niveau de la couche native, l'application peut modifier le fichier utilisé par le pont React Native et demander qu'il soit rechargé. Une mauvaise mise à jour, appelée bundle problématique dans Uber Eats, peut forcer l'arrêt du tableau de bord du restaurant. Cela peut se produire avant que le bundle logique n'entre en action. Ces mauvaises mises à jour peuvent apparaître à tout moment et planter le tableau de bord du restaurant.

L'équipe de développeurs a résolu ce problème en traitant chaque version comme une expérimentation afin qu'un déploiement progressif soit possible. Le bundle javascript unique, proposé dans React Native, a été automatiquement chargé après le chargement de tout bundle poussé.

Envelopper le tout

Uber Eats a un parcours intéressant et React Native a joué un rôle central tout au long de ce parcours. Cette technologie a aidé l'équipe de développement avec une expertise et des fonctionnalités louables pour le développement d'applications natives afin d'améliorer l'expérience utilisateur.

Il a apporté un maximum de changements révolutionnaires dans la mise à niveau du tableau de bord du restaurant. Il a rendu cet aspect opérationnel autonome, transparent et hautement réactif. Ce cadre a sûrement intensifié la capacité de l'application sans augmenter la complexité. Même si React Natives ne représente qu'une petite partie de la gigantesque pile technologique d'UberEats, fonctionnelle par derrière, sa contribution est louable.

Si vous envisagez de développer une application de livraison de nourriture en ligne comme UberEats, pensez à React Native. Embauchez un développeur ou une équipe React Native pour transformer votre idée de projet en réalité. Placer un pari dessus ne décevra personne.

Note de l'éditeur : Chandresh Patel est PDG, coach Agile et fondateur de Bacancy Technology. Son véritable esprit d'entreprise, son expertise habile et ses connaissances approfondies des services de développement de logiciels Agile ont aidé l'organisation à atteindre de nouveaux sommets de succès.

Avez-vous des idées à ce sujet? Faites-le nous savoir ci-dessous dans les commentaires ou transférez la discussion sur notre Twitter ou Facebook.

Recommandations des éditeurs :