android studio mvpplugin,MVPHelper Android Studio 插件,一键生成 MVP 代码接口以及实现类。 @codeKK Android开源站...

一款适用于 Intellij IDEA 和 Android Studio 的插件, 可用于为 MVP 架构生成接口以及实现类, 解放双手.

欢迎 Issue Report, 欢迎 Feature Request, 欢迎 Pull Request

感谢XieEDeHeiShou 提供重构后的代码以及特性跟进。

预览

Contract 模式:

9736bbbc415d92b5fd824a343f51b916.gif

Presenter 模式(已设置后缀 Impl):

4944878585d94566eb365501d9f8c1f4.gif

后缀支持:

383bc72cfc09160e6ed3feaa601f5720.gif

日志输出(气球偶尔会闪现一下,可以在 Event Log 里关闭):

0199215404e9d7a72f302dd62566be8d.gif

错误提示:

174902844d2c66de26d505eced407982.gif

7abf357af24e3f6b7c0bdffad1e813a6.gif

注意

对于 MVP 模式,定义一个 Contract 类来放置 Model , View , Presenter 的接口,将大大减少类文件。

将普通的接口替代如下:

public interface GoodsInfoContract {

interface View {

}

interface Presenter {

}

interface Model {

}

}

如何安装

在插件仓库搜索 MvpHelper

d1bb2daecbd85233cc0bc54f010ebbd0.png

或者

第一步

第二步

安装插件

7f1b7cca557193d8886b218db3322d16.png

如何使用

在 Contract 类或者 Presenter 类内部,点击 Generate 菜单或使用快捷键 Alt + Insert,

选择 Mvp Helper 即可生成对应文件.

已知特性

移除快捷键 Meta + 1

在非 Java 源文件中使用快捷键 Alt + Insert 时, MvpHelper 菜单将不再出现

不再限制根目录包名

不再将 contract 包限制在根目录下, 并且支持 sub-package

例如:将会生成 ```com.example.project.package1.model.package2.AModel

以及 com.example.project.package1.presenter.package2.APresenter

当 AContract 位于 presenter 包下时将会出现错误提示而非继续生成错误的类

支持 File Header Template

已实现 Contract 模式Contract 所处的位置中必须有至少一个包以 contract 结尾

强制 Contract 为 interface

Contract 中的三个接口不包含多余的修饰符

重复生成将删除旧文件并重新生成

已实现 Presenter 模式Presenter 所处的位置中必须有至少一个包以 presenter 结尾

在 Presenter 中启动插件将复刻 Contract 模式下的实现方式

Presenter 模式在自定义后缀的情况下不会删除原有 Presenter, 因此我们建议使用Contract 模式

TODO

实现 Activity 模式

实现 Fragment 模式

将生成的文件自动添加到 Git (考虑到要进一步学习 Git 的命令行语法等相关内容, 可能会鸽)

参考资源

更新日志

v2.x 版 -基于 Intellij Open Api 实现 by XieEDeHeiShou

2017-07-19修复潜在的 NPE 异常(#20)

MvpHelper_v2_3_release.jar

2017-04-27修复实现类修饰符异常 package-private -> public

新增日志类 EventLogger

MvpHelper_v2_2_release.jar

2017-04-25实现配置信息的存取

实现运行时加载配置信息

MvpHelper_v2_0_release.jar

追加 用户指导.gif

向原仓库请求合并

在 Android Studio 环境下测试 Java 项目与 Android 项目

修复 Merge 后造成的 Contract 修饰符异常,强制生成后的 Contract 为 public interface PrefixContract

修复配置面板在销毁时触发的 AbstractMethodException

MvpHelper_v2_1_release.jar

2017-04-24实现配置面板布局

实现 Presenter 模式下的包生成类 PresenterModeDirGenerator

抽取各功能实现类接口,重新分包

基于 Intellij Open Api 更新 Contract 而非以替换文本的方式更新强制 Contract 为 interface

移除 Contract 中接口的多余修饰符 public

2017-04-23 实现在指定包下生成类文件, 并注入包信息

实现让生成类实现特定接口

更新 README.CN.MD

2017-04-15 更新对当前环境的判定规则

2017-04-12 实现 Action 的可见性判定, 当用户尝试通过 Alt + Insert 启动插件时, 将判断当前环境是否为 Java 源文件环境, 当条件不成立时将不再显示插件动作

2017-04-11 实现 DirGenerator 与 FileGenerator 用于分别生成 package 与 class

2017-04-10 实现 EnvironmentChecker 用于检查当前环境是否满足生成条件:Java 源文件的文件名是否以 Contract 结尾, 并处于 contract 包下

Java 源文件的文件名是否以 Presenter 结尾, 并处于 presenter 包下

v1.x 版 -基于 Java IO Api 实现 by githubwing

2017-04-10 将源文件分包并尝试重构

2017-04-09 移除源文件中的 C 语言异味

2017-04-06 分支自原仓库, 并向源文件中追加注释, 以便阅读

Eclipse

go_home_you_are_drunk.png

License

Copyright 2016 androidwing1992

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值