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/riftzen-bit/gemini-setup --skill android-clean-architecture-riftzen-bit
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: android-clean-architecture
Source: https://github.com/riftzen-bit/gemini-setup/tree/main/skills/android-clean-architecture
Command: npx skills add https://github.com/riftzen-bit/gemini-setup --skill android-clean-architecture-riftzen-bit

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers often struggle to organize Android and Kotlin Multiplatform projects into coherent, maintainable layers with clear module boundaries and explicit dependency rules.

Core Features & Use Cases

  • Module structuring guidance: outlines recommended project layout and module separation (app, core, domain, data, presentation, design-system, feature).
  • Dependency rules enforcement: defines allowed dependencies between layers to preserve clean architecture.
  • Domain and data layer patterns: illustrates UseCases, Repositories, DataSources, and mapping strategies.
  • Guidance for DI and multi-platform design: helps configure DI with Koin or Hilt and Kotlin Multiplatform structure.

Quick Start

Create a new Android project using the recommended module layout and start wiring UseCases to domain and data repositories.

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

Structure an Android app by separating it into domain, data, and presentation layers. This modular approach enforces clear module boundaries and dependency rules, ensuring use cases, repositories, and data sources remain decoupled for better maintainability.

What is the recommended module layout for a Kotlin Multiplatform project?

The recommended module layout for a Kotlin Multiplatform project separates code into app, core, domain, data, presentation, and design-system modules. This separation enforces strict dependency rules and clarifies boundaries between shared logic and platform-specific UI.

How do I configure dependency injection with Koin or Hilt in a modular Android app?

Configure dependency injection with Koin or Hilt by aligning DI modules with clean architecture layers. Wire use cases, repository interfaces, and data sources into their respective domain and data layers to preserve separation of concerns.

Can I use clean architecture for both Android and Kotlin Multiplatform projects?

Yes, you can apply clean architecture to both Android and Kotlin Multiplatform projects. The approach defines domain and data layer patterns, like repositories and use cases, that work across platforms while maintaining strict module boundaries and dependency rules.

When should I enforce dependency rules between domain and data layers?

Enforce dependency rules between domain and data layers whenever you structure an Android app to prevent presentation and data layers from directly coupling to domain logic. This ensures repositories and use cases remain independently testable and maintainable.