Zillow 使用 Android 架构组件构建清晰的新代码

Zillow 是一个顶级在线房地产市场,为消费者提供购买、出租或出售房屋所需的房源、数据和计算器。此外,该网站还将用户与本地代理人、抵押贷款提供商和家居设计师联系起来。

Zillow 成立于 2006 年,总部位于西雅图,维护着一个包含超过 1.1 亿美国家庭的数据库。他们还运营着一套(二十多个)热门的移动房地产应用。他们从 2017 年 7 月开始对 Android 移动应用中的代码进行重大改造,当时 Zillow 希望通过使代码更易于阅读且更容易让新团队成员理解来简化开发者的生活。

策略

Zillow 使用 Android 架构组件改进了他们的代码。 “我们正在研究使用不同类型的架构,”Zillow 软件工程师 Aayush Raj 说道,“架构组件还具有生命周期感知功能,可使代码更易于管理。”

ViewModel 允许数据在屏幕旋转等配置发生更改后继续存在,而 LiveData 是一种可观察的数据容器类。Zillow 同时使用这两个类来提供功能强大的模板,以实现 Model-View-ViewModel (MVVM)。“这样可以使我们的代码更易于测试。”Raj 说道。利用 Room 持久性库,开发者还可以轻松构建本地缓存层,因此应用不必经常从网络中提取数据,从而“改进性能和用户体验”。

结果

Raj 还讲道,将大量数据更新代码从 Activity 迁移到 ViewModels“绝对有助于”让整个代码库更易于阅读。 他们尚未将整个应用转换为 ViewModel,但使用 ViewModel 的组件未出现任何与生命周期相关的 bug。向 activity 和 fragment 传递数据更新的工作流也运行良好。

Zillow 高级软件开发工程师 Sumiran Pradhan 说:“通过使用 Android 架构组件,开发者的工作效率确实得到了提高”。 架构组件不仅可以在开发者从零开始开发应用时为他们提供指导,也可以在现有代码库中加以使用。“一旦新的开发者了解 ViewModel 中的逻辑所在,就会喜欢上它!”Pradhan 补充道。

开始使用

Android 架构组件作为 Android Jetpack 的一部分向所有开发者开放。开始使用 Android 架构组件