android-clean-architecture

Enforce clean architecture module boundaries and dependency rules in Android and Kotlin Multiplatform projects.

Updated Mar 20, 2026
One-click install
npx skills add https://github.com/KanakMalpani/General-Private-Skills --skill android-clean-architecture-kanakmalpani
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: android-clean-architecture
Source: https://github.com/KanakMalpani/General-Private-Skills/tree/main/skills/android-clean-architecture
Command: npx skills add https://github.com/KanakMalpani/General-Private-Skills --skill android-clean-architecture-kanakmalpani

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Android app projects often spiral into tangled dependencies and unclear module boundaries. This Skill enforces clean architecture to improve testability, maintainability, and scalability across Android and Kotlin Multiplatform projects.

Core Features & Use Cases

  • Clear module layout with app/core/domain/data/presentation boundaries to reduce coupling.
  • Enforced dependency rules that prevent domain or data layers from depending on UI layers.
  • UseCase and Repository patterns that standardize business logic and data access across modules.
  • Guidance for data layer implementations (Room, SQLDelight, Ktor) and KMP support for shared domain logic.

Quick Start

Refactor your Android project to align with the module layout and dependency rules described, and implement a sample UseCase and Repository to demonstrate data flow.

Frequently Asked Questions about android-clean-architecture

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce clean architecture boundaries in an Android project?

To enforce clean architecture in Android, apply clear module boundaries separating app, core, domain, data, and presentation layers. This enforces dependency rules preventing domain or data layers from depending on UI layers, reducing coupling and preventing architectural drift.

How do I structure Kotlin Multiplatform modules to share domain logic?

Structure Kotlin Multiplatform modules by isolating shared domain logic using UseCase and Repository patterns. This standardizes business logic and data access across modules while keeping data layer implementations flexible for KMP.

Does this clean architecture approach work with Room, SQLDelight, and Ktor?

Yes, this clean architecture approach works with Room, SQLDelight, and Ktor. It provides specific guidance for data layer implementations using these libraries within Android and Kotlin Multiplatform projects to maintain testability and scalability.

What is the best way to standardize business logic and data access across Android modules?

The best way to standardize business logic and data access is implementing UseCase and Repository patterns. This enforces domain-data-presentation separation, ensuring clear data flow and preventing architectural drift across Android modules.

Why does my Android app spiral into tangled dependencies and unclear module boundaries?

Android apps spiral into tangled dependencies without enforced dependency inversion rules. Imposing a clear module layout with domain-data-presentation separation prevents architectural drift and improves testability, maintainability, and scalability.