Tinder แก้ปัญหาที่พบในแอปหาคู่ด้วยคอมโพเนนต์สถาปัตยกรรมของ Android

Tinder เป็นแอปที่ได้รับความนิยมมากที่สุดในโลกสำหรับ การพบปะผู้คนใหม่ๆ Tinder เป็นที่รู้จักในด้านการเปลี่ยนแปลงวิธีที่ผู้คนพบปะและออกเดต โดยช่วยให้ ผู้ใช้ปัดขวาเพื่อเชื่อมต่อและแชทกับผู้อื่นได้ Tinder ทำให้เกิดการจับคู่มากกว่า 26 ล้านครั้งต่อวัน และมีการจับคู่มากกว่า 2 หมื่นล้านครั้งนับตั้งแต่เปิดตัวในปี 2012

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

สิ่งที่พวกเขาทำ

รูปภาพของ
       โปรไฟล์

รูปที่ 1: รูปภาพช่างภาพใน Tinder

Tinder ใช้คอมโพเนนต์สถาปัตยกรรม Android เพื่อหาโซลูชันในการอัปเกรดโค้ด โดยใช้ Lifecycle เพื่อ ให้ View สังเกตวงจร กิจกรรมของโฮสต์ และใช้ LifecycleObserver เพื่ออำนวยความสะดวกด้านสถาปัตยกรรมปลั๊กอินแบบกระจายอำนาจและป้องกันการขยายตัวใน ออบเจ็กต์ Presenter, Activity และ View ไลบรารีการคงอยู่ของ Room มีวิธีการสำเร็จรูปในการกำหนด จัดการ และค้นหาฐานข้อมูลในเครื่อง

ทีมพัฒนาของ Tinder สามารถติดตั้งใช้งานLifecycleObserver และสถาปัตยกรรมปลั๊กอินได้ภายในเวลาเพียง 2 สัปดาห์ ในขณะที่การติดตั้งใช้งาน Room สำหรับ SDK โฆษณาภายในของ Tinder ก็ใช้เวลาเพียง 2 วัน

"เราไม่ต้องเสียเวลามากในการจัดการวงจรการทำงานของกิจกรรมภายในปลั๊กอินหรือมุมมองอีกต่อไป" Andy Lawton หัวหน้าฝ่าย Android ที่ Tinder กล่าว "การออกแบบของ Room มีการคิดมาอย่างดีและทำให้เลเยอร์การคงอยู่ของเราใช้งานได้ง่าย การใช้ Room สำหรับ SDK โฆษณาภายในช่วยประหยัดเวลาในการพัฒนาล่วงหน้าได้ประมาณ 1 สัปดาห์"

ผลลัพธ์

Tinder พอใจกับผลลัพธ์ที่ได้จาก SDK โฆษณามากจน ย้ายเลเยอร์ฐานข้อมูลทั้งหมดไปใช้ Room การทดสอบทำได้ง่าย และการป้องกันของ Room ไม่ให้ลืมยกเลิกการลงทะเบียนบางอย่างช่วยลดการรั่วไหลของหน่วยความจำ นอกจากนี้ Android Architecture Components ยังช่วยลดการใช้หน่วยความจำด้วย

"Architecture Components ของ Android ได้มอบแนวทางในการแก้ปัญหาต่างๆ มากมาย ที่นักพัฒนาแอปต้องเผชิญในทุกระดับ" Lawton กล่าว "การใช้คอมโพเนนต์ที่รับรู้ถึงวงจรของแอปช่วยให้ Tinder ปรับปรุงประสิทธิภาพการทำงานของนักพัฒนาแอป ความสามารถในการทดสอบ และความสามารถในการแยกส่วนได้ ในขณะเดียวกันก็ช่วยให้สถาปัตยกรรมที่เน้นมุมมองเป็นอันดับแรกทำงานได้ดีขึ้น Room ช่วยลดความจำเป็นในการใช้โซลูชันอื่นๆ สำหรับ การจัดการ SQLite และเปลี่ยนการจัดการและการค้นหาฐานข้อมูลให้เป็นการออกกำลังกาย ในการกำหนดค่า"

เมตริก

นำโค้ดออกมากกว่า 500 บรรทัดจาก MainActivity ผ่าน LifecycleObserver / สถาปัตยกรรมปลั๊กอิน

เริ่มต้นใช้งาน

Android Architecture Components เปิดให้ใช้งานสำหรับนักพัฒนาแอปทุกคนใน Android Jetpack เริ่มต้นใช้งานคอมโพเนนต์สถาปัตยกรรมของ Android