explaingit

jessyancoding/mvparms

10,253JavaAudience · developerComplexity · 3/5Setup · moderate

TLDR

MVPArms is an Android app framework that bundles Retrofit, RxJava, Dagger2, and other popular libraries into a pre-wired MVP skeleton so you can start building features instead of setting up architecture.

Mindmap

mindmap
  root((repo))
    What it does
      MVP skeleton
      Code generation
      Screen adaptation
      Boilerplate reduction
    Tech Stack
      Java Android
      Retrofit OkHttp
      RxJava RxAndroid
      Dagger2 Glide
    Use Cases
      New Android projects
      Network-heavy apps
      Team architecture
    Audience
      Android developers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Start a new Android app with MVP architecture already configured, skipping weeks of boilerplate library setup

USE CASE 2

Generate a new screen scaffold with Model, View, and Presenter files using the built-in code template tool

USE CASE 3

Build a network-heavy Android app using the pre-integrated Retrofit and RxJava networking layer

USE CASE 4

Handle different phone screen sizes automatically using the built-in AndroidAutoSize screen adaptation

Tech stack

JavaAndroidRetrofitRxJavaDagger2OkHttpGlide

Getting it running

Difficulty · moderate Time to first run · 1h+

Documentation and community discussion are primarily in Chinese, non-Chinese speakers will need translation tools to follow the setup wiki.

In plain English

MVPArms is an Android application framework that provides a pre-assembled foundation for building apps using the MVP (Model-View-Presenter) architecture. Rather than choosing and wiring together individual libraries yourself, MVPArms bundles a standard set of popular Android libraries into a ready-to-use skeleton. You start with this framework instead of a blank project, and the structural decisions are already made for you. MVP is a way of organizing Android code that separates the user interface from the business logic and data. The Model layer handles data (fetching from the network, reading from a database), the View layer is the actual screen the user sees, and the Presenter sits between them, telling the View what to display based on what the Model returns. This separation makes apps easier to test and maintain as they grow. MVPArms enforces this pattern and provides base classes for each role. The libraries bundled in include Retrofit and OkHttp for making network requests, RxJava and RxAndroid for handling asynchronous operations, Dagger2 for dependency injection (a technique that wires together components automatically), Glide for loading images, and several smaller utilities for caching, error handling, permissions, and logging. Dagger2 in particular requires a lot of repetitive setup code, so the project also offers a template tool that generates the boilerplate automatically when you create a new screen. Screen size adaptation is built in through a companion library called AndroidAutoSize, which adjusts layouts to fit different phone screen sizes without manual work per device. The framework does not include UI components, so you bring your own visual design. The documentation and most community discussion are in Chinese. A wiki with detailed setup instructions is linked from the repository for both new and existing projects.

Copy-paste prompts

Prompt 1
I'm starting a new Android app with MVPArms. Walk me through creating a new screen that fetches a list of items from an API and displays them in a RecyclerView using the MVP pattern.
Prompt 2
How do I make a network request in MVPArms using Retrofit and RxJava and update the UI on the main thread when the data arrives?
Prompt 3
I'm unfamiliar with Dagger2. Explain how dependency injection is set up in MVPArms with a simple example I can follow.
Prompt 4
How do I configure MVPArms to handle API errors globally with a custom error handler so I don't repeat error handling code in every Presenter?
Open on GitHub → Explain another repo

← jessyancoding on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.