Android Studio的MVP模版

这是一个Android Studio的MVP模版。

受到u2020-mvp-android-studio-template的启发,并遵循 Antonio Leiva的MVP实现指南

这里是其结构:

com.company.app
    +-- injection
    |   - ActivityScope
    |   - AppComponent
    |   - AppModule
    |   - FragmentScope
    |   - MainViewComponent
    |   - MainViewModule
    +-- interactor
    |   +-- impl
    |       - MainViewInteractorImpl
    |   - BaseInteractor
    |   - MainViewInteractor
    +-- presenter
    |   +-- impl
    |       - MainViewPresenterImpl
    |   - BasePresenter
    |   - MainViewPresenter
    +-- view
    |   +-- impl
    |       - BaseActivity
    |       - BaseFragment
    |       - MainActivity
    |   - MainView
    | - YourApp

条件

你必须使用 Dagger 2 作为依赖注入,AppCompat用作注释和基类。

安装

Mac:

把MVPFragment, MVPActivity 和 MVPBoilerplate三个目录拷贝到$ANDROID_STUDIO_FOLDER$/Contents/plugins/android/lib/templates/activities/里面。

Windows:

把MVPFragment, MVPActivity 和 MVPBoilerplate三个目录拷贝到$ANDROID_STUDIO_FOLDER$\plugins\android\lib\templates\activities\里面。(擦,这不是跟上面一模一样的吗)

使用

1. 生成基础模版

首先,在包的根目录使用MVP Boilerplate创建基本的结构。这个操作对一个项目只需执行一次:

createboilerplate.png

它将生成一个App类(Application),用于注入的ActivityScope, FragmentScope, AppModule和AppComponent,以及BaseActivity, BaseFragment, BasePresenter 和BaseInteractor。 

一定记得在你的manifest中把生成的App作为你的Application!

2.创建第一个activity

然后你可以使用 MVP Activity创建一个新的 MVP Activity,它将创建:

一个 Activity

一个Activity的布局

用于Dagger 2注入的一个Component和一个 Module 

一个Activity的View  interface

一个Presenter interface以及默认的实现类

一个Interactor以及model的默认实现

从包的根路径去创建非常重要,否则将在子路径下重复生成整改MVP结构,这当然不是你想要的。

项目地址:https://github.com/benoitletondor/Android-Studio-MVP-template