{"id":3612,"url":"https://github.com/andrzejchm/DroidMVP","last_synced_at":"2025-08-03T20:32:51.223Z","repository":{"id":109202772,"uuid":"61610584","full_name":"andrzejchm/DroidMVP","owner":"andrzejchm","description":"Small Android library to help you incorporate MVP, Passive View and Presentation Model patterns in your app","archived":false,"fork":false,"pushed_at":"2018-02-03T16:19:42.000Z","size":248,"stargazers_count":225,"open_issues_count":1,"forks_count":24,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2024-12-07T02:26:50.963Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://medium.com/@andrzejchm/presentation-model-and-passive-view-in-mvp-the-android-way-fdba56a35b1e#.o8rb6bwji","language":"Java","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/andrzejchm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-06-21T07:05:02.000Z","updated_at":"2023-09-28T03:14:00.000Z","dependencies_parsed_at":"2023-04-26T05:16:44.175Z","dependency_job_id":null,"html_url":"https://github.com/andrzejchm/DroidMVP","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrzejchm%2FDroidMVP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrzejchm%2FDroidMVP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrzejchm%2FDroidMVP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrzejchm%2FDroidMVP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrzejchm","download_url":"https://codeload.github.com/andrzejchm/DroidMVP/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228567009,"owners_count":17937983,"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":[],"created_at":"2024-01-05T20:16:46.401Z","updated_at":"2024-12-07T05:30:43.921Z","avatar_url":"https://github.com/andrzejchm.png","language":"Java","funding_links":[],"categories":["Libraries","库"],"sub_categories":["Utility","[](https://github.com/JStumpp/awesome-android/blob/master/readme.md#utility)框架"],"readme":"# DroidMVP\n\n\u003cp align=\"center\"\u003e\n\u003cimg align=\"cetnter\" src=\"droidMVP.png\" alt=\"mvp diagram\" /\u003e\n\u003c/p\u003e\n\n[![Release](https://jitpack.io/v/andrzejchm/DroidMVP.svg)](https://jitpack.io/#andrzejchm/DroidMVP) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-DroidMVP-green.svg?style=true)](https://android-arsenal.com/details/1/3776)\n[![CircleCI](https://circleci.com/gh/andrzejchm/DroidMVP/tree/develop.svg?style=svg)](https://circleci.com/gh/andrzejchm/DroidMVP/tree/develop)\n\n## About\nDroidMVP is a small Android library to help you incorporate the [**MVP pattern**](http://antonioleiva.com/mvp-android/) along with [**Passive View**](http://martinfowler.com/eaaDev/PassiveScreen.html) and [**Presentation Model**](http://martinfowler.com/eaaDev/PresentationModel.html) (yes, those can be combined together :) ) within your Android project.\n\n## Explanation \n\u003cp align=\"center\"\u003e\n\u003cimg align=\"cetnter\" src=\"mvp-diagram.png\" alt=\"mvp diagram\" /\u003e\n\u003c/p\u003e\nA short explanation of PassiveView, PresentationModel and how to use it with DroidMVP can be found [in this article](https://medium.com/@andrzejchm/presentation-model-and-passive-view-in-mvp-the-android-way-fdba56a35b1e)\n\n## Setup\n\nAdd it in your root `build.gradle` at the end of repositories:\n  ```groovy  \n  allprojects {\n    repositories {\n        ...\n        maven { url \"https://jitpack.io\" }\n    }\n  }\n  ```\n  \n\nAdd the dependency to your app's `build.gradle`\n```groovy  \n  dependencies {\n    compile 'com.github.andrzejchm:DroidMVP:0.1.3'\n  }\n```\n\n## Composition over inheritance\nIf by any chance you cannot extend from `DroidMVPActivity` or `DroidMVPFragment` you can always use the `DroidMVPViewDelegate`. Just make sure to bind it with your activity's or fragment's lifecycle the same way the `DroidMVPFragment` or `DroidMVPActivity` does it.\n\n## Dependency Injection\nThis library makes it easy to use it with dependency injection frameworks like [Dagger](http://google.github.io/dagger/). To see how it could be done, check out the [**Sample project**](/sample-dagger), specifically the `BaseFragment` or `BaseActivity`\n\n## Sample Project\nA small android app which uses Dependency Injection along with **DroidMVP** can be found \n[**here**](/sample-dagger)\n\n Without dagger can be found [**here**](/sample).\n \n With `Parcelable` PresentationModel can be found [**here**](/sample-parcelable).\n\n## Donation\nIf you think the library is awesome and want to buy me a beer, you can do so by sending some...\n* ![Ethereum](https://files.coinmarketcap.com/static/img/coins/32x32/ethereum.png) **ETH** here: `0xf7354a0F7B34A380f6d68a2661bE465C10D6AEd7`\n* ![Bitcoin](https://files.coinmarketcap.com/static/img/coins/32x32/bitcoin.png) **BTC** here: `12bU3BMibFqbBBymaftXTDnoHojFymD7a6`\n* ![NEO](https://files.coinmarketcap.com/static/img/coins/32x32/neo.png) **NEO** or **GAS** here: `AX1ovzRN2N28WJrtehjYXjwtHSvcqva6Ri`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrzejchm%2FDroidMVP","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrzejchm%2FDroidMVP","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrzejchm%2FDroidMVP/lists"}