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

Zillow 是一个顶级的在线房地产市场,为消费者提供他们需要购买、租赁或出售房屋的房源、数据和计算器。该网站还将用户与当地经纪人、抵押贷款提供商和房屋设计师联系起来。

Zillow 成立于 2006 年,总部位于西雅图,拥有超过 1.1 亿套美国房屋的数据库。他们还运营着 20 多个广受欢迎的移动房地产应用套件。当他们在 2017 年 7 月开始对其 Android 移动应用中的代码进行重大改版时,Zillow 希望通过使代码更易于阅读并更易于新团队成员理解来简化开发人员的工作。

他们做了什么

Zillow 使用 Android 架构组件 改进了他们的代码。“我们正在研究不同类型的架构,”Zillow 软件工程师 Aayush Raj 说。“架构组件具有生命周期感知的额外优势,这使得代码更容易管理。”

ViewModel 允许数据在配置更改(例如屏幕旋转)中生存,而 LiveData 是一个可观察的数据持有者类。Zillow 使用了这两者,它们共同提供了一个强大的模板来实现模型-视图-视图模型 (MVVM)。“它有助于使我们的代码更易于测试,”Raj 说。Room 持久性库也使构建本地缓存层变得容易,因此应用不必经常从网络提取数据,“从而提高了性能和用户体验”。

结果

将大量用于数据更新的代码从活动移至 ViewModel “绝对有所帮助”,使整个代码库更易于阅读,Raj 补充道。他们尚未将整个应用转换为 ViewModel,但使用 ViewModel 的组件没有任何与生命周期相关的错误。向活动和片段通信数据更新也运行良好。

“开发人员使用 Android 架构组件的效率绝对更高,”Zillow 高级软件开发工程师 Sumiran Pradhan 说。架构组件在从头开始时为他们提供指导,但在现有代码库中也很有用。“一旦新开发人员了解逻辑在 ViewModel 中的位置,他们就会喜欢它,”Pradhan 补充道。

开始

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