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创建基本的结构。这个操作对一个项目只需执行一次:
它将生成一个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