Mvpprocessor主要是解決使用MVP的使用需要手動進行創建對應的文件問題,提供通過注解快速生成對應文件,該項目主要是配合框架Collection-kotlin(github地址:https://github.com/usernameyangyan/Collection-Android-kotlin)進行開發
github地址:https://github.com/usernameyangyan/MvpAnnotationProject
更新說明
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<MainPresenter>(),IMainView {
}
(3)生成文件結構
(4)MainPresenter
class MainPresenter : BasePresenter<IMainView>() {
}
(5)IMainView
interface IMainView :BaseView{
}