30 open-source projects similar to janishar/android-mvp-architecture, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
This project is a reference implementation of the Model-View-Presenter architecture for Android applications. It serves as a structural example of how to separate business logic from the user interface through a presenter-based framework. The implementation focuses on a clean architecture approach, using presenters to mediate all communication between the data model and the view. It employs a passive view pattern and interface-based decoupling to isolate the user interface from domain rules. The architecture incorporates interactor-based domain logic and layered separation to reduce systemic
EffectiveAndroidUI is a collection of reference implementations and sample projects demonstrating Android UI architectural patterns, navigation strategies, and resource management techniques. It provides practical examples of implementing Model-View-Presenter and Model-View-ViewModel patterns to separate business logic from the user interface. The project features demonstrations of centralized screen transition logic and communication between fragments. It includes examples of resource management using custom qualifiers to organize assets and adapt layouts based on screen density and size. T
Mosby is a presentation layer framework for Android applications designed to manage application state and user intents. It functions as an architectural tool that implements both Model-View-Intent (MVI) and Model-View-Presenter (MVP) patterns. The framework utilizes a unidirectional data flow to maintain a single source of truth, ensuring that state updates remain predictable by processing intents through a single logic path. It separates business logic from the view layer to decouple presentation logic from Android Activity and Fragment classes. The system provides capabilities for state ma
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 c
KotlinMvp is a short-video Android application developed with Kotlin. It utilizes the Model-View-Presenter architectural pattern to maintain a clear separation between business logic and the user interface. The project integrates a short-video playback interface that supports content discovery through category filtering and popularity rankings. It employs a Retrofit REST client for network communication and the RxJava reactive framework to manage asynchronous data streams and background tasks. Image loading and caching are handled via the Glide image loader. The application includes capabili
Android-ZBLibrary is a mobile framework providing core primitives for Android development, including a Model-View-Presenter framework for structural architecture, a network request wrapper, and a local data persistence layer. It also includes a library of reusable interface elements and a background task manager to maintain user interface responsiveness. The framework decouples business logic from user interfaces through its MVP implementation and manages external service integration via tools for HTTP communication, JSON processing, and response caching. The library covers a broad set of ca
SimplifyReader is a multipurpose Android application and multi-module client designed for consuming news and media and scanning QR codes. It is built as a Material Design application that implements the Model-View-Presenter architecture to separate business logic from the user interface. The application integrates several functional modules into a single interface. These include news aggregation for retrieving headlines and articles, image browsing with search and zoom capabilities, video streaming, and audio playback for music from remote sources. The project also includes a utility for QR
This repository provides a comprehensive collection of functional code samples designed to demonstrate modern development patterns and architectural practices for the Android platform using Kotlin. It serves as a practical guide for implementing standard design patterns that decouple business logic from user interface components, ensuring that applications remain maintainable and testable. The project distinguishes itself by offering isolated, hands-on implementations of complex mobile programming tasks. It covers a wide range of capabilities, including asynchronous networking, local database
SimplifyReader is a multi-purpose Android client and multimedia content browser. It serves as a centralized hub for consuming news articles, audio files, video streams, and image galleries, while also providing QR code scanning functionality. The application is built using the Model-View-Presenter architecture to separate data logic from the user interface and implements Google Material Design principles for its visual components. It utilizes a hybrid scanning engine to decode QR codes into text strings. The project covers several core capability areas, including news article consumption via
mini-spring is a Java dependency injection framework and inversion of control container. It manages the full lifecycle of beans, including instantiation, property population, and scope management, while providing a system for automating the wiring of components. The project implements a Java AOP framework that uses dynamic proxies to intercept method calls for cross-cutting logic. It also functions as a Java component scanner to automatically discover and register managed objects via annotations and as a Java event bus to decouple components through a publish-subscribe multicast system. The
Awilix is a JavaScript dependency injection framework and inversion of control container. It provides a centralized system for registering and resolving services, decoupling application components by automating how dependencies are created and passed to the functions or classes that require them. The framework features an automatic module loader that scans the filesystem using glob patterns to register dependencies based on filenames and exports. It supports parameter-name-based injection and proxy-based resolution to manage how dependencies are delivered to constructors and functions. The s
MVVMHabit is an Android development framework and base library that implements the MVVM architecture using Android Architecture Components. It provides a pre-integrated foundation designed to decouple business logic from user interface rendering and lifecycle management. The project distinguishes itself by bundling a comprehensive set of architectural templates, including a reactive event bus for decoupled component communication, token-based data exchange between logic instances, and a single-activity fragment hosting system to reduce manifest overhead. The framework covers broad capability
This project is a reference Kotlin Android application template and a set of sample implementations demonstrating Clean Architecture principles. It provides a structural design that isolates core business rules from the user interface and data sources into distinct, layered modules. The implementation focuses on the Model-View-ViewModel (MVVM) pattern to decouple UI logic from data models. It utilizes a dependency injection framework to automate object creation and manage component lifecycles, while employing a repository pattern to abstract data requests across memory, disk, and cloud source
This project is a clean architecture reference implementation and modular project template for Android development. It provides a structural blueprint designed to isolate business logic from external frameworks and user interfaces. The template emphasizes a modular approach to organize code into independent modules, which is intended to improve build times and long-term project scalability. It demonstrates the application of domain-driven design to keep core business rules and entities independent from the underlying platform. The implementation covers several key architectural patterns, inc
DBFlow is an object-relational mapping library for Android that maps Java objects to SQLite databases. It serves as a persistence layer designed to reduce manual boilerplate code through automated database access and entity mapping. The project distinguishes itself with a type-safe query builder that uses a fluid interface to construct queries with compile-time checks. It provides transparent file-level encryption for securing sensitive data and a reactive wrapper that streams database changes to subscribers for real-time updates. Additional capabilities include asynchronous query execution
ASP.NET Core is a unified, cross-platform framework designed for building scalable web applications and services. It provides a comprehensive environment for constructing server-side rendered applications, real-time communication services, and interactive web components using C# and .NET. The framework distinguishes itself through a modular architecture that centers on a built-in dependency injection container, which manages service lifecycles and component modularity to improve testability. It utilizes a middleware pipeline to process requests and employs policy-based authorization to secure
This project serves as an educational resource and practical guide for developers learning to build native mobile applications on the Android platform using the Kotlin programming language. It provides a structured codebase that demonstrates how to apply modern language syntax and development paradigms to real-world software tasks. The repository focuses on teaching professional mobile application architecture by implementing industry-standard design patterns. Through a series of hands-on examples, it illustrates how to organize application logic, manage component dependencies, and maintain c
This project is a Swift iOS architecture template that implements the Clean Architecture pattern. It organizes software into distinct layers to decouple business rules from external frameworks, user interfaces, and infrastructure to improve testability and maintenance. The template incorporates Domain Driven Design to isolate core business logic and utilizes a modular application structure to divide features into independent modules. It employs the Coordinator pattern to remove routing logic from view controllers and a dependency injection framework to ensure components remain independent and
Get is a framework for Flutter that provides a comprehensive toolkit for dependency injection, internationalization, route management, and reactive state management. It includes a UI utility kit for handling themes, adaptive layouts, and the display of overlays such as snackbars and dialogs. The framework is distinguished by its ability to perform navigation and overlay management without requiring a build context. It also features a dependency injection container that manages the memory lifecycle of controllers and services, and a localization system that maps keys to strings to update appli
This is a Dart state management library and architectural framework that decouples business logic from the user interface by transforming a stream of events into a stream of states. It implements a business logic component pattern to ensure that state transitions are predictable and testable. The project distinguishes itself through advanced event stream processing, providing concurrency strategies to drop, restart, or queue incoming events. It includes a dedicated state persistence layer for saving and restoring application state to maintain session continuity, as well as tools for state his
RuoYi is a Spring Boot admin framework designed for building enterprise applications. It provides a foundation for creating management dashboards and orchestrating systems using either monolithic or microservices architectures. The project features a low-code application generator that produces ready-to-compile source code and API documentation based on database table configurations. It implements a role-based access control system to map users and roles to specific menus and buttons for secure resource access. The framework includes capabilities for system health monitoring, real-time perfo
This is an open-source Android application that serves as a reference implementation for modern app architecture. It demonstrates a modular, testable structure built with Kotlin, Coroutines, and Jetpack libraries, organized into independent feature modules that each follow Clean Architecture and the MVVM pattern. The project enforces coding standards through an automated static analysis pipeline that integrates linting, formatting checks, and code quality tools directly into the build process, failing the build on any violations. It uses reusable Gradle convention plugins to standardize build
This project is a comprehensive learning resource and technical reference for reactive programming with RxJS. It provides a structured curriculum, curated examples, and an indexed operator catalog to help developers shift from imperative to declarative programming using observable data streams and functional operators. The repository features a library of reactive UI patterns and implementation recipes. These cover practical applications such as type-ahead search, game loops, gesture-based interactions like swipe-to-refresh, and security overlays like lockscreens. The resource covers a broad
Guice is a Java dependency injection framework and component container. It automates object wiring by mapping interfaces to implementations via a central injector, removing the need for manual factory patterns and constructor calls. The framework provides specialized support for aspect-oriented programming, allowing for the interception and modification of method execution to implement shared cross-cutting concerns. It also functions as a persistence manager to coordinate transaction boundaries and manage the lifecycle of entity managers within a dependency-injected environment. Its core cap
Wire is a compile-time dependency injection framework for Go that generates code to wire application components together. It analyzes function signatures at compile time to build an explicit initialization graph, removing the need for runtime reflection or manual wiring code. The framework operates as a Go code generator and static analysis tool, transforming annotated source code into generated wire files that compile alongside the original project. It connects dependencies by matching function parameters and return types, producing a directed acyclic graph of component dependencies that is
AndroidAnnotations is a boilerplate generator and component annotation library designed for Android development. It functions as a dependency injection framework that uses custom annotations to automate the wiring of activities, fragments, and services. The project focuses on reducing manual plumbing through the automation of Android boilerplate. It provides automated solutions for dependency injection and view binding, removing the need for repetitive calls to locate UI elements or manually write factory classes. The library covers activity lifecycle management and the generation of standar
Kotlin-inject is a dependency injection framework for Kotlin that utilizes compile-time code generation to construct type-safe object graphs. By processing declarative annotations during the build process, the library eliminates the need for runtime reflection, ensuring that dependency resolution and validation occur before the application executes. The framework distinguishes itself through its native support for Kotlin Multiplatform, enabling consistent dependency management across shared and platform-specific codebases. It provides specialized mechanisms for assisted injection, allowing de
FastDev4Android is an all-in-one development framework for building Android applications. It accelerates app creation by integrating networking, data parsing, dependency injection, image loading, and UI components into a single workflow, bundling these capabilities to speed up mobile app development. The framework provides annotation-driven dependency injection that automatically wires components, views, event handlers, and threading into Android components at compile time. It implements the Model-View-Presenter (MVP) pattern to separate data, UI, and business logic into distinct layers for i
This project serves as a comprehensive educational roadmap and curriculum for mastering professional Android application development. It provides a structured learning path that guides developers through the essential system design principles, architectural patterns, and technical skills required to build, test, and deploy scalable mobile software. The resource distinguishes itself by organizing complex technical topics into a logical sequence, covering everything from foundational mobile development tooling to advanced software engineering practices. It emphasizes industry-standard patterns
GetX is a comprehensive state management framework for Flutter that provides a toolkit for managing application state, dependency injection, and routing without requiring build context. It serves as a core architectural system for reactive state management, navigation, service location, and multi-language theme support. The project is distinguished by its ability to handle context-free navigation and the use of observable variables that automatically trigger user interface updates. It features a dependency injection container with lazy loading and automated memory management, alongside a rout