clean-architecture

Organize Kotlin and Compose Android projects into presentation, domain, and data layers.

1|Updated Apr 24, 2026
One-click install
npx skills add https://github.com/dimitriRemoiville/cc-mobile --skill clean-architecture-dimitriremoiville
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: clean-architecture
Source: https://github.com/dimitriRemoiville/cc-mobile/tree/main/plugins/cc-mobile-android/skills/clean-architecture
Command: npx skills add https://github.com/dimitriRemoiville/cc-mobile --skill clean-architecture-dimitriremoiville

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The Skill clarifies how to structure a Kotlin + Compose project following MVVM and Clean Architecture, helping teams separate concerns and maintain boundary integrity between presentation, domain, and data layers.

Core Features & Use Cases

  • Domain layer guidance: models, repository interfaces, and use cases; - Data layer guidance: remote/local architectures, mappers; - Presentation layer guidance: Compose UI, ViewModels, and navigation; - Guidance on when to add a use case and how to organize modules and feature checklists.

Quick Start

Start by mapping a new feature to Presentation, Domain, and Data layers and implement a Use Case in the domain layer.

Frequently Asked Questions about clean-architecture

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

FAQPage Schema
How do I structure a Kotlin Compose project with clean architecture?

Structure a Kotlin Compose project by organizing it into presentation, domain, and data layers. This enforces clean separation of concerns by guiding repository interfaces, domain use cases, data mappers, and ViewModels across your MVVM-based apps.

When should I add a use case in a clean architecture domain layer?

Add a use case in the domain layer when you need to encapsulate specific business logic away from ViewModels and repositories. This maintains boundary integrity between presentation and data layers in your Kotlin app.

Does this clean architecture approach work with Kotlin MVVM and Compose?

Yes, this approach specifically targets Kotlin and Compose Android projects using the MVVM pattern. It guides a presentation layer with Compose UI, ViewModels, and navigation while keeping domain models and repository interfaces explicitly separated from data mappers.

What is the best way to organize presentation, domain, and data layers in an Android app?

The best way to organize these layers is by defining explicit domain models, repository interfaces, and use cases in the domain layer, while employing data mappers in the data layer and ViewModels with Composables in the presentation layer to enforce strict module separation.

How do data mappers fit into the clean architecture data layer?

Data mappers fit into the data layer by translating remote or local data sources into explicit domain models. This ensures the domain layer remains independent of the data layer's implementation details in your Kotlin app.