欢迎参加我们将于 6 月 3 日举行的 #Android11:Beta 版发布会

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 的组件未出现任何与生命周期相关的错误。向 Activity 和片段传递数据更新的工作流也运行良好。

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

使用入门

作为 Android Jetpack 的一部分,Android 架构组件面向所有开发者开放。了解 Android 架构组件使用入门。