Tinder 利用 Android 架構(gòu)組件解決了社交約會應(yīng)用的難題,安卓怎么安裝tinderTinder 利用 Android 架構(gòu)組件解決了社交約會應(yīng)用的難題Tinder是一款風(fēng)靡全球的交友應(yīng)用。它以改變?nèi)藗兊募s會方式而聞名,用戶只需向右滑動即可與他人建立聯(lián)系和聊天。每天有超過2600萬用戶在Tinder上配對成為......
Tinder是一款風(fēng)靡全球的交友應(yīng)用。它以改變?nèi)藗兊募s會方式而聞名,用戶只需向右滑動即可與他人建立聯(lián)系和聊天。每天有超過2600萬用戶在Tinder上配對成為好友,自2012年正式推出以來,在Tinder上成功配對的用戶超過200億。
該公司需要根據(jù)用戶需求快速擴(kuò)展此應(yīng)用,但他們的數(shù)據(jù)庫實(shí)施從早期開始就成為遺留問題,這使得擴(kuò)展工作變得越來越復(fù)雜。此外,他們還擁有一個包含大量視圖的架構(gòu)來降低生命周期的復(fù)雜性,但需要知道哪些生命周期事件是特定于相應(yīng)Activity的事件。他們?nèi)鄙僖恢碌目蚣軄硖幚砣蝿?wù)(例如將Cursor編組到網(wǎng)域?qū)ο笾校瑘?zhí)行數(shù)據(jù)庫遷移或以一致方式執(zhí)行查詢)。
策略
Tinder利用Android架構(gòu)組件來尋求代碼升級解決方案。他們使用Lifecycle讓View觀察其宿主Activity的生命周期,同時使用LifecycleObserver簡化分散式插件架構(gòu)并防止Presenter、Activity和View出現(xiàn)膨脹。Room持久性庫提供了一種用于定義、管理和查詢其本地?cái)?shù)據(jù)庫的統(tǒng)包方法。
Tinder開發(fā)團(tuán)隊(duì)僅在兩周內(nèi)就能夠?qū)崿F(xiàn)LifecycleObserver和插件架構(gòu),而針對內(nèi)部Ads SDK無縫實(shí)現(xiàn)Room僅用了兩天時間。
“我們不再需要投入大量時間在插件或視圖內(nèi)管理Activity生命周期。”Tinder的Android主管Andy Lawton說。“Room經(jīng)過精心設(shè)計(jì),讓我們的持久性層易于實(shí)施。將Room用于內(nèi)部Ads SDK后,在前期開發(fā)中就可能節(jié)省了一周的時間。”
結(jié)果
Tinder對其Ads SDK的結(jié)果非常滿意,因此他們決定將整個數(shù)據(jù)庫層遷移到Room。測試很簡單,Room為防范忘記取消注冊而提供的保護(hù)措施減少了內(nèi)存泄漏。此外,Android架構(gòu)組件還有助于減少內(nèi)存占用。
“Android架構(gòu)組件提供的解決方法可以解決開發(fā)者在各種不同開發(fā)規(guī)模下面臨的諸多難題。”Lawton說。“通過使用生命周期感知型組件,Tinder成功地提高了開發(fā)者的工作效率、改進(jìn)了可測試性和模塊化設(shè)計(jì),同時有助于實(shí)現(xiàn)視圖優(yōu)先的架構(gòu)。采用Room后,便無需使用管理SQLite的其他解決方案,只需通過常規(guī)的配置即可實(shí)現(xiàn)數(shù)據(jù)庫管理和查詢。”
指標(biāo)
通過LifecycleObserver/插件架構(gòu)從MainActivity中移除了500多行代碼
使用入門
作為Android Jetpack的一部分,Android架構(gòu)組件面向所有開發(fā)者開放。Android架構(gòu)組件使用入門。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部