android-clean-architecture

Organize Android and Kotlin Multiplatform projects into layered clean architecture modules.

86|21|Updated Feb 9, 2026
One-click install
npx skills add https://github.com/Jamkris/everything-gemini-code --skill android-clean-architecture-jamkris
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: android-clean-architecture
Source: https://github.com/Jamkris/everything-gemini-code/tree/main/skills/android-clean-architecture
Command: npx skills add https://github.com/Jamkris/everything-gemini-code --skill android-clean-architecture-jamkris

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Android apps frequently spiral into tangled code as projects grow, making testing difficult and introducing bugs across domains. This Skill provides a clear blueprint for organizing Android and Kotlin Multiplatform projects into stable, testable layers with well-defined boundaries.

Core Features & Use Cases

  • Module structure guidance for app/, core/, domain/, data/, presentation/, design-system, and feature modules.
  • Dependency rules that enforce clean separation: domain and core must be independent of data and presentation layers.
  • Pattern guidance for UseCases, Repositories, and DataSources, with mappings between domain models and data entities.
  • Integration patterns for common cross-platform stacks (Room, SQLDelight, Ktor) within a layered architecture.

Quick Start

Scaffold a new Android or Kotlin Multiplatform project with clean architecture module boundaries and data layer wiring.

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 app with clean architecture layers?

Structure Android apps with clean architecture by organizing code into app, core, domain, data, presentation, design-system, and feature modules. Enforce dependency rules where domain and core remain independent of data and presentation layers for testable boundaries.

How do I apply dependency inversion in a Kotlin Multiplatform project?

Apply dependency inversion in Kotlin Multiplatform by ensuring domain and core modules have no dependencies on data or presentation layers. Use this pattern to enforce module boundaries, keeping shared code stable and testable across platforms.

What is the best way to implement UseCases and Repositories in Android clean architecture?

The best way to implement UseCases and Repositories in Android clean architecture is using defined pattern guidance that includes mappings between domain models and data entities, ensuring proper separation of data sources across the layered architecture.

Can I use Room, SQLDelight, and Ktor within a layered architecture?

Yes, you can use Room, SQLDelight, and Ktor within a layered architecture. Integration patterns are provided for these common cross-platform stacks to wire the data layer correctly while maintaining clean module boundaries.

Why does my Android project spiral into tangled code and how do clean layers help?

Android projects spiral into tangled code as they grow, making testing difficult. Clean layers help by providing a clear blueprint for organizing modules with well-defined boundaries, stabilizing domains and reducing cross-layer bugs.