‫Tinder פותרת בעיות באפליקציות היכרויות באמצעות רכיבי ארכיטקטורה של Android

Tinder היא האפליקציה הפופולרית ביותר בעולם להכרויות עם אנשים חדשים. האפליקציה ידועה בכך שהיא משנה את הדרך שבה אנשים נפגשים ויוצאים לדייטים, ומאפשרת למשתמשים להחליק ימינה כדי להתחבר ולשוחח עם אחרים. בטינדר נוצרים יותר מ-26 מיליון התאמות ביום, ויותר מ-20 מיליארד התאמות נוצרו מאז ההשקה שלו בשנת 2012.

החברה נדרשה להרחיב את השימוש באפליקציה במהירות, בהתאם לדרישות המשתמשים, אבל הטמעת מסד הנתונים שלהם נשארה כפי שהייתה בתחילת הדרך, ולכן היה יותר ויותר מסובך להרחיב אותה. הם גם השתמשו בארכיטקטורה עם הרבה תצוגות כדי לצמצם את המורכבות של מחזור החיים, אבל הם רצו לדעת אילו אירועים במחזור החיים ספציפיים לפעילות. לא היה להם מסגרת עקבית לטיפול במשימות כמו המרת אובייקטים של Cursor לאובייקטים של דומיין, ביצוע מיגרציות של מסדי נתונים או ביצוע שאילתות באופן עקבי.

מה הם עשו

תמונה של
       פרופיל

איור 1: תמונה של צלם בטינדר

חברת Tinder פנתה אל Android Architecture Components כדי לקבל פתרונות לשדרוג הקוד שלה. הם השתמשו ב-Lifecycle כדי לאפשר ל-View לעקוב אחר מחזור החיים של פעילות המארח, והם השתמשו ב-LifecycleObserver כדי להקל על ארכיטקטורת פלאגין מבוזרת ולמנוע ניפוח של אובייקטים ב-Presenter, ב-Activity וב-View. ‫Room persistence library סיפקה שיטה מוכנה להגדרה, לניהול ולשאילת שאילתות במסד הנתונים המקומי.

צוות הפיתוח של Tinder הצליח להטמיע את LifecycleObserver ואת ארכיטקטורת הפלאגין תוך שבועיים בלבד, והטמעת Room עבור ה-SDK הפנימי של המודעות שלהם ארכה יומיים בלבד.

"לא היינו צריכים יותר להשקיע זמן רב בניהול מחזור החיים של הפעילות בתוך תוספים או תצוגות", אומר אנדי לוטון, ראש צוות Android ב-Tinder. "העיצוב של Room מחושב היטב ומאפשר לנו להטמיע בקלות את שכבת העקביות שלנו. השימוש ב-Room עבור Ads SDK פנימי חסך לנו כנראה שבוע של זמן בפיתוח הראשוני".

תוצאות

ב-Tinder היו כל כך מרוצים מהתוצאות שהשיגו באמצעות חבילת ה-SDK של Google Ads, שהם החליטו להעביר את כל שכבת מסד הנתונים שלהם ל-Room. הבדיקה הייתה קלה, וההגנה של Room מפני שכחת ביטול הרישום של משהו הפחיתה את דליפות הזיכרון. רכיבי הארכיטקטורה של Android עוזרים גם ליצור טביעות זיכרון קטנות יותר.

"Android Architecture Components סיפק פתרון לבעיות רבות שמפתחים נתקלים בהן בכל מיני היקפים", אומר לוטון. "באמצעות שימוש ברכיבים שמודעים למחזור החיים, הצליחה Tinder לשפר את הפרודוקטיביות של המפתחים, את יכולת הבדיקה ואת המודולריות, וגם לתרום לארכיטקטורה שמתמקדת בתצוגה. ‫Room מבטל את הצורך בפתרונות אחרים לניהול SQLite, והופך את ניהול מסד הנתונים והשאילתות לתרגיל בהגדרות".

מדד

הוסרו 500 שורות קוד מ-MainActivity באמצעות LifecycleObserver / plugin architecture

שנתחיל?

רכיבי הארכיטקטורה של Android פתוחים לכל המפתחים כחלק מ-Android Jetpack. תחילת העבודה עם רכיבי ארכיטקטורה של Android