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

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

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

预览

Contract 模式:

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

后缀支持:

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

错误提示:

注意

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

将普通的接口替代如下:

public interface GoodsInfoContract {

interface View {

}

interface Presenter {

}

interface Model {

}

}

如何安装

在插件仓库搜索 MvpHelper

或者

第一步

第二步

安装插件

如何使用

在 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

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.

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

  1. 【Android】一键生成MVP代码-DevMvp快速开发框架

    序言 每个程序员看到一堆烂代码都有一颗重构的心.烂代码写起来嘴上 笑嘻嘻,心里mmp.特别是有代码洁癖的人.重构不易且行且珍惜,此框架将减少开发时间.如果你们的项目结构跟我的不一样,这也不用担心,你看 ...

  2. android堆内存解析,heapsnap HeapSnap 是一款针对 Android 进程堆内存进行追踪、定位,以便查出泄露位置的工具 @codeKK c开源站...

    1.HeapSnap 是什么 HeapSnap 是一个定位内存泄露的工具,适用于 Android 平台. 主要特性如下: 对系统负载低 不需要修改目标进程的源代码 支持 Andoroid 上的大多数 ...

  3. AD导出3D模型的各种方法——AD转SW(MCAD插件一键生成),也适用于Fusion360、Inventor等三维建模软件

    〇.所有方法的链接 1.AD转SW(贴图形式) 2.AD转SW(MCAD插件一键生成),也适用于Fusion360.Inventor等三维建模软件 3.AD转Keyshot(待写) 4.AD转PPT( ...

  4. 可以一键生成crud的php框架,关于Laravel+vue+admin一键生成CRUD代码

    下面由Laravel框架教程栏目给大家介绍Laravel+vue+admin 一键生成CRUD代码,希望对需要的朋友有所帮助! Laravue Laravel+vue+admin 实现了JWT鉴权,动 ...

  5. vscode 一键生成vue代码

    1安装vetur插件,识别vue文件安装完成之后点击重新加载 2文件–>首选项–>用户片段–>点击新建代码片段–取名vue.json 确定 3粘贴以下代码 {"Print ...

  6. Fiddler抓包一键生成调用代码

    首先我们的需求场景是 用Fiddler抓到某个接口调用后,用代码来模拟调用,一般我们写代码会有3个步骤: 1设置http请求相关的参数:header,method,url,cookie等 2设置pos ...

  7. Yapi接口一键生成Java代码

    文章目录 一.简介 1. 这是什么 2. 有啥用 3. 为什么要用 二.快速开始 1.下载 2.配置 3.运行 三.版本说明 v1.0.0 v1.0.1 四.Github项目地址 一.简介 1. 这是 ...

  8. android多国语言翻译包命名,android多国语言翻译工具,一键生成28国家翻译6666翻车了...

    最近把软件发到google play苦于多国语言,手动翻译数量太多太蛋疼,因而用百度翻译api进行多国语言翻译.java 很少说直接上代码:json ""; api 匹配的是app ...

  9. android多国语言翻译工具,一键生成28国家翻译6666翻车了

    最近把软件发到google play苦于多国语言,手动翻译数量太多太蛋疼,于是用百度翻译api进行多国语言翻译. 不多说直接上代码: "<string\\s*name=\\\" ...

最新文章

  1. 软工实践原型设计——PaperRepositories
  2. B S架构 服务器虚拟化,B/S 架构及 Tomcat
  3. testng 定时构建_Jenkins使用安装:持续集成自动化方案 | Web自动化测试方案
  4. 《王福朋petshop4.0视频教程》新浪视频(高清)
  5. MegaSAS RAID卡 BBU Learn Cycle周期的影响
  6. 回溯法——N皇后问题
  7. python实战===如何优雅的打飞机
  8. springboot-devtools idea或eclipse 热加载
  9. 花了一个深夜,才用C语言写了一个2048游戏雏形
  10. UI设计灵感|如果你想设计一款有趣的状态提示,看这里OOPS!
  11. DOM(十四):代理检测和事件处理(跨浏览器)
  12. [Java] 蓝桥杯BASIC-18 基础练习 矩形面积交
  13. centos6.5下编译安装mariadb-10.0.20
  14. php 每七天执行代码,十天学会PHP之第七天
  15. rbw设计_同步调谐可变带通滤波器的设计
  16. 利用Greenfoot制作简单的小游戏——记忆翻牌游戏(一)
  17. 如何使用Java计算闰年?
  18. 苹果手机屏幕突然变暗_手机突然屏幕失灵
  19. 加拿大留学有何魅力,可以吸引众留学生蜂拥而至
  20. Windows中的未处理异常

热门文章

  1. python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现
  2. Kyligence 荣登福布斯中国企业科技50强榜单
  3. 数据结构——迪杰斯特拉(Dijkstra)算法
  4. Python爬虫实战(六) 天猫(淘宝)评论爬取与分析实战
  5. 官方文档-丰富你的数据
  6. Abloomy设备3A认证接入实施方案
  7. android 实现视频播放功能,Android项目实现视频播放器
  8. CCS(TI IDE)中英文切换
  9. 网络IO Socket
  10. 倚天屠龙记的赵敏郡主,她是老赖吗?