يعمل Tinder على حل المشاكل المتعلقة بالمواعدة في تطبيقات Android باستخدام مكونات Android الهندسية

Tinder هو التطبيق الأكثر شهرة في العالم للقاء أشخاص جدد. تشتهر هذه اللعبة بتغييرات طريقة لقاء الأشخاص وتعارفهم، وهي تمكّن المستخدمين من التمرير سريعًا لليسار للتواصل والدردشة مع الآخرين. يُنشئ Tinder أكثر من 26 مليون تطابق يوميًا، وقد تم إجراء أكثر من 20 مليار مطابقة منذ إطلاقها في 2012.

كانت الشركة بحاجة إلى توسيع نطاق التطبيق بسرعة بناءً على طلب المستخدمين، لكن تم ترك عملية تنفيذ قاعدة بياناتها منذ بداياتها، ما جعل التوسّع أكثر تعقيدًا. كانت لديهم أيضًا بنية جذابة للعرض لتقليل تعقيدات دورة الحياة، لكنهم بحاجة إلى معرفة أحداث دورة الحياة التي كانت خاصة بأحد الأنشطة. كانت هذه الأدوات تفتقر إلى إطار عمل متّسق للتعامل مع المهام، مثل تنظيم عناصر Cursor في كائنات النطاق، أو إجراء عمليات نقل بيانات قاعدة البيانات، أو إجراء طلبات البحث بشكل منتظم.

الإجراءات التي اتخذتها الشركة

صورة ملف شخصي

الشكل 1: صورة لمصوِّر على Tinder

لجأ فريق Tinder إلى مكوّنات Android الهندسية للحصول على حلول لترقية الرموز البرمجية. واستخدَم Lifecycle للسماح لـ View بمراقبة مراحل نشاط المضيف واستخدمت LifecycleObserver لتسهيل بنية المكوّنات الإضافية اللامركزية ومنع الانتفاخ في الكائنات Presenter وActivity وView. وقد وفّرت مكتبة استمرارية الغرفة طريقة جاهزة لتحديد قاعدة البيانات المحلية وإدارتها وإجراء طلبات بحث عنها.

تمكّن فريق تطوير Tinder من تنفيذ بنية LifecycleObserver والمكوّنات الإضافية في أسبوعين فقط، بينما استغرق تنفيذ الغرفة لحزمة SDK الداخلية للإعلانات بسلاسة يومَين فقط.

يقول "آندي لوتون"، رئيس قسم Android في Tinder: "لم نعد مضطرين إلى استثمار وقت كبير في إدارة مراحل النشاط ضمن المكوّنات الإضافية أو المشاهدات". "تصميم الغرفة مدروس جيدًا ويجعل طبقة المثابرة سهلة التنفيذ. من المحتمل أن يكون استخدام الغرفة لحزمة تطوير البرامج (SDK) الداخلية في "إعلانات Google" قد وفّر أسبوعًا من الوقت في مرحلة التطوير مقدمًا".

النتائج

أسعدت منصة Tinder بالنتائج التي توصّلت إليها بشأن حزمة تطوير البرامج (SDK) لعرض الإعلانات، ما دفعها إلى نقل طبقة قاعدة البيانات بأكملها إلى Room. كان إجراء الاختبار سهلاً، وتم توفير حماية للغرفة من نسيان إلغاء تسجيل أي شيء به تسرب منخفض في الذاكرة. كما تساعد مكونات Android الهندسية في إنتاج مساحة أصغر للذاكرة.

يقول لوتون: "لقد وفرت مكونات Android الهندسية وصفة طبية لحل العديد من المشكلات التي يواجهها المطورون على جميع المستويات". "من خلال استخدام المكوّنات التي تراعي مراحل نشاط المستخدمين، تمكّن فريق Tinder من تحسين إنتاجية المطوّرين وإمكانية اختبارهم وإتاحة وحداتهم النمطية، مع الحفاظ على البنية الأساسية التي تعطي الأولوية للعرض. يغنيك Room عن الحاجة إلى حلول أخرى لإدارة SQLite، ويحول إدارة قاعدة البيانات والاستعلام إلى تمرين في التهيئة".

المقياس

تمت إزالة أكثر من 500 سطر من الرموز البرمجية من MainActivity عبر LifecycleObserver / بنية المكوّن الإضافي

البدء

تتوفر مكونات بنية Android لجميع المطورين كجزء من حزمة Android Jetpack. بدء استخدام مكونات Android الهندسية