20 repos
Structural design patterns and best practices for building maintainable Android applications.
Distinct from Android App Modularization: Shortlist candidates focus on execution and modularization rather than the high-level architectural pattern of the entire app.
Explore 20 awesome GitHub repositories matching mobile development · Android App Architecture Patterns. Refine with filters or upvote what's useful.
LearningNotes is a technical knowledge base and engineering study guide focused on Android framework internals, system architecture, and mobile performance optimization. It serves as a reference for analyzing the Android boot sequence, process bootstrapping, and system service initialization. The project provides detailed guides on mobile performance, including strategies for reducing memory footprints, identifying memory leaks, and optimizing image decoding. It further covers Android inter-process communication using AIDL and the Binder kernel driver, as well as software architecture manuals
Analyzes the application of MVVM and dependency inversion patterns to decouple business logic from the presentation layer.
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
Provides a foundation for building maintainable mobile apps using MVVM and Google Architecture Components.
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
Demonstrates a modular, testable Android application architecture using modern Jetpack libraries, Clean Architecture, and feature modules.
This is a Go backend template that structures a web service into domain, usecase, controller, and repository layers with strict dependency inversion. It provides a foundation for building maintainable and testable REST APIs by separating business logic from transport and data access concerns. The project implements JWT-based authentication, issuing access and refresh tokens for user signup, login, and protected endpoint access. It uses the Gin HTTP framework to build a Docker-packaged REST API with public and private route groups, request validation, and middleware-based authentication. Depen
Provides structural design patterns and best practices for building maintainable Android applications.
AndroidX is the official collection of Android Jetpack libraries for building Android applications. It provides a suite of backward-compatible APIs that expose modern platform features on older Android versions, ensuring consistent functionality across devices. The project is built around lifecycle-aware component architecture, with tools like ViewModel for preserving UI data across configuration changes, LiveData for lifecycle-aware data observation, and WorkManager for constraint-based background task scheduling. The project distinguishes itself through compile-time code generation and type
Provides opinionated, lifecycle-aware components that reduce boilerplate and make configuration changes easier to handle.
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
Demonstrates structural design patterns like MVP and MVVM for building maintainable Android applications.
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
Structures the Android application using MVP patterns to ensure maintainability and separation of concerns.
This project is a curated collection of technical interview guides and reference materials focused on Android development and system architecture. It provides a structured set of daily interview questions and detailed answers designed to help software engineers prepare for professional job interviews. The repository includes specific study guides for Kotlin programming language fundamentals and Android architecture patterns. These materials are organized into categorized technical problems and solutions across various computer science domains relevant to mobile engineering. The content is de
Explains core design patterns and structural best practices for modern Android applications.
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
Offers structural design patterns for organizing Android applications to separate business logic from the user interface.
This project provides a set of Android development guidelines, architecture standards, and a coding style guide. It establishes uniform formatting and implementation rules to ensure code consistency and maintainability for applications built on the Android platform. The project includes a standardized project structure template that defines consistent folder hierarchies and file layouts. These standards are designed to maintain a predictable development experience across multiple workstreams. The guidelines cover architectural patterns including layer-based separation of business logic and p
Defines architectural design patterns and structural guidelines for building maintainable Android applications.
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
Demonstrates structural design patterns and Clean Architecture principles for building maintainable Android applications.
This project is a reference implementation of the Model-View-Presenter (MVP) architecture for Android applications. It focuses on separating business logic from the user interface by decoupling data logic, UI presentation, and view layers. The implementation distinguishes itself through the inclusion of a boilerplate generator that automatically creates the activity, presenter, and view files required for the MVP pattern. It utilizes a compile-time dependency injection framework to manage object lifetimes and a reactive programming workflow to handle asynchronous data streams and event propag
Organizes code into separate layers specifically tailored for maintainable Android application development.
This project is a structured learning path and skill roadmap designed to guide developers through the Android ecosystem. It serves as a mobile engineering curriculum and career guide, organizing the technical knowledge required to build scalable applications from basic concepts to advanced professional skills. The guide differentiates itself by providing a hierarchical map of required knowledge, sequencing technical topics into a logical order. It includes a curated collection of study resources and technical documentation, along with tools to track learning progress through the specified cur
Covers the study and implementation of scalable architectural patterns specifically for Android applications.
LiveEventBus is an AndroidX communication library that provides a message bus for decoupled data transfer between application components. It utilizes LiveData to implement a lifecycle-aware message bus, ensuring that event subscriptions are automatically managed based on the state of Android components to prevent memory leaks. The library includes an inter-process communication bridge that allows the transfer of serialized data and events between different processes or separate applications. It also features a sticky event dispatcher that retains and immediately delivers the most recent messa
A communication system that automatically manages event subscriptions based on Android component lifecycles.
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
Provides a comprehensive scalable architectural pattern for Android applications with separated layers.
This repository serves as an educational resource for implementing asynchronous programming patterns in Android applications using Kotlin Coroutines and Flow. It provides a collection of practical examples and unit tests designed to demonstrate how to manage background tasks, concurrent network requests, and reactive data streams while maintaining a responsive user interface. The project focuses on structured concurrency, offering patterns for organizing tasks into hierarchical scopes that automatically propagate cancellation and lifecycle signals. It emphasizes the integration of lifecycle-a
Provides lifecycle-aware components that ensure network requests and data streams respect the Android component state.
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
Provides lifecycle-aware components that automatically manage resource release and task cancellation to prevent memory leaks.
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
Implements lifecycle-aware components to manage Android system state and prevent memory leaks.
This repository serves as a centralized collection of technical documentation and architectural patterns for developers building mobile software on the Android platform. It functions as a comprehensive guide for implementing idiomatic Kotlin code and establishing consistent engineering standards across mobile projects. The project provides curated resources focused on Android development best practices and efficient programming patterns. By emphasizing maintainable code structures and recommended architectural approaches, it assists teams in managing the complexity of mobile application devel
Provides structural design patterns and best practices for building maintainable Android applications.
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
Demonstrates standard architectural design patterns to decouple business logic from user interface components in Android applications.