Mvpprocessor主要是解决使用MVP的使用需要手动进行创建对应的文件问题,提供通过注解快速生成对应文件,该项目主要是配合框架Collection-kotlin(github地址:https://github.com/usernameyangyan/Collection-Android-kotlin)进行开发
更新说明
v1.0.0
1.增加V模块和P模块的文件通过注解方式快速生成
2.生成的文件支持生成java和kotlin
框架的引入
kotlin项目引入:
implementation 'com.youngman.mvp:mvpprocessor:1.0.0'
kapt 'com.youngman.mvp:mvpprocessor:1.0.0'
java项目引入:
implementation 'com.youngman.mvp:mvpprocessor:1.0.0'
annotationProcessor 'com.youngman.mvp:mvpprocessor:1.0.0'
注解MvpAnnotation属性介绍
属性
作用
prefixName
模块的功能名称,会根据这个名字生成对应的xxxPresenter 、IxxxView
basePresenterClazz
要生成的presenter类的父类
baseViewClazz
需要生成的view接口的父类
language
选择生成java文件还是kotlin文件,默认生成kotlin文件
结合框架Collection-kotlin使用流程
(1)使用前配置(app中的build.gradle)
defaultConfig {
applicationId "com.yang.mvp.annotation"
minSdkVersion 19
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
//使用需要配置的地方
javaCompileOptions{
annotationProcessorOptions{
includeCompileClasspath = true
arguments = ["mvp_create_package_path": "com.yang.mvp.annotation",
"project_java_path" : file("src/main/java").getAbsolutePath()]
}
}
}
mvp_create_package_path:项目包结构路径,一般和包名一致
project_java_path:项目java模块的绝对路径
(2)代码使用
@MvpAnnotation(prefixName = "Main"
,basePresenterClazz = BasePresenter::class
,baseViewClazz = BaseView::class)
class MainActivity:IBaseActivity(),IMainView {
}
(3)生成文件结构
(4)MainPresenter
class MainPresenter : BasePresenter() {
}
(5)IMainView
interface IMainView :BaseView{
}
本文章会根据需要持续更新,建议点赞收藏,便于查看。也欢迎大家提出更多建议。