MCPcopy Index your code
hub / github.com/JessYanCoding/MVPArt

github.com/JessYanCoding/MVPArt @v2.5.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.5.0 ↗ · + Follow
869 symbols 1,984 edges 97 files 381 documented · 44%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

MVPArt

Latest Stable Version Build Status Min Sdk Version License Author QQ Group

A New Android MVP Architecture

此框架旨在解决传统 MVP 类和接口太多, 并且 PresenterView 通过接口通信过于繁琐, 重用 Presenter 代价太大等问题

Architectural

Introduction

Master 分支

Master 分支是一个不含网络层的简易框架,主要通过4个 Demo 介绍本框架的思想,特性以及使用方法,小巧灵活适合已经有一整套现有框架但又需要重构为 MVP 结构的项目,但不管你使用哪个分支都强烈建议你先看看 Master 分支的 Demo

Complete 分支

Complete 分支是一个含有网络层的完整框架,将 Retrofit 作为网络层并使用 Dagger2 管理所有对象,成熟强大适合新建的项目

Wiki

详细使用方法及扩展功能,请参照 Wiki 文档

Tips: MVPArtMVPArms 的主要区别在于 MVP 中的 VP 的交互方式 (Master 分支中详细描述), 其他核心功能基本一致, 所以文档中大部分内容两者都可以共用

Notice

  • 使用之前,请参阅 传统MVP用在项目中是真的方便还是累赘?

  • 使用 Template 自动生成 MVP 相关类

  • 此框架是一个轻量级框架,比较适合中小型项目,大型项目请使用 MVPArms
  • 传统MVP每个页面对应一个 Presenter ,而大多数 Presenter 只有一两个方法,这样导致存在大量代码寥寥无几的 Presenter ,此框架旨在解决复用 Presenter 时需要实现过多多余接口方法的问题,鼓励开发者将相近的逻辑写在一个 Presenter 中,不断重用 Presenter ,减少大量类文件
  • 当然很多不同的逻辑都写在一个 Presenter 中,虽然可以少写很多类,但是后面的扩展性肯定不好,所以这个粒度需要自己控制,但是对于外包项目简直是福音

Download

 implementation 'me.jessyan:art:2.5.0'

 ---------------------- 以下是扩展库 ----------------------

 //想使用 Glide 请依赖 art-imageloader-glide 扩展库
 implementation 'me.jessyan:art-imageloader-glide:2.5.0' 

 //想使用 AndroidAutoLayout 请依赖 art-autolayout 扩展库
 implementation 'me.jessyan:art-autolayout:2.5.0'

About Me

License

 Copyright 2017, jessyan

   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.

Extension points exported contracts — how you extend this code

IModel (Interface)
================================================ 框架要求框架中的每个 Model 都需要实现此类,以满足规范 Created by JessYan on 15/12/2016 10: [9 …
art/src/main/java/me/jessyan/art/mvp/IModel.java
CommonCache (Interface)
================================================ 展示 RxCache#using(Class) 中需要传入的 Providers 的使用方式 Created by J [1 implementers]
demo/src/main/java/me/jessyan/mvpart/demo/mvp/model/api/cache/CommonCache.java
AppLifecycles (Interface)
================================================ 用于代理 Application 的生命周期 @see AppDelegate Created by JessYan on [5 implementers]
art/src/main/java/me/jessyan/art/base/delegate/AppLifecycles.java
UserService (Interface)
================================================ 展示 Retrofit#create(Class) 中需要传入的 ApiService 的使用方式 存放关于用户的一些 API [1 implementers]
demo/src/main/java/me/jessyan/mvpart/demo/mvp/model/api/service/UserService.java
App (Interface)
================================================ 框架要求框架中的每个 android.app.Application 都需要实现此类, 以满足规范 @see BaseApp [4 implementers]
art/src/main/java/me/jessyan/art/base/App.java
Api (Interface)
================================================ 存放一些与 API 有关的东西,如请求地址,请求码等 Created by JessYan on 08/05/2016 11:25 <
demo/src/main/java/me/jessyan/mvpart/demo/mvp/model/api/Api.java
IPresenter (Interface)
================================================ 框架要求框架中的每个 Presenter 都需要实现此类,以满足规范 @see BasePresenter Created by JessY [4 …
art/src/main/java/me/jessyan/art/mvp/IPresenter.java
CommonService (Interface)
================================================ 存放通用的一些 API Created by JessYan on 08/05/2016 12:05 <a href="mailto:
demo/src/main/java/me/jessyan/mvpart/demo/mvp/model/api/service/CommonService.java

Core symbols most depended-on inside this repo

get
called by 39
art/src/main/java/me/jessyan/art/integration/cache/Cache.java
getResources
called by 30
art/src/main/java/me/jessyan/art/utils/ArtUtils.java
checkNotNull
called by 24
art/src/main/java/me/jessyan/art/utils/Preconditions.java
size
called by 20
art/src/main/java/me/jessyan/art/integration/cache/Cache.java
toString
called by 18
art/src/main/java/me/jessyan/art/mvp/Message.java
isEmpty
called by 15
art/src/main/java/me/jessyan/art/utils/ArtUtils.java
equals
called by 15
art-imageloader-glide/src/main/java/me/jessyan/art/http/imageloader/glide/BlurTransformation.java
build
called by 14
art/src/main/java/me/jessyan/art/integration/cache/Cache.java

Shape

Method 752
Class 81
Interface 35
Enum 1

Languages

Java100%

Modules by API surface

art/src/main/java/me/jessyan/art/utils/DeviceUtils.java57 symbols
art/src/main/java/me/jessyan/art/di/module/GlobalConfigModule.java35 symbols
art-imageloader-glide/src/main/java/me/jessyan/art/http/imageloader/glide/ImageConfigImpl.java34 symbols
art/src/main/java/me/jessyan/art/utils/ArtUtils.java31 symbols
art/src/main/java/me/jessyan/art/mvp/Message.java27 symbols
art/src/main/java/me/jessyan/art/integration/AppManager.java26 symbols
art/src/main/java/me/jessyan/art/widget/CustomPopupWindow.java20 symbols
art/src/main/java/me/jessyan/art/di/component/AppComponent.java17 symbols
art/src/main/java/me/jessyan/art/utils/DataHelper.java16 symbols
art/src/main/java/me/jessyan/art/integration/FragmentLifecycle.java16 symbols
art/src/main/java/me/jessyan/art/di/module/ClientModule.java16 symbols
demo/src/main/java/me/jessyan/mvpart/demo/mvp/ui/activity/UserActivity.java15 symbols

For agents

$ claude mcp add MVPArt \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact