# jessyancoding/mvparms

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jessyancoding-mvparms).**

10,248 stars · 2,350 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/JessYanCoding/MVPArms
- awesome-repositories: https://awesome-repositories.com/repository/jessyancoding-mvparms.md

## Topics

`android` `android-application` `android-architecture` `android-library` `architectural` `architecture` `arms` `butterknife` `dagger2` `model-view-presenter` `mvp` `mvp-android` `mvp-architecture` `mvp-library` `mvp-pattern` `mvparms` `presenter` `retrofit2` `rxjava` `wiki-documentation`

## Description

MVPArms is an Android application framework based on the Model-View-Presenter pattern. It provides a foundation for decoupling business logic from user interface components through a structured architectural implementation.

The framework features automated boilerplate generation to produce base classes and dependency injection files, reducing manual project setup. It includes a centralized configuration system to manage global application settings and a dependency injection wrapper that bundles networking and image loading libraries.

The project covers lifecycle management by binding logic controllers to screen lifecycles for automated resource cleanup. It also provides a network integration layer with capabilities for request logging, transfer progress monitoring, and dynamic base URL reconfiguration during runtime. Component communication is handled via a standardized event bus for publishing and subscribing to messages.

Local data persistence is supported through a utility for clearing temporary cached files.

## Tags

### Mobile Development

- [Android Application Frameworks](https://awesome-repositories.com/f/mobile-development/android-application-frameworks.md) — Ships a foundational framework for Android apps based on the Model-View-Presenter pattern to decouple business logic.
- [Android App Boilerplates](https://awesome-repositories.com/f/mobile-development/android-app-boilerplates.md) — Provides pre-configured base classes and dependency injection templates to accelerate Android project setup.
- [Android MVP Frameworks](https://awesome-repositories.com/f/mobile-development/android-mvp-frameworks.md) — Implements the Model View Presenter pattern to separate business logic from user interface components in Android applications.
- [Android Libraries](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-libraries.md) — Bundles and configures networking, image loading, and event bus libraries into a unified foundation.
- [Android Foundation Bundles](https://awesome-repositories.com/f/mobile-development/android-foundation-bundles.md) — Bundles networking, image loading, and dependency injection tools into a unified foundation for consistent implementation.
- [Android Network Monitoring](https://awesome-repositories.com/f/mobile-development/android-network-monitoring.md) — Monitors API traffic and allows updating base URLs at runtime to test different server environments.
- [Network API Wrappers](https://awesome-repositories.com/f/mobile-development/android-system-api-wrappers/network-api-wrappers.md) — Provides a network API wrapper that handles dynamic base URL switching and request logging for API calls.

### Software Engineering & Architecture

- [MVP Implementations](https://awesome-repositories.com/f/software-engineering-architecture/logic-and-presentation-separation/mvp-implementations.md) — Implements the Model-View-Presenter pattern to decouple business logic from user interface components. ([source](https://github.com/jessyancoding/mvparms#readme))
- [Component Lifecycle Management](https://awesome-repositories.com/f/software-engineering-architecture/component-lifecycle-management.md) — Links logic controllers to screen lifecycles to automate resource destruction and memory management. ([source](https://github.com/JessYanCoding/MVPArms/wiki/UpdateLog))
- [Android Injection Systems](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/dependency-injection/android-injection-systems.md) — Provides a centralized dependency injection system tailored for Android components and global application settings.
- [Android Lifecycle Management](https://awesome-repositories.com/f/software-engineering-architecture/memory-usage-analysis/memory-leak-prevention/android-lifecycle-management.md) — Binds logic controllers to activity and fragment lifecycles to automate resource cleanup and prevent memory leaks.
- [Lifecycle-Aware Async Wrappers](https://awesome-repositories.com/f/software-engineering-architecture/memory-usage-analysis/memory-leak-prevention/lifecycle-aware-async-wrappers.md) — Links logic controllers to screen lifecycles to automate resource cleanup and prevent memory leaks.
- [Global Application Settings](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-scopes/application-configuration/global-application-settings.md) — Provides a centralized system for managing application-wide runtime behavior and resource limits. ([source](https://github.com/JessYanCoding/MVPArms/wiki/UpdateLog))
- [Centralized Configuration Systems](https://awesome-repositories.com/f/software-engineering-architecture/centralized-configuration-systems.md) — Manages global application properties and third-party library settings through a single coordinated configuration point.
- [Event Bus Systems](https://awesome-repositories.com/f/software-engineering-architecture/event-bus-systems.md) — Coordinates communication between decoupled components using a standardized system for publishing and subscribing to events.
- [Framework Core Integration](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/third-party-plugins/plugin-integrations/framework-core-integration.md) — Integrates foundational libraries and base functionality as a substrate for application components. ([source](https://github.com/jessyancoding/mvparms#readme))
- [Network Traffic Logging](https://awesome-repositories.com/f/software-engineering-architecture/request-interceptors/network-traffic-logging.md) — Captures and formats outgoing requests and incoming responses through a middleware layer for debugging.

### Development Tools & Productivity

- [Boilerplate Generators](https://awesome-repositories.com/f/development-tools-productivity/code-generators/boilerplate-generators.md) — Automatically generates standard base classes and dependency injection files to reduce manual project setup.
- [Android](https://awesome-repositories.com/f/development-tools-productivity/code-generators/boilerplate-generators/android.md) — Generates base classes and dependency injection files to accelerate the initial setup of Android project structures.

### System Administration & Monitoring

- [Network Traffic Logs](https://awesome-repositories.com/f/system-administration-monitoring/interaction-logs/interaction-capturers/network-traffic-logs.md) — Implements a system to format and print network request and response logs for debugging. ([source](https://github.com/JessYanCoding/MVPArms/wiki/UpdateLog))

### Testing & Quality Assurance

- [Runtime Base URL Switching](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/network-api-mocking/api-request-configurations/runtime-base-url-switching.md) — Provides the ability to dynamically reconfigure the API base URL during runtime to redirect outgoing requests. ([source](https://github.com/JessYanCoding/MVPArms/wiki/UpdateLog))
