android-clean-architecture

Organize Android and Kotlin Multiplatform projects with clean architecture module boundaries.

Updated Apr 2, 2026
One-click install
npx skills add https://github.com/richardnpaul/everything-vscode-copilot --skill android-clean-architecture-richardnpaul
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: android-clean-architecture
Source: https://github.com/richardnpaul/everything-vscode-copilot/tree/main/.github/skills/android-clean-architecture
Command: npx skills add https://github.com/richardnpaul/everything-vscode-copilot --skill android-clean-architecture-richardnpaul

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides a blueprint for organizing Android and Kotlin Multiplatform projects using Clean Architecture, clarifying module boundaries, dependency rules, and data layer patterns.

Core Features & Use Cases

  • Clear module boundaries between app, domain, data, and presentation layers.
  • Guidance for UseCases, Repositories, and DataSources to promote testability and separation of concerns.
  • Dependency rules to prevent domain or data layer from depending on UI or framework components.

Quick Start

Set up your Android project with modular layers (domain, data, presentation) and enforce explicit dependency rules to maintain clean boundaries.

Frequently Asked Questions about android-clean-architecture

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

FAQPage Schema
How do I structure an Android project using clean architecture?

Structure Android projects by defining clear module boundaries between app, domain, data, and presentation layers. This enforces separation of concerns and establishes explicit dependency rules to prevent framework components from polluting the domain layer.

Can I use clean architecture with Kotlin Multiplatform projects?

Yes, clean architecture applies to Kotlin Multiplatform projects to define module boundaries, UseCases, repositories, and data layer patterns. It enforces domain-layer purity by keeping shared modules independent of platform-specific UI or framework components.

How do you enforce dependency rules between domain and data layers?

Enforce dependency rules by structuring modules so the domain and data layers never depend on UI or framework components. This maintains a pure domain layer and ensures data layer patterns respect strict module boundaries for better testability.

Does this clean architecture guidance support dependency injection with Koin or Hilt?

Yes, it provides dependency injection guidance for both Koin and Hilt. This ensures your modular Android architecture correctly wires together UseCases, repositories, and DataSources across the app, domain, and data layers.

What is the best way to organize UseCases and Repositories in Kotlin?

Organize UseCases and Repositories by placing them within defined domain and data layer boundaries. This separation of concerns promotes testability and ensures data layer patterns remain decoupled from the presentation layer.

When should I not use clean architecture for my Android app?

Avoid clean architecture if your Android app is extremely small, as enforcing strict module boundaries, UseCases, and dependency rules introduces unnecessary structural overhead for simple projects that do not require high separation of concerns.