{"id":15999471,"url":"https://github.com/yale8848/basemvp","last_synced_at":"2025-04-05T01:14:39.647Z","repository":{"id":92882501,"uuid":"105098107","full_name":"yale8848/BaseMVP","owner":"yale8848","description":"Android MVP base framework","archived":false,"fork":false,"pushed_at":"2017-12-27T13:05:10.000Z","size":144,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-02-10T09:31:24.681Z","etag":null,"topics":["android","framework","mvp","mvp-android"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yale8848.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-28T03:31:00.000Z","updated_at":"2017-09-28T07:14:11.000Z","dependencies_parsed_at":"2023-03-16T06:00:13.094Z","dependency_job_id":null,"html_url":"https://github.com/yale8848/BaseMVP","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yale8848%2FBaseMVP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yale8848%2FBaseMVP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yale8848%2FBaseMVP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yale8848%2FBaseMVP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yale8848","download_url":"https://codeload.github.com/yale8848/BaseMVP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271527,"owners_count":20911587,"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","framework","mvp","mvp-android"],"created_at":"2024-10-08T08:43:24.411Z","updated_at":"2025-04-05T01:14:39.639Z","avatar_url":"https://github.com/yale8848.png","language":"Java","readme":"# BaseMVP Android MVP基本框架，依赖retrofit2，okhttp3，rx1\n\n## 使用\n\n```\ncompile 'ren.yale.android:basemvplib:0.5.2'\n```\n\n### Appclication 继承\n\n```\npublic class App extends BaseApp {\n\n    @Override\n    public void onCreate() {\n        super.onCreate();\n    }\n}\n\n```\n\n### Retrofit Api\n\n- 初始化，在Application\n\n```\nApiManager.getInstance().init(this);\n\n```\n\n- 定义Retrofit 接口\n\n```\npublic interface TestApi {\n    @GET(\"test\")\n    Observable\u003cTest\u003e test();\n}\n```\n- 获取 Retrofit 对象\n\n```\nprivate static TestApi testApi;\n\npublic TestApi getTestApi(){\n     if (testApi==null){\n         testApi = HttpRequestManger.getInstance().configRetrofit(TestApi.class,URL);\n     }\n     return testApi;\n }\n\n```\n\n- 完整代码\n\n```\npublic class ApiManager {\n\n    private static TestApi testApi;\n    private static final String URL =\"https://mock.daoxuehao.com/mock/59cc6c3991895710a06deeef/test/\";\n\n    private static class Holder{\n        public static volatile  ApiManager apiManager = new ApiManager();\n    }\n\n    public static ApiManager getInstance(){\n        return Holder.apiManager;\n    }\n\n    public void init(Context context){\n        HttpRequestManger.getInstance().setIHttpHeader(new IHttpHeader() {\n            @Override\n            public Map getHttpHeader(String url, Map mapParams) {\n                return null;\n            }\n        }).setInterceptor(null).setNetWorkInterceptor(null).init(context);\n    }\n\n    public TestApi getTestApi(){\n        if (testApi==null){\n            testApi = HttpRequestManger.getInstance().configRetrofit(TestApi.class,URL);\n        }\n        return testApi;\n    }\n}\n\n```\n\n### MVP\n\n- Contract\n\n```\npublic interface TestContract {\n\n    interface View extends BaseView{\n\n        void getTestSuccess(Test test);\n    }\n    interface  Model extends BaseModel{\n        BaseObservable\u003cTest\u003e getTest();\n\n    }\n    abstract  class TestPresenter extends BasePresenter\u003cModel,View\u003e{\n       abstract void getTest();\n    }\n}\n\n```\n\n- Model\n\n```\npublic class TestModel implements TestContract.Model {\n    @Override\n    public BaseObservable\u003cTest\u003e getTest() {\n        return BaseObservable.create(ApiManager.getInstance().getTestApi().test())\n                .cacheIoMain();\n    }\n}\n```\n\n- Presenter\n\n```\npublic class TestPresenter extends TestContract.TestPresenter {\n\n    public void getTest(){\n        mModel.getTest().bindDestoryEvent(getPublishSubject())\n                .subscribe(new ProgressSubscriber\u003cTest\u003e(getProgressDlg()){\n                    @Override\n                    public void onNext(Test test) {\n                        mView.getTestSuccess(test);\n                    }\n                });\n    }\n\n}\n```\n\n- Activity继承\n\n```\npublic class MainActivity extends MVPActivity\u003cTestPresenter,TestModel\u003e\n implements TestContract.View{\n\n    private static final String  TAG=\"test\";\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n    }\n\n    @Override\n    protected Dialog getProgressDlg() {\n        return new Dialog(this);\n    }\n    public void onClick(View v){\n        mPresenter.getTest();\n    }\n\n    @Override\n    public void getTestSuccess(Test test) {\n        Log.d(TAG,test.getMessage());\n    }\n}\n```\n\n## 混淆\nhttps://github.com/yale8848/RetrofitCache 混淆","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyale8848%2Fbasemvp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyale8848%2Fbasemvp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyale8848%2Fbasemvp/lists"}