android-clean-architecture

Organize Android and Kotlin Multiplatform projects into clean architecture layers.

1|Updated Apr 7, 2026
One-click install
npx skills add https://github.com/TruCol270/salty-pickle --skill android-clean-architecture-trucol270
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: android-clean-architecture
Source: https://github.com/TruCol270/salty-pickle/tree/main/.claude-skills/android-clean-architecture
Command: npx skills add https://github.com/TruCol270/salty-pickle --skill android-clean-architecture-trucol270

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Android projects often struggle with scalable, testable code organization as teams grow. This Skill provides a blueprint for structuring Android and Kotlin Multiplatform projects using clean architecture: clear module boundaries, dependency inversion between domain and data layers, and consistent data flow across layers.

Core Features & Use Cases

  • Module structure guidance: recommended layout separating app, core, domain, data, presentation, and platform-specific features.
  • Dependency rules: enforce inversion of control so domain logic remains platform-agnostic and free of frameworks.
  • UseCase/Repository patterns: define clean interactions between business logic and data sources for testability and maintainability.
  • Data layer patterns: guidance on Room, SQLDelight, Ktor, and DI integration in modular setups.
  • Concrete use-case example: implement a UseCase to fetch and map domain models from a repository and present to UI.

Quick Start

Set up a modular Android project with domain, data, and presentation layers, wiring UseCases to Repositories and injecting dependencies via your preferred DI framework.

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 for better testability?

Structure Android projects by enforcing clean architecture to separate concerns across app, core, domain, and data layers. This approach defines clear module boundaries and uses dependency inversion so domain logic remains platform-agnostic and highly testable.

What is the best way to separate domain and data layers in a Kotlin Multiplatform project?

Separate domain and data layers in Kotlin Multiplatform projects by applying dependency inversion and the UseCase/Repository pattern. This keeps business logic free from frameworks, ensuring explicit data flow and preserving platform boundaries across shared modules.

How do I implement the UseCase and Repository pattern in Android clean architecture?

Implement the UseCase and Repository pattern by wiring UseCases to Repositories to fetch and map domain models. This defines clean interactions between business logic and data sources, injecting dependencies via your preferred DI framework to present data to the UI.

Can I use Room and Ktor in a modular Android clean architecture setup?

Yes, you can use Room, SQLDelight, and Ktor in a modular Android clean architecture setup. The architecture provides data layer patterns guidance for integrating these libraries and dependency injection while maintaining strict module boundaries.

When should I use clean architecture for my Android app versus a simpler structure?

Use clean architecture for Android apps when struggling with scalable, testable code organization as teams grow. It provides a blueprint for module boundaries and dependency inversion, which is most beneficial for complex projects requiring strict separation of concerns.

Why does domain logic need to be platform-agnostic in Kotlin Multiplatform clean architecture?

Domain logic must be platform-agnostic in Kotlin Multiplatform clean architecture to enforce dependency inversion and preserve platform boundaries. Keeping the domain layer free of frameworks ensures business logic remains testable and reusable across different platforms.