Zillow是一個頂級在線房地產交易平臺,為消費者提供購買、出租或出售房屋時所需的房源信息、數(shù)據(jù)和計算器。此外,該網(wǎng)站還將用戶與本地代理人、抵押貸款提供機構和家居設計師聯(lián)系起來。
Zillow成立于2006年,總部位于西雅圖,他們維護著覆蓋逾1.1億美國家庭的數(shù)據(jù)庫。此外,他們還運營著一套(二十多個)熱門的移動房地產應用。他們從2017年7月開始對Android移動應用中的代碼進行重大改造,當時Zillow希望使代碼更易于閱讀且更容易讓新團隊成員理解,以簡化開發(fā)者的工作。
策略
Zillow使用Android架構組件改進了他們的代碼?!拔覀冋谘芯渴褂貌煌愋偷募軜??!盳illow軟件工程師Aayush Raj說道?!凹軜嫿M件還具有生命周期感知功能,從而使代碼更易于管理?!?/span>
ViewModel允許數(shù)據(jù)在屏幕旋轉等配置發(fā)生更改后繼續(xù)存在,而LiveData是一種可觀察的數(shù)據(jù)容器類。Zillow同時使用這兩個類來提供功能強大的模板,以實現(xiàn)Model-View-ViewModel(MVVM)。“這樣可以使我們的代碼更易于測試。”Raj說。利用Room持久性庫,開發(fā)者還可以輕松構建本地緩存層,因此應用不必經(jīng)常從網(wǎng)絡中提取數(shù)據(jù),從而“改進性能和用戶體驗”。
結果
Raj還講道,將大量數(shù)據(jù)更新代碼從Activity遷移到ViewModels“絕對有助于”讓整個代碼庫更易于閱讀。他們還沒有將整個應用轉換為使用ViewModel,但使用ViewModel的組件未出現(xiàn)任何與生命周期相關的錯誤。向Activity和片段傳遞數(shù)據(jù)更新的工作流也運行良好。
Zillow高級軟件開發(fā)工程師Sumiran Pradhan說:“通過使用Android架構組件,開發(fā)者的工作效率確實得到了提高”。架構組件不僅可以在開發(fā)者從零開始開發(fā)應用時為他們提供指導,也可以在現(xiàn)有代碼庫中加以使用?!耙坏┬碌拈_發(fā)者了解ViewModel中的邏輯所在,就會喜歡上它!”Pradhan補充道。
使用入門
作為Android Jetpack的一部分,Android架構組件面向所有開發(fā)者開放。了解Android架構組件使用入門。