{"id":19611522,"url":"https://github.com/longforus/mvpautocodeplus","last_synced_at":"2025-06-16T19:06:48.900Z","repository":{"id":40519776,"uuid":"139694214","full_name":"longforus/MvpAutoCodePlus","owner":"longforus","description":"🔌An IDEA/Android Studio plug-in that automatically generates an MVP template code","archived":false,"fork":false,"pushed_at":"2022-11-25T02:56:28.000Z","size":1263,"stargazers_count":176,"open_issues_count":2,"forks_count":28,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-27T22:33:28.315Z","etag":null,"topics":["android","androidstudio","androidstudio-plugin","idea","idea-plugin","mvp"],"latest_commit_sha":null,"homepage":"https://plugins.jetbrains.com/plugin/10907-mvpautocodeplus","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/longforus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-04T08:42:40.000Z","updated_at":"2025-01-01T13:16:46.000Z","dependencies_parsed_at":"2022-06-29T21:14:20.476Z","dependency_job_id":null,"html_url":"https://github.com/longforus/MvpAutoCodePlus","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/longforus/MvpAutoCodePlus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longforus%2FMvpAutoCodePlus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longforus%2FMvpAutoCodePlus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longforus%2FMvpAutoCodePlus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longforus%2FMvpAutoCodePlus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/longforus","download_url":"https://codeload.github.com/longforus/MvpAutoCodePlus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longforus%2FMvpAutoCodePlus/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260221335,"owners_count":22976861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","androidstudio","androidstudio-plugin","idea","idea-plugin","mvp"],"created_at":"2024-11-11T10:40:11.936Z","updated_at":"2025-06-16T19:06:48.872Z","avatar_url":"https://github.com/longforus.png","language":"Kotlin","readme":"\n\nMvpAutoCodePlus\n=================\n\n[![Downloads][downloads-img]][plugin]\n\n[Machine translation of English documents](./README_EN.md)\n\n### JetBrains IDEA/Android Studio MVP模版代码生成插件\n\n![screenshots](./images/mvp.gif)\n\n特征\n----\n- 根据指定的父接口生成MVP Contract接口类.\n- 可选的根据生成的MVP Contract和指定的父类生成MVP实现类,并添加抽象方法默认实现.\n  - 支持Activity\n  - 支持Fragment\n  - 支持Presenter\n  - 支持Model\n- 支持Java和Kotlin语言\n\n支持的 IDE:\n- Android Studio(从3.1(173.3727—173.* )开始支持)\n- IntelliJ IDEA\n- IntelliJ IDEA Community Edition\n\n安装\n----\n\n- **使用 IDE 内置插件系统安装:**\n  - \u003ckbd\u003eFile\u003c/kbd\u003e \u003e \u003ckbd\u003ePreferences(Settings)\u003c/kbd\u003e \u003e \u003ckbd\u003ePlugins\u003c/kbd\u003e \u003e \u003ckbd\u003eBrowse repositories...\u003c/kbd\u003e \u003e \u003ckbd\u003e搜索并找到\"MvpAutoCodePlus\"\u003c/kbd\u003e \u003e \u003ckbd\u003eInstall Plugin\u003c/kbd\u003e\n\n   ![install](./images/install1.png)\n\n- **手动安装:**\n\n  - 下载[`最新发布的插件包`][latest-release] \u003e \u003ckbd\u003eFile\u003c/kbd\u003e \u003e\u003ckbd\u003ePreferences(Settings)\u003c/kbd\u003e \u003e \u003ckbd\u003ePlugins\u003c/kbd\u003e \u003e \u003ckbd\u003eInstall plugin from disk...\u003c/kbd\u003e\n\n重启**IDE**.\n\n使用\n----\n\n1. 配置父接口:\n\n   - \u003ckbd\u003eFile\u003c/kbd\u003e \u003e \u003ckbd\u003ePreferences(Settings)\u003c/kbd\u003e \u003e \u003ckbd\u003eOther Settings\u003c/kbd\u003e \u003e \u003ckbd\u003eMvpAutoCodePlus\u003c/kbd\u003e \u003e \n\n    ![settings](./images/settings.png)\n\n    基于[`这一套Java接口`][my_interface_java]的配置示例:\n\n    ![settings1](./images/settings1.png)\n\n     项目内的Class已经在V1.0beta2支持选择,但是如果有泛型限定的话,泛型还是需要手动添加,比如选择的类签名为:**com.longforus.base.java.BasePresenterJv\u003cV extends IView,M extends IModel\u003e**\n\n     ![use3](./images/use3.png)\n\n     需要手动添加后面的泛型限定\u003cV,M\u003e:\n\n     ![use4](./images/use4.png)\n\n     现在还支持全局和当前项目模式,全局模式中配置的接口可在所有项目中使用,当前项目中配置的接口只在当前项目中起效,方便有多个不相同工程时的无缝切换.\n\n2. 生成:\n\n   ![use1](./images/use1.png)\n\n   - 右击要生成的目标包,\u003ckbd\u003eNew\u003c/kbd\u003e \u003e \u003ckbd\u003eGenerate Mvp Code\u003c/kbd\u003e (或选中包,按Alt+Insert),生成contract包后可以选中contract包或contract的父包.\n\n   - 输入生成的代码主名,比如要做Login功能,就输入Login,生成结果是ILoginContract,LoginActivity,LoginPresenter,LoginModel\n\n   - 从1.4开始如果P的超接口以ViewModel结尾，那么生成的结果是ILoginContract,LoginActivity,LoginViewModel,LoginModel\n\n   - 选择代码实现方式,可选Java或Kotlin\n\n   - 选择View的实现方式,Activity或Fragment,如果配置了多个的话,可选择其中之一,不想生成的项去掉前面的复选框.如果没有输入P和M实现类的超类,那么生成的P和M的实现类只会实现对应的接口.\n\n   - 从1.1开始支持不生成Model接口和对应的实现类,更加灵活.\n\n   - 点击Ok,稍等一会儿,代码就生成了,生成的包结构如下:\n   \n     ![use2](./images/use2.png)\n\n## 关于父接口\n\n只使用了我自己目前使用的接口来开发测试,欢迎各位使用自己的接口进行测试.如需要[`我使用的接口`][my_interface] ,请下载后放入自己的项目中.\n\n## 存在问题\n\n- 父接口和父类如果有泛型限定在选择后还需要手动输入泛型,好在只用设置一次就可保存了,项目中也不会经常变动.\n- 还没有研究生成View对应的布局文件,要是也能生成默认的,会更方便一些.\n- 其他未知问题,此插件是作者首次开发插件,完全从0开始,官方的文档不是很详细,英语水平更是不堪,国内的参考资料也不多,做这个纯粹是忽然想到了,就开始做了.难免有未尽之处,欢迎各位star,issue.\n\n[完整的更新历史记录](./CHANGELOG.md)\n\n[`鸿洋公众号插件广告文`][ad_link] ,感谢大神给予机会.插件的开发,推荐大家查看鸿洋的开发教程,要是插件不符合你的要求.可以issue,也可以fork自行修改.感谢你的关注.\n\n[latest-release]: https://github.com/longforus/MvpAutoCodePlus/releases\n[downloads-img]: https://img.shields.io/jetbrains/plugin/d/8579.svg?style=flat-square\n[plugin]: https://plugins.jetbrains.com/plugin/10907-mvpautocodeplus\n[my_interface]:https://github.com/longforus/MVPExample\n[my_interface_java]:https://github.com/longforus/MVPExample/tree/master/app/src/main/java/com/longforus/base/java\n[ad_link]:https://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==\u0026amp;amp;amp;amp;mid=2650825783\u0026amp;amp;amp;amp;idx=1\u0026amp;amp;amp;amp;sn=0b0c2c58a729e1d9122ce9c09e31637f\u0026amp;amp;amp;amp;chksm=80b7b0a9b7c039bfa92deb5c8fe51f5347ebdccf0be70078ffa047e7316baf5679a89fc788ac\u0026amp;amp;amp;amp;mpshare=1\u0026amp;amp;amp;amp;scene=23\u0026amp;amp;amp;amp;srcid=0711IpaZwE1iGToWw6e7fix8#rd\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flongforus%2Fmvpautocodeplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flongforus%2Fmvpautocodeplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flongforus%2Fmvpautocodeplus/lists"}