อะไรทำให้ React Native เหมาะสำหรับ Uber Eats และแอปส่งอาหารออนไลน์อื่นๆ

เผยแพร่แล้ว: 2021-12-07

Uber จำเป็นต้องเสนอบริการที่มากกว่าปกติให้กับลูกค้าเล็กน้อย โดยไม่คำนึงถึงโดเมน ในขณะที่แผนการเปิดตัว UberEats ซึ่งเป็นแอปส่งอาหารออนไลน์อยู่ในระหว่างดำเนินการ บริษัทมุ่งมั่นที่จะทำให้เป็นประสบการณ์ที่ยอดเยี่ยม เช่นเดียวกับ UberPOOL และ UberX

ทีมนักพัฒนารับทราบถึงความท้าทายที่มีอยู่ของอุตสาหกรรม เช่น ขั้นตอนเพิ่มเติมที่เกี่ยวข้องกับการรับและวาง การไม่มีการสื่อสารแบบเรียลไทม์กับผู้เชี่ยวชาญด้านการจัดส่ง และสร้างการสื่อสารอย่างต่อเนื่องกับทั้งสามกลุ่มธุรกิจ (ลูกค้า ร้านอาหาร และเจ้าหน้าที่จัดส่ง) ของบุคลากร

ในที่สุด UberEats ก็เกิดขึ้นโดยได้รับความช่วยเหลือจาก React Native ในโพสต์นี้ เราจะอธิบายว่าการใช้ Reach Native ช่วยให้ Uber พัฒนาแอปได้อย่างไร

ทำความเข้าใจ React Native

นักพัฒนาที่ทำงานบนคอมพิวเตอร์
ภาพ: Unsplash

RN หรือ React Native เป็นเฟรมเวิร์กการพัฒนาแอปพลิเคชันบนมือถือที่ได้รับการยอมรับทั่วโลก ซึ่งเขียนด้วย JavaScript การใช้ React Native, การพัฒนาแอปพลิเคชั่นมือถือ iOS และ Android ดั้งเดิมนั้นเป็นไปได้ การพัฒนาแอพสำหรับแพลตฟอร์มที่หลากหลายจะทำโดยใช้ฐานรหัสที่เหมือนกันซึ่งนำไปสู่ความพยายามอย่างมากและประหยัดเวลา

สร้างโดย Facebook และชุมชนที่เกี่ยวข้อง React Native ได้รับการเสนอให้เป็นเครื่องมือโอเพนซอร์สในปี 2015 ไม่นานหลังจากการพัฒนา มันกลายเป็นแหล่งข้อมูลมาตรฐานที่ใช้ในการพัฒนาโซลูชันแบบไฮบริดและมือถือ เนื่องจากความสะดวกที่ไม่มีใครเทียบได้และความสามารถในการใช้งานที่เพิ่มขึ้น นอกจากนี้ โค้ดที่เขียนเพียงครั้งเดียวยังสามารถใช้สำหรับการพัฒนาแอปพลิเคชัน iOS และ Android ได้โดยไม่ยุ่งยาก

มันมีความโดดเด่นมากในหมู่นักพัฒนาที่มีการใช้งานมากกว่า 42% อันที่จริง แอปพลิเคชั่นที่ทันสมัยเช่น Skype, Facebook และ Instagram เกิดขึ้นเพราะ React Native เท่านั้น

ความท้าทาย

การพัฒนาแอพมือถือเป็นงานที่เต็มไปด้วยความท้าทาย และความท้าทายที่สำคัญของ Uber ก็คือการขาดกองเทคโนโลยีที่เพียงพอซึ่งจำเป็นต่อการพัฒนาแอพมือถือเนื่องจากทีมจัดการกับการพัฒนาเว็บแอพเท่านั้นซึ่งมีสามฝ่าย การพัฒนาแอพดังกล่าวจำเป็นต้องมีแดชบอร์ดที่ไม่ควรจำกัดอยู่แค่เว็บ สามารถเข้าสู่ร้านอาหาร และส่งข้อมูลที่สำคัญจากร้านอาหาร

จากความรู้ที่มีอยู่ Uber ได้สร้างต้นแบบของแอป แต่คุณสมบัติข้างต้นทั้งหมดหายไปจากมัน นอกจากนี้ การไม่มีเสียงแจ้งเตือนส่งผลเสียต่อประสบการณ์ของผู้ใช้ปลายทางอย่างมาก เนื่องจากผู้กินไม่สามารถรับการอัปเดตคำสั่งซื้อตามเวลาจริงได้

แดชบอร์ดร้านอาหารแบบดั้งเดิมนั้นเข้ากันได้กับเว็บและมีหน้า React/Flux สำหรับอุปกรณ์แท็บเล็ตที่อนุญาตให้เข้าถึงอุปกรณ์ที่จำกัดในขณะนั้น ความจุที่ลดลงของแดชบอร์ดร้านอาหารทำให้ Uber ต้องสื่อสารกับร้านอาหารอย่างจำกัด

ตัวอย่างที่ง่ายที่สุดอย่างหนึ่งของการสื่อสารที่มีการควบคุมนี้คือผู้ใช้ปลายทางต้องสื่อสารกับหน้าเว็บเพื่อรองรับการส่งสัญญาณเสียงแจ้งเตือน พนักงานร้านอาหารไม่ได้รับข้อมูลอัปเดตตามเวลาจริงในการรับคำสั่งซื้อใหม่ การมาถึงของพนักงานจัดส่งสำหรับการเลือกคำสั่งซื้อ และการส่งมอบขั้นสุดท้าย

นอกเหนือจากนี้ UberEats เวอร์ชันก่อนหน้าให้สิทธิ์เข้าถึงเฉพาะการพิมพ์ใบเสร็จที่ร้านอาหารโดยใช้เครื่องพิมพ์ที่รองรับ AirPrint

ตอบโต้ Native Made Things Better

uber กิน
ภาพ: Unsplash

ทีมพัฒนาไม่ทราบวิธีสร้างแอป iOS/Android แต่ React เชี่ยวชาญ ดังนั้นการเลือกใช้ React Native สำหรับ Uber Eats จึงเป็นเรื่องที่แน่นอน เป็นส่วนสำคัญของเทคโนโลยีขั้นสูงที่ใช้สำหรับ Uber Eats มันเข้ากันได้ดีกับโครงสร้างพื้นฐานที่มีอยู่ของ Uber และช่วยให้ทีมสามารถเข้าถึงคุณสมบัติที่พวกเขาต้องการในการพัฒนาแอพมือถือดั้งเดิม

ก่อนเปิดตัวแอปที่ทำงานได้อย่างสมบูรณ์ Uber ได้ตัดสินใจสร้างเวอร์ชันสาธิตที่ควรรวมส่วนสำคัญที่กล่าวถึงด้านล่าง:

  • รายงานข้อขัดข้องของแอป
  • การวิเคราะห์โดยละเอียดของผู้ใช้ปลายทาง
  • ความสามารถของแอพในการดาวน์โหลดการพึ่งพาดั้งเดิม
  • การตรวจสอบผู้ใช้

ตามรายงานของบริษัท การสาธิตประสบความสำเร็จในการนำผลลัพธ์ที่ต้องการ เนื่องจากทีมนักพัฒนาพบว่าการรายงานข้อขัดข้องนั้นทำงานได้ดีกว่าที่คาดไว้ JavaScript bridging สำหรับสิ่งอำนวยความสะดวก เช่น เหตุการณ์การวิเคราะห์เริ่มทำงานได้อย่างราบรื่น และการสังเกตตรรกะทางธุรกิจของแอปพลิเคชันนั้นทำได้ง่าย

สถาปัตยกรรมของแอปพลิเคชันกำหนดใหม่

React Native ช่วยให้ Uber หลอมรวมการพัฒนาแอปพลิเคชันบนมือถือและเว็บแอปพลิเคชัน ในขณะที่อนุญาตให้สร้างฟีเจอร์ในภาษาเนทีฟหรือใน JavaScript เนื่องจากการทำงานร่วมกันนี้ นักพัฒนาซอฟต์แวร์ของ Uber จึงสามารถใช้ความเชี่ยวชาญด้านการพัฒนาเว็บแอปพลิเคชันของตนในการพัฒนาแอปพลิเคชันบนมือถือได้เช่นกัน

พวกเขาออกแบบ Uber Eats ในลักษณะที่คล้ายกับเว็บแอป React /Redux ทั่วไป โดยที่ยังคงรูปแบบ iOS และรูปแบบโมดูลไว้ตามความต้องการของชั่วโมง การใช้ React Native ช่วยให้ Uber ปรับปรุงฟังก์ชันการกำหนดเส้นทางของแอปได้

ในขณะที่ Uber Eats เป็นเพียงเว็บเท่านั้น ส่วนแดชบอร์ดร้านอาหารก็ใช้ไลบรารีเรซเตอร์เราเตอร์ที่มีชื่อเสียง การใช้ไลบรารี่ มีการอธิบายเส้นทางของแอปอย่างเปิดเผย เช่น มุมมอง การกำหนดเส้นทางแอปประเภทนี้รองรับเฉพาะ URL ซึ่งไม่สามารถเข้าถึงนอกเบราว์เซอร์ได้

การใช้ React Native ช่วยให้นักพัฒนามีไลบรารีการนำทางที่แม่นยำซึ่งคล้ายกับ UINavigationController มาก React Native Library เช่น NavigationExperimental หรือ Navigator ช่วยให้ทีมพัฒนาของ Uber ย้ายออกจากเราเตอร์การเข้าถึงได้อย่างง่ายดาย Vanilla reach-router เป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับการกำหนดเส้นทางแอพ เนื่องจากสถาปัตยกรรมของแอพแทบจะไม่ขัดขวาง

ในขณะที่กระบวนการย้ายข้อมูลกำลังดำเนินอยู่ ทีมพัฒนาได้เรียนรู้ว่าควรย้ายที่ชาญฉลาดเพื่อลดการโต้ตอบระหว่าง iOS และ JavaScript ในขณะที่วางตรรกะในเลเยอร์ JavaScript การย้ายครั้งนี้ช่วยได้หลายวิธี ตัวอย่างเช่น แอปสุดท้ายมีคุณลักษณะน้อยกว่า

การสลับ JavaScript และ Objective-C เพื่อการพกพาที่ดีขึ้น และโอกาสเกิดข้อผิดพลาดน้อยลง เมื่อใช้ n Reach Native ทีมพัฒนา Uber Eats ได้ใช้ API การสื่อสารที่เข้มงวดซึ่งสามารถใช้งานได้ในระดับต่างๆ เพิ่มเติม

ปรับปรุงการอัพเดท/การแจ้งเตือนแบบพุช

แอพ Mac
ภาพ: StackSocial

ความสามารถในการแจ้งเตือนด้วยเสียงของเว็บแอปถูกระงับด้วย React Native เนื่องจากแอปพลิเคชันที่สร้างขึ้นโดยใช้เทคโนโลยีนี้เชื่อมโยงกับโค้ด Objective-C/Java ขนาดเล็ก รหัสเหล่านี้มารวมกันเพื่อสร้างบันเดิลขนาดใหญ่ที่ส่งไปพร้อมกับแอปพลิเคชันเช่นสินทรัพย์ในภายหลัง เมื่อมีเลเยอร์เนทีฟ แอปพลิเคชันจะสามารถเปลี่ยนไฟล์ React Native bridge และขอให้โหลดซ้ำได้

ที่เลเยอร์ดั้งเดิม แอปพลิเคชันสามารถเปลี่ยนไฟล์ที่ใช้โดย React Native bridge และขอให้โหลดซ้ำ การอัปเดตที่ไม่ดีซึ่งเรียกว่าชุดรวมที่ก่อให้เกิดปัญหาใน Uber Eats สามารถบังคับให้หยุดแดชบอร์ดร้านอาหารได้ มันสามารถเกิดขึ้นได้ก่อนที่กลุ่มลอจิกจะเริ่มทำงาน การอัปเดตที่ไม่ดีดังกล่าวสามารถปรากฏขึ้นได้ทุกเมื่อและทำให้แดชบอร์ดร้านอาหารพัง

ทีมนักพัฒนาแก้ไขปัญหานี้โดยถือว่าทุกรุ่นเป็นการทดลองเพื่อให้สามารถเปิดตัวได้ทีละน้อย บันเดิลจาวาสคริปต์ที่ไม่ซ้ำกันซึ่งมีให้ใน React Native ถูกโหลดโดยอัตโนมัติหลังจากโหลดบันเดิลที่พุช

หมดทุกอย่างแล้ว

Uber Eats มีการเดินทางที่น่าสนใจ และ React Native มีบทบาทสำคัญในการเดินทางครั้งนี้ เทคโนโลยีนี้ช่วยทีมพัฒนาด้วยความเชี่ยวชาญและฟังก์ชันการทำงานที่น่ายกย่องสำหรับการพัฒนาแอปเนทีฟเพื่อปรับปรุงประสบการณ์ผู้ใช้

ทำให้เกิดการเปลี่ยนแปลงสูงสุดในการอัพเกรดแดชบอร์ดร้านอาหาร ทำให้การปฏิบัติงานด้านนี้มีประสิทธิภาพ ราบรื่น และตอบสนองได้ดี เฟรมเวิร์กนี้เพิ่มความสามารถของแอปอย่างแน่นอนโดยไม่เพิ่มความซับซ้อน แม้ว่า React Natives จะมีส่วนเล็ก ๆ ของ UberEats เทคโนโลยีแมมมอธที่ใช้งานได้จากด้านหลัง

หากคุณกำลังวางแผนที่จะพัฒนาแอปส่งอาหารออนไลน์ เช่น UberEats ให้พิจารณา React Native จ้างนักพัฒนา React Native หรือทีมเพื่อเปลี่ยนแนวคิดโครงการของคุณให้เป็นจริง การวางเดิมพันจะไม่ทำให้ใครผิดหวัง

หมายเหตุบรรณาธิการ: Chandresh Patel เป็น CEO โค้ช Agile และผู้ก่อตั้ง Bacancy Technology จิตวิญญาณของผู้ประกอบการอย่างแท้จริง ความเชี่ยวชาญที่มีทักษะ และความรู้ที่กว้างขวางเกี่ยวกับบริการพัฒนาซอฟต์แวร์แบบ Agile ช่วยให้องค์กรประสบความสำเร็จในระดับใหม่

มีความคิดเกี่ยวกับเรื่องนี้หรือไม่? แจ้งให้เราทราบด้านล่างในความคิดเห็นหรือดำเนินการสนทนาไปที่ Twitter หรือ Facebook ของเรา

คำแนะนำของบรรณาธิการ: