Tinder محبوب ترین برنامه جهان برای ملاقات با افراد جدید است. این برنامه که به دلیل تغییر نحوه ملاقات و قرار ملاقات افراد شناخته شده است، به کاربران این امکان را می دهد که برای اتصال و گپ زدن با دیگران، انگشت خود را به سمت راست بکشند. Tinder روزانه بیش از 26 میلیون کبریت را جرقه می زند که از زمان عرضه آن در سال 2012 بیش از 20 میلیارد مسابقه ساخته شده است.
این شرکت باید بر اساس تقاضای کاربر، برنامه را به سرعت افزایش میداد، اما پیادهسازی پایگاه داده آنها از روزهای اولیه باقی مانده بود و گسترش آن را به طور فزایندهای پیچیدهتر میکرد. آنها همچنین دارای یک معماری سنگین برای کاهش پیچیدگی های چرخه حیات بودند، اما باید بدانند کدام رویدادهای چرخه حیات مختص یک فعالیت است. آنها فاقد یک چارچوب ثابت برای رسیدگی به وظایفی مانند قرار دادن اشیاء Cursor
در اشیاء دامنه، ایجاد مهاجرت پایگاه داده یا انجام مداوم پرس و جوها بودند.
کاری که آنها انجام دادند
Tinder برای راهحلهایی برای ارتقای کد خود به مؤلفههای معماری اندروید روی آورد. آنها از Lifecycle
استفاده کردند تا به View
اجازه دهند چرخه حیات فعالیت میزبان خود را مشاهده کند، و از LifecycleObserver
برای تسهیل معماری غیرمتمرکز افزونه و جلوگیری از نفخ در اشیاء Presenter
، Activity
و View
استفاده کردند. کتابخانه تداوم اتاق یک روش کلید در دست برای تعریف، مدیریت و پرس و جو از پایگاه داده محلی خود ارائه می دهد.
تیم توسعه Tinder توانست معماری LifecycleObserver
و پلاگین را تنها در دو هفته پیادهسازی کند، در حالی که اجرای یکپارچه Room برای Ads SDK داخلی خود فقط دو روز طول کشید.
اندی لاتون، رئیس اندروید در Tinder میگوید: «دیگر مجبور نیستیم زمان قابل توجهی را برای مدیریت چرخه حیات فعالیت در داخل افزونهها یا نماها صرف کنیم. "طراحی اتاق کاملاً فکر شده است و اجرای لایه پایداری ما را آسان می کند. استفاده از Room برای SDK تبلیغات داخلی احتمالاً یک هفته در زمان توسعه اولیه صرفه جویی می کند."
نتایج
Tinder آنقدر از نتایج خود با Ads SDK خود راضی بود که کل لایه پایگاه داده خود را به Room منتقل می کند. آزمایش آسان بود، و محافظت اتاق در برابر فراموش کردن لغو ثبت چیزی باعث کاهش نشت حافظه شد. اجزای معماری اندروید نیز به تولید ردپای حافظه کوچکتر کمک میکند.
لاتون میگوید: «مجموعههای معماری اندروید نسخهای برای حل بسیاری از دردسرهایی که توسعهدهندگان در مقیاسهای مختلف با آن مواجه هستند، ارائه کرده است. Tinder با استفاده از مؤلفههای مربوط به چرخه حیات، توانسته بهرهوری، آزمایشپذیری و ماژولار بودن توسعهدهنده را بهبود بخشد، در حالی که برای معماری view-first مساعد است. Room نیاز به راهحلهای دیگر برای مدیریت SQLite را از بین میبرد و مدیریت پایگاه داده و جستجو را تغییر میدهد. به یک تمرین در پیکربندی."
متریک
بیش از 500 خط کد از طریق معماری LifecycleObserver
/ افزونه از MainActivity
حذف شد.
شروع کنید
Android Architecture Components به عنوان بخشی از Android Jetpack برای همه توسعه دهندگان باز است. با اجزای معماری Android شروع کنید .