Cosa rende React Native adatto a Uber Eats e ad altre app di consegna di cibo online?

Pubblicato: 2021-12-07

Uber è obbligata a offrire ai propri clienti qualcosa in più rispetto al convenzionale, indipendentemente dal dominio. Mentre era in preparazione il piano di lancio di UberEats, un'app online per la consegna di cibo, l'azienda si è impegnata a renderla un'esperienza eccezionale, proprio come nel caso di UberPOOL e UberX.

Il team di sviluppatori era a conoscenza delle sfide esistenti del settore, come i passaggi aggiuntivi coinvolti nel ritiro e della consegna, la mancata comunicazione in tempo reale con il professionista delle consegne e la creazione di una comunicazione costante con tutti e tre i verticali (clienti, ristoranti e addetti alle consegne) del personale.

Alla fine, è nato UberEats, grazie all'aiuto di React Native. In questo post, spiegheremo come l'utilizzo di Reach Native ha aiutato Uber a dare forma all'app.

Capire React Native

sviluppatore che lavora al computer
Immagine: Unsplash

RN o React Native è un framework di sviluppo di applicazioni mobili riconosciuto a livello mondiale, scritto in JavaScript. Utilizzando React Native, è possibile lo sviluppo di applicazioni mobili native iOS e Android. Lo sviluppo di app per le piattaforme assortite verrà effettuato utilizzando una base di codice identica che porta a enormi sforzi e risparmio di tempo.

Generato da Facebook e dalle comunità correlate, React Native è stato offerto come strumento open source nel 2015. Subito dopo lo sviluppo, è diventato una fonte standard utilizzata nello sviluppo di soluzioni ibride e mobili, grazie alla sua facilità senza pari e all'usabilità estesa. Inoltre, il codice scritto una volta può essere utilizzato per lo sviluppo di applicazioni iOS e Android senza problemi.

È diventato così importante tra gli sviluppatori che oltre il 42% lo utilizza. In effetti, le applicazioni moderne come Skype, Facebook e Instagram sono nate solo grazie a React Native.

Le sfide

Lo sviluppo di un'app mobile è già un lavoro pieno di sfide e la principale sfida di Uber è stata la mancanza di uno stack tecnologico adeguato necessario per sviluppare un'app mobile poiché il team si è occupato solo dello sviluppo di app Web, avendo tre parti. Lo sviluppo di un'app del genere necessitava di una dashboard che non si limitasse al web, potesse entrare nei ristoranti e trasmettere informazioni critiche dai ristoranti.

Sulla base delle conoscenze esistenti, Uber ha creato un prototipo dell'app. Ma mancavano tutte le funzionalità di cui sopra. Inoltre, l'assenza di notifiche sonore ha danneggiato enormemente l'esperienza dell'utente finale poiché i mangiatori non sono stati in grado di ottenere gli aggiornamenti degli ordini in tempo reale.

Il primitivo Restaurant Dashboard era compatibile con il Web e presentava una pagina React/Flux per dispositivi tablet che garantiva l'accesso a dispositivi limitati all'epoca. Questa ridotta capacità del Restaurant Dashboard ha costretto Uber ad avere una comunicazione limitata con i ristoranti.

Uno degli esempi più semplici di questa comunicazione controllata è che gli utenti finali devono comunicare con la pagina Web per supportare il segnale di notifica basato sul suono. I dipendenti del ristorante non ricevevano aggiornamenti in tempo reale sulla ricezione di un nuovo ordine, l'arrivo del personale addetto alle consegne per il prelievo degli ordini e la consegna finale.

Oltre a questo, la versione precedente di UberEats consentiva l'accesso alla stampa di ricevute fisiche solo ai ristoranti utilizzando stampanti compatibili con AirPrint.

Reagisci meglio alle cose fatte dai nativi

uber mangia
Immagine: Unsplash

Il team di sviluppo non sapeva come creare un'app iOS/Android. Ma React è stato padroneggiato. Quindi, preferire React Native per Uber Eats è stato un colpo sicuro. È una parte fondamentale del potente stack tecnologico utilizzato per Uber Eats. Va d'accordo con l'infrastruttura esistente di Uber e consente al team di accedere alle funzionalità che stavano cercando nello sviluppo di app mobili native.

Prima di lanciare un'app completamente funzionale, Uber ha deciso di creare una versione demo che dovrebbe includere le parti chiave menzionate di seguito:

  • Rapporti sugli arresti anomali dell'app
  • Analisi dettagliata dell'utente finale
  • La capacità dell'app di scaricare le dipendenze native
  • Autenticazione utente

Secondo il rapporto dell'azienda, la demo è riuscita a portare il risultato desiderato poiché il team di sviluppatori ha scoperto che la segnalazione degli arresti anomali funzionava meglio del previsto.

