{"repo":"catchpig/kmvvm","free":true,"listed":false,"github":"https://github.com/catchpig/kmvvm","clone":"git clone https://github.com/catchpig/kmvvm.git","description":"Kotlin+Flow+Retrofit+OKHttp+ViewBanding+ViewModel+LiveData封装的MVVM框架,支持协程方式访问网络请求,kotlin最新的编译时框架ksp,可定义全局加载失败页面,并支持全局刷新数据的点击事件,还可定义全局列表的空页面","language":"Kotlin","stars":117,"topics":["mvvm","kotlin","coroutines","kotlin-serialization","android","android-library","android-ui","recyclerview","retrofit2","okhttp3"],"license":"Apache-2.0","category":"mobile-apps","readme_excerpt":"技术要点 + ### 支持Flow+Retrofit+OkHttp实现链式http请求 + ### 支持Rxjava+Retrofit+OkHttp实现链式http请求 + ### 全局配置网络加载错误页面,并支持重新加载数据 + ### 全局配置列表空页面 + ### 封装基类:BaseActivity、BaseVMActivity、BaseFragment、BaseVMFragment、RecycleAdapter、BaseViewModel + ### 引入LifeCycle，将ViewModel和Activity的生命周期绑定在一起 + ### 使用startup库将在Application中初始化移至到KotlinMvvmInitializer中,从而不用封装BaseApplication + ### KSP(编译时注解)封装注解：Title、OnClickFirstDrawable、OnClickFirstText、OnClickSecondDrawable、OnClickSecondText、Prefs、PrefsField、StatusBar、FlowError、GlobalConfig、ServiceApi + ### 封装工具扩展类：ActivityExt、AnnotationExt、CalendarExt、CommonExt,ContextExt、DateExt、EditTextExt、EncryptionExt、FileExt、GsonExt、LogExt、RxJavaExt、SnackbarExt、SoftInputExt、StringExt、TextViewExt、ToastExt、TransformExt、ViewExt、ViewGroupExt 架构图 最低兼容:21 release版本 Gitee Github CHANGE LOG Gradle 1. 在根目录的build.gradle中添加 2. 在app的build.gradle中添加 3. 在app的gradle.properties中添加 + 停用ksp增量编译 4. 在app的build.gradle的android下添加 5. 添加依赖 需要使用下载功能,请单独添加如下依赖 使用 1. 配置全部参数 + 实现IGlobalConfig 接口,并在实现类上加上注解GlobalConfig 使用示例: 2. Activity 使用MVVM的继承BaseVMActivity 不使用MVVM的继承BaseActivity 2.1 标题注解使用 使用示例 Title其他注解参数,请看下方注解详情 如果标题栏文字要根据接口显示不同的文字,也有接口设置 2.2 状态栏注解使用 使用示例 StatusBar其他注解参数,请看下方注解详情 2.3 标题右侧文字或图标按钮注解使用 使用示例 注解修饰的方法只能可以带View参数,也可以不带View参数,看自身的需求 2.4 提示框 + Android 11 之后,Toast已经不支持自定义Toast,原生的Toast是很难看的 + 本框架使用SnackBar做提示框 使用示例 2.5 加载失败页面 + 网络请求失败可展示失败页面,并有刷新按钮可以重新加载数据 + 在lifecycleLoadingView扩展函数中将showFailedView设置为true,数据请求失败了,就会显示失败页面 + 在onFailedReload 的闭包中再次调用网络请求的接口,就可以重新再加载数据了 3. Fragment 使用MVVM的","default_branch":null,"files":null,"tree":[],"storefront":"/r/catchpig","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/catchpig/kmvvm/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}