# MyApplication **Repository Path**: trover/MyApplication ## Basic Information - **Project Name**: MyApplication - **Description**: MVVM core with kotlin And liveData & Controns - **Primary Language**: Kotlin - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-08 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## [MVVM Kotlin] 框架 ### 使用到的库 - androidx - lifecycle - retrofit2 - kotlinx-coroutines - koin ### 中心思想 1. 由页面(`Activity`/`Fragment`)发起请求 2. `ViewModel`接收,并通知Repository请求接口,调用suspend fun 返回请求结果,并通过Okhttp处理为Result类型 3. `ViewModel`获得返回结果,更新原有缓存 4. `liveData`通知UI层更新结果 与MVP相比 1. `ViewModel` 职责更明确,只管数据保存更新,不去理数据从哪里获取 2. `Activity`/`Fragment`与`LiveData`相结合,一般不用去主动调用数据更新,只需要数据源更新即可动态改变页面数据。 3. 网络请求,数据库操作都可以与协程相结合,放在Repository单独处理即可。 4. 符合单一原则。