Architettura dell'applicazione ridefinita

React Native ha aiutato Uber a fondere lo sviluppo di applicazioni mobili e web consentendo la generazione di funzionalità in nativo o in JavaScript. Grazie a questa interoperabilità, gli sviluppatori di Uber hanno potuto utilizzare la loro esperienza nello sviluppo di applicazioni web anche nello sviluppo di applicazioni mobili.

Hanno progettato Uber Eats in modo molto simile alla consueta app Web React/Redux, tenendo a bada i modelli iOS e i modelli dei moduli secondo le necessità del momento. L'uso di React Native consente a Uber di migliorare la funzionalità di routing dell'app.

Mentre Uber Eats era solo basato sul Web, Restaurant Dashboard utilizzava la famosa libreria di router di reazione. Utilizzando la libreria, i percorsi dell'app sono stati spiegati in modo dichiarativo, come una vista. Questo tipo di app routing supportava solo URL, la cui accessibilità non era possibile al di fuori del browser.

L'uso di React Native garantisce agli sviluppatori una libreria di navigazione precisa che è molto simile a UINavigationController. Le librerie React Native come NavigationExperimental o Navigator hanno consentito al team di sviluppo di Uber di migrare facilmente al di fuori del reach-router. Vanilla reach-router è un'ottima risorsa per il routing delle app poiché difficilmente viene ostacolato dall'architettura dell'app.

Durante il processo di porting, il team di sviluppo ha appreso che è una mossa saggia ridurre l'interazione tra iOS e JavaScript posizionando la logica nel livello JavaScript. Questa mossa ha aiutato in molti modi. Ad esempio, l'app finale presentava meno funzionalità.

JavaScript e il passaggio a Objective-C per una migliore portabilità e meno probabilità che si verifichino bug. Utilizzando n Reach Native, il team di sviluppo di Uber Eats ha creato un'API di comunicazione austera che può essere ulteriormente utilizzata a vari livelli.

Migliora gli aggiornamenti/notifiche push

app per mac
Immagine: StackSocial

L'incompetenza delle notifiche sonore dell'app Web è stata frenata con React Native poiché le applicazioni create utilizzando questa tecnologia sono collegate insieme a una piccola porzione di codice Objective-C/Java. Questi codici si uniscono per creare un pacchetto ingombrante che viene successivamente inviato con l'applicazione come una risorsa. Quando è presente un livello nativo, l'applicazione è in grado di alterare il file bridge React Native e richiedere il ricaricamento.

A livello nativo, l'applicazione può modificare il file utilizzato dal bridge React Native e richiederne il ricaricamento. Un cattivo aggiornamento, che in Uber Eats viene definito un pacchetto che causa problemi, può forzare l'arresto della dashboard del ristorante. Può accadere prima che il pacchetto logico entri in azione. Tali aggiornamenti errati possono essere visualizzati in qualsiasi momento e causare il crash del dashboard del ristorante.

Il team di sviluppatori ha risolto questo problema trattando ogni singola versione come una sperimentazione in modo che sia possibile un'implementazione graduale. L'esclusivo bundle javascript, offerto in React Native, è stato caricato automaticamente dopo aver caricato qualsiasi bundle inviato.

Avvolgendo il tutto

Uber Eats ha un viaggio interessante e React Native ha svolto un ruolo fondamentale durante tutto questo viaggio. Questa tecnologia ha aiutato il team di sviluppo con alcune lodevoli competenze e funzionalità per lo sviluppo di app native a migliorare l'esperienza dell'utente.

Ha portato i massimi cambiamenti rivoluzionari nell'aggiornamento della dashboard del ristorante. Ha reso questo aspetto operativo potenziato, senza interruzioni e altamente reattivo. Questo framework ha sicuramente intensificato le capacità dell'app senza aumentare la complessità. Anche se React Natives rappresenta una piccola parte del gigantesco stack tecnologico di UberEats, funzionante da dietro, il suo contributo è encomiabile.

Se hai intenzione di sviluppare un'app per la consegna di cibo online come UberEats, considera React Native. Assumi uno sviluppatore o un team React Native per trasformare la tua idea di progetto in realtà. Scommettere su di esso non deluderà nessuno.

Nota del redattore: Chandresh Patel è un CEO, coach Agile e fondatore di Bacancy Technology. Il suo vero spirito imprenditoriale, la sua abile competenza e la vasta conoscenza dei servizi di sviluppo software Agile hanno aiutato l'organizzazione a raggiungere nuove vette di successo.

Hai qualche idea su questo? Fatecelo sapere in basso nei commenti o trasferite la discussione sul nostro Twitter o Facebook.

Raccomandazioni della redazione: