React Native'i Uber Eats ve diğer çevrimiçi yemek dağıtım uygulamaları için uygun kılan nedir?

Yayınlanan: 2021-12-07

Uber, etki alanı ne olursa olsun müşterilerine gelenekselden biraz daha fazlasını sunmakla yükümlüdür. Bir çevrimiçi yemek dağıtım uygulaması olan UberEats'i başlatma planı yoldayken, şirket, tıpkı UberPOOL ve UberX'te olduğu gibi, bunu olağanüstü bir deneyim haline getirmeye kararlıydı.

Geliştirici ekibi, teslim alma ve bırakma ile ilgili ekstra adımlar, teslimat uzmanıyla gerçek zamanlı iletişimin olmaması ve üç dikeyin tamamıyla (müşteriler, restoranlar ve teslimat personeli) sürekli iletişim kurma gibi endüstrinin mevcut zorluklarından haberdardı. personelden.

Sonunda, UberEats, React Native'in yardımını alarak ortaya çıktı. Bu yazıda, Reach Native kullanımının Uber'in uygulamayı şekillendirmesine nasıl yardımcı olduğunu açıklayacağız.

React Native'i Anlamak

bilgisayarda çalışan geliştirici
Resim: Sıçramayı kaldır

RN veya React Native, JavaScript ile yazılmış, dünya çapında tanınan bir mobil uygulama geliştirme çerçevesidir. React Native kullanarak, native iOS ve Android mobil uygulama geliştirmek mümkündür. Çeşitli platformlar için uygulama geliştirme, büyük çabalara ve zaman tasarrufuna yol açan özdeş bir kod tabanı kullanılarak yapılacaktır.

Facebook ve ilgili topluluklar tarafından oluşturulan React Native, 2015 yılında açık kaynaklı bir araç olarak sunuldu. Geliştirmeden kısa bir süre sonra, benzersiz kolaylığı ve genişletilmiş kullanılabilirliği sayesinde hibrit ve mobil çözüm geliştirmede kullanılan standart bir kaynak haline geldi. Ayrıca bir kez yazılan kod, iOS ve Android uygulama geliştirme için sorunsuz bir şekilde kullanılabilir.

Geliştiriciler arasında o kadar belirgin hale geldi ki, %42'den fazlası onu kullanıyor. Aslında Skype, Facebook ve Instagram gibi modern uygulamalar yalnızca React Native sayesinde ortaya çıktı.

Mücadeleler

Bir mobil uygulama geliştirmek halihazırda zorluklarla dolu bir iştir ve Uber'in en büyük zorluğu, bir mobil uygulama geliştirmek için gereken yeterli bir teknoloji yığınının olmamasıydı, çünkü ekip yalnızca üç tarafla web uygulaması geliştirme ile ilgileniyordu. Böyle bir uygulamanın geliştirilmesi, web ile sınırlı kalmaması gereken, lokantalara girebilen ve restoranlardan kritik bilgileri iletebilen bir gösterge panosuna ihtiyaç duyuyordu.

Uber, mevcut bilgilere dayanarak uygulamanın bir prototipini oluşturdu. Ancak, yukarıdaki tüm özellikler ondan eksikti. Ek olarak, yiyiciler gerçek zamanlı sipariş güncellemelerini alamadığından, sesli bildirimlerin olmaması son kullanıcı deneyimine büyük zarar verdi.

İlkel Restaurant Dashboard web uyumluydu ve o sırada sınırlı cihazlara erişim sağlayan tablet cihazlar için bir React/Flux sayfası içeriyordu. Restaurant Dashboard'un bu azalan kapasitesi, Uber'i restoranlarla sınırlı iletişim kurmaya zorladı.

Bu kontrollü iletişimin en kolay örneklerinden biri, ses tabanlı bildirim yönlendirmesini desteklemek için son kullanıcıların web sayfasıyla iletişim kurması gerektiğidir. Restoran çalışanları, yeni bir sipariş alma, sipariş toplama için teslimat personelinin gelişi ve nihai teslimat hakkında gerçek zamanlı güncellemeler almıyordu.

Bunun dışında, UberEats'in önceki sürümü, yalnızca AirPrint uyumlu yazıcılar kullanan restoranlara fiziksel makbuz yazdırma erişimi verdi.

React Native İşleri Daha İyi Yaptı

uber yiyor
Resim: Sıçramayı kaldır

Geliştirme ekibi, bir iOS/Android uygulamasının nasıl oluşturulacağını bilmiyordu. Ancak, React'te ustalaştı. Bu nedenle, Uber Eats için React Native'i tercih etmek kesin bir şanstı. Uber Eats için kullanılan yüksek teknoloji yığınının önemli bir parçası. Uber'in mevcut altyapısıyla iyi geçinir ve ekibin yerel mobil uygulama geliştirmede aradıkları özelliklere erişmesine olanak tanır.

Tamamen işlevsel bir uygulama başlatmadan önce Uber, aşağıda belirtilen önemli parçaları içermesi gereken bir demo sürümü bulmaya karar verdi:

  • Uygulamanın kilitlenme raporları
  • Son kullanıcının detaylı analizi
  • Uygulamanın yerel bağımlılıkları indirme yeteneği
  • Kullanıcı doğrulama

Şirket raporuna göre, geliştirici ekibi, kilitlenme raporlamasının beklenenden daha iyi çalıştığını öğrendiğinden, demo, istenen sonucu getirmeyi başardı, çünkü analitik olayları başlatma gibi bir tesis için JavaScript köprüleme sorunsuzdu ve uygulamanın iş mantığını gözlemlemek kolaydı.

Uygulamanın mimarisi yeniden tanımlandı

React Native, yerel veya JavaScript'te özellik oluşturmaya izin verirken Uber'in mobil ve web uygulaması geliştirmeyi birleştirmesine yardımcı oldu. Bu birlikte çalışabilirlik sayesinde, Uber geliştiricileri, web uygulaması geliştirme uzmanlıklarını mobil uygulama geliştirmede de kullanabildiler.

Uber Eats'i alışılmış React / Redux web uygulamasına çok benzer bir şekilde tasarlarken, iOS kalıplarını ve modül kalıplarını günün ihtiyacına göre uzak tuttular. React Native kullanımı, Uber'in uygulamanın yönlendirme işlevini geliştirmesine olanak tanır.

Uber Eats yalnızca web tabanlıyken, Restaurant Dashboard ünlü tepki yönlendirici kitaplığını kullanıyordu. Kütüphaneyi kullanarak, uygulamanın rotaları bir Görünüm gibi bildirimsel olarak açıklandı. Bu tür bir uygulama yönlendirmesi, yalnızca erişilebilirliği tarayıcı dışında mümkün olmayan URL'leri destekledi.

React Native kullanımı, geliştiricilere UINavigationController'a çok benzeyen hassas bir gezinme kitaplığı sağlar. NavigationExperimental veya Navigator gibi React Native kitaplıkları, Uber'in geliştirme ekibinin erişim yönlendiricisinden kolayca geçiş yapmasına izin verdi. Vanilla erişim yönlendiricisi, uygulamanın mimarisi tarafından pek engellenmediği için uygulama yönlendirme için harika bir kaynaktır.

Taşıma işlemi devam ederken, geliştirme ekibi, mantığı JavaScript katmanına yerleştirirken iOS ve JavaScript arasındaki etkileşimi azaltmanın akıllıca bir hareket olduğunu öğrendi. Bu hareket birçok yönden yardımcı oldu. Örneğin, son uygulama daha az özellikli.

Daha iyi taşınabilirlik için JavaScript ve Objective-C geçişi ve hata oluşumu için daha az olasılık. Uber Eats geliştirme ekibi, n Reach Native'i kullanarak çeşitli düzeylerde daha fazla kullanılabilecek sade bir iletişim API'si geliştirdi.

Push Güncellemelerini/Bildirimini İyileştirir

mac uygulamaları
Resim: StackSocial

Web uygulamasının sesli bildirim yetersizliği, bu teknoloji kullanılarak oluşturulan uygulamalar küçük bir Objective-C/Java kodu parçasıyla birbirine bağlandığından, React Native ile engellendi. Bu kodlar, daha sonra bir varlık gibi uygulamayla birlikte gönderilen hacimli bir paket oluşturmak için bir araya gelir. Yerel bir katman olduğunda, uygulama React Native köprü dosyasını değiştirebilir ve yeniden yükleme talep edebilir.

Yerel katmanda uygulama, React Native köprüsü tarafından kullanılan dosyayı değiştirebilir ve yeniden yüklenmesini isteyebilir. Uber Eats'ta sorun yaratan paket olarak adlandırılan kötü bir güncelleme, Restoran Kontrol Panelini durdurmaya zorlayabilir. Mantık paketi harekete geçmeden önce olabilir. Bu tür kötü güncellemeler her zaman görünebilir ve Restoran Kontrol Panelini çökertebilir.

Geliştirici ekibi, aşamalı olarak kullanıma sunulabilmesi için her bir sürümü deneme olarak ele alarak bu sorunu düzeltti. React Native'de sunulan benzersiz javascript paketi, gönderilen herhangi bir paket yüklendikten sonra otomatik olarak yüklendi.

Her şeyi sarmak

Uber Eats'ın ilginç bir yolculuğu var ve React Native bu yolculuk boyunca çok önemli bir rol oynadı. Bu teknoloji, geliştirme ekibine, kullanıcı deneyimini iyileştirmek için yerel uygulama geliştirme için bazı övgüye değer uzmanlık ve işlevlerle yardımcı oldu.

Restaurant Dashboard'un yükseltilmesinde maksimum devrim niteliğinde değişiklikler getirdi. Bu operasyonel yönü güçlendirilmiş, sorunsuz ve yüksek düzeyde duyarlı hale getirdi. Bu çerçeve, karmaşıklığı artırmadan uygulamanın kapasitesini kesinlikle yoğunlaştırdı. React Natives, arkadan işlevsel olan UberEats'in devasa teknoloji yığınının küçük bir bölümünü oluştursa da, katkısı övgüye değer.

UberEats gibi bir çevrimiçi yemek dağıtım uygulaması geliştirmeyi planlıyorsanız, React Native'i düşünün. Proje fikrinizi gerçeğe dönüştürmek için React Native geliştiricisini veya ekibini işe alın. Üzerine bahis oynamak kimseyi hayal kırıklığına uğratmaz.

Editörün Notu: Chandresh Patel, Bacancy Technology'nin CEO'su, Agile koçu ve kurucusudur. Onun gerçek girişimci ruhu, yetenekli uzmanlığı ve Çevik yazılım geliştirme hizmetlerindeki kapsamlı bilgisi, kuruluşun yeni başarı zirvelerine ulaşmasına yardımcı oldu.

Bu konuda herhangi bir fikriniz var mı? Aşağıdaki yorumlarda bize bildirin veya tartışmayı Twitter veya Facebook'a taşıyın.

Editörün Önerileri: