# KtMvvm **Repository Path**: alexpang/kt-mvvm ## Basic Information - **Project Name**: KtMvvm - **Description**: jetpack_mvvm+rxhttp+协程+注解生成viewmodel 的demo,仅用于学习分享,大家可以根据自己项目去写符合自己项目的框架 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-11-16 - **Last Updated**: 2021-10-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KtMvvm #### 介绍 ##### jetpack_mvvm+rxhttp+协程+注解生成viewmodel 的demo,仅用于学习分享,大家可以根据自己项目去写符合自己项目的框架 #### demo的前世今生 demo主要代码来自 鸡你太美 鸡哥的mvvm框架,只是基于他的基础上修修改改 [鸡哥的 jetpack mvvm通用框架](https://github.com/hegaojian/JetpackMvvm) 网络请求主要是用Rxhttp,能解决你遇到的所有网络问题 [Rxhttp](https://github.com/liujingxing/okhttp-RxHttp) 其他的还有 [ImmersionBar](https://github.com/gyf-dev/ImmersionBar)、[loadsir](https://github.com/KingJA/LoadSir)、[Channel](https://github.com/liangjingkanji/Channel)等优秀库,库太多,不详细列举,如有侵权,请联删 #### demo说明(由于比较简单,看看热闹就好) 1. **基类的设计** 基类全部继承抽离了的IBaseView,用于一些Ac和Fm都会用到的方法,IBaseAc和IBaseFm都是处理基础逻辑的。要实现自己的逻辑,只需要继承IBaseAc和IBaseFm(其中带Db的是Databinding),如demo里面的myappbase包名下 2. **网络请求** 只需要去 [Rxhttp](https://github.com/liujingxing/okhttp-RxHttp) 看使用说明就好,这个没什么好说的,这里只是写了几个拓展函数(BaseViewModelExt.kt),用于项目的数据空判断,还有弹窗等,math_code是用于哪个方法报错或者空数据的,对于页面很复杂的有奇效! 本来数据解析类定义了一个接口的,但是moshi不支持接口定义,如果使用fastjson的,可以按需继承接口,降低耦合 3.**全局的布局(请求中,空,等)** 这里有三个选项,内嵌页面的(需要在需要的布局id命名为load_root),dialog,没弹窗。按需服用就好 3.**注解生成viewmodel** 主要也是为了全局布局的,看代码复用就好 ### demo还是简单易懂的,实现也不是最好的,大家可以根据项目自己写适合自己的