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