移动端技术程序员Android技术

一个辅助MVP架构项目快捷开发库-MvpFastDagger

2019-01-17  本文已影响83人  海_3efc

分享一个针对MVP架构开发时,能快速生成相应的mvp文件的开源库,不用在手动重复的创建model、view、presenter、module、component文件了。源码地址:MvpFastDagger

MvpFastDagger

MVP+Dagger+Annotation项目架构快速生成mvp相应的文件。

MVP+Dagger+Annotation架构中每新增一个Activity或Fragment都需要新增XXPresenter、IXXview、IXXModel、XXModleImp、XXModule、XXComponent类,手动增加比较繁琐,该库可以帮助我们快速生成mvp相应的文件。

注:本开源库适用于MVP+Dagger+Annotation架构的项目。在项目中需要引入Dagger和Annotation这两个开源库。

MvpFastDagger使用仅需一步

使用该注解时,需要先创建Activity类,然后使用@MvpFastDagger。

注解使用方式:

/**
* name 对应要创建的类的名字
* basePresenterClazz是需要创建的presenter类的父类,
* iBaseViewClazz是创建view类的父类,
* iBaseModelClazz是创建model接口类的父类,
* baseModelImpClazz是要生成的ModelImp的父类,
* scopeClazz对应的Imodel Iview的生命周期,
* modules对应Dagger中@Component注解中的modules字段,
* dependencies是对应@Component注解中的dependencies字段,该字段为可选填字段
*/
@MvpFastDagger(name = "login",
    basePresenterClazz = BasePresenter.class,
    iBaseViewClazz = IViewAdvance.class,
    iBaseModelClazz = IModel.class,
    baseModelImpClazz = BaseModel.class,
    scopeClazz = PerActivity.class,
    modules = AppModule.class,
    dependencies = AppComponent.class)
public class LoginActivity extends BaseActivity<LoginPresenter> implements ILoginView {
    
    ...

}

其中name可以直接写名字,如:"login",可以用"."进行分割,如:“login.login”,这时会生成login目录,该目录下再生成放对应的java文件。

将MvpFastDagger引入到你的项目中

在Gradle中配置设置:

1.在根目录的build.gradle文件中配置如下:

allprojects {
    repositories {
        ...
        
        maven { url "https://jitpack.io" }  //增加该配置,使编译时能从jitpack库中找资源
    }
}

2.在app项目的build.gradle文件中增加引用:

android {
    ...
    defaultConfig {
        javaCompileOptions{
            annotationProcessorOptions{
                arguments = ["fastDaggerIndex": "org.harry.fastdagger.demo",//这里配置你的包名,生成的文件会在这个目录下面
                         "mvpSrcDir" : file("src/main/java").getAbsolutePath()]//主工程src路径,一般情况下该值不用修改
            }
        }
    }
}

dependencies {
    ...
    
    implementation 'com.github.zhang-hai:mvpfastdagger:1.1.0'       //使用mvpfastdagger库
    annotationProcessor 'com.github.zhang-hai:mvpfastdagger:1.1.0'  //使用mvpfastdagger库中的注解处理器
    
}
上一篇 下一篇

猜你喜欢

热点阅读