《Android构建MVVM》系列(一) 之 MVVM架构快速入门 (3)

《Android构建MVVM》系列(一) 之 MVVM架构快速入门

  上图是官方给出的架构模型,包含以下组件:

生命周期管理库 - Lifecycle

Lifecycle组件,为下面两个组件提供了生命周期感知的基础

LiveData组件,可观测的、可感知生命周期的数据

ViewModel组件,不依赖于View、提供UI数据、桥接持久层、业务逻辑

数据持久化库 - Room,Sqlite的ORM

   事实上,Architecture Components实现了一个比较理想化的依赖方式,自上而下,单向依赖;VM层并不持有View层的任何引用,但却是生命周期感知的,在新版的AS中View也不用去实现某些接口或继承特定的类,AppCompatActivity已经帮你整合了这一切。

  另外,关于Repository的解释,它并不是架构组件的成员,但是Google推荐引入Repository层,来作为我们唯一的数据来源接口,我们从图中也很好理解,他的职责就是使VM层对数据来源是无感知的,包装了数据来源,提供统一的API,供上层透明化的调用。

  更多的关于Android Architecture Components的教程,欢迎关注我们后续的架构组件篇章。

五、一个MVVM的Demo

  面我们通过设计App《每日美文》的Demo,并使用Architecture Components架构MVVM的方式去完成。

  这个Demo使用Kotlin开发,没接触过Kotlin的童鞋也不必担心,本文没有用到Kotlin的一些高级特性,只需要Google花个半小时时间学习基本的Kotlin语法便可无障碍阅读

  项目地址:https://github.com/xykjlcx/OneArticleDemo

1. 首先我们创建工程

《Android构建MVVM》系列(一) 之 MVVM架构快速入门

 

项目创建完成后的目录结构

《Android构建MVVM》系列(一) 之 MVVM架构快速入门

架构组件的相关依赖

// livedata viewmodel def lifecycle_version = "1.1.1" implementation "android.arch.lifecycle:extensions:$lifecycle_version" implementation "android.arch.lifecycle:viewmodel:$lifecycle_version" implementation "android.arch.lifecycle:livedata:$lifecycle_version" implementation "android.arch.lifecycle:runtime:$lifecycle_version" annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyzxg.html