android-modularization

Define modular Android architecture with Clean Architecture boundaries and Gradle convention plugins.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/soygabimoreno/Los-ANDROIDES --skill android-modularization-soygabimoreno
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: android-modularization
Source: https://github.com/soygabimoreno/Los-ANDROIDES/tree/main/.agents/skills/android-modularization
Command: npx skills add https://github.com/soygabimoreno/Los-ANDROIDES --skill android-modularization-soygabimoreno

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It solves the problem of messy Android codebases by providing a clear, enforceable module layout and dependency rules so teams can add features without creating tangled dependencies.

Core Features & Use Cases

  • Feature-layered modularization: split modules by feature first, then by layer (presentation, domain, data) to keep responsibilities isolated.
  • Clean Architecture dependency rules: ensure domain stays independent and data/presentation depend on it in a controlled way.
  • Cross-feature sharing strategy: prevent feature-to-feature coupling by centralizing shared domain models in :core:core-domain and shared UI logic in :core:core-view.
  • Convention plugin guidance: standardize build setup using Gradle convention plugins in :build-logic and version catalogs.

Quick Start

Use the android-modularization skill to restructure a new feature by creating :feature:<name>:domain, :feature:<name>:data, and :feature:<name>:presentation, then register them in settings.gradle.kts following the provided dependency table.

Frequently Asked Questions about android-modularization

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

FAQPage Schema
How do I structure Android multi-module projects to enforce Clean Architecture boundaries?

To enforce Clean Architecture boundaries in Android modularization, split modules by feature first, then by layer. Keep domain modules independent, while data and presentation layers depend on it in a controlled way to isolate responsibilities.

How do I add a new feature module without creating tangled Gradle dependencies?

Add a new feature module without tangled Gradle dependencies by creating `:feature:<name>:domain`, `:feature:<name>:data`, and `:feature:<name>:presentation`. Register these in `settings.gradle.kts` and apply Gradle convention plugins for standardized build setup.

What is the best way to share code across Android feature modules without coupling them?

Share code across Android feature modules without coupling by centralizing shared domain models in `:core:core-domain` and shared UI logic in `:core:core-view`. This cross-feature sharing strategy prevents direct feature-to-feature dependencies.

Does Gradle convention plugin standardization work with version catalogs for multi-module builds?

Gradle convention plugin standardization works with version catalogs for multi-module builds. You standardize build setup by defining convention plugins in a `:build-logic` module and driving the build rules through your version catalog.

When should I use Kotlin Multiplatform shared core locations for reusable code in Android modularization?

Use Kotlin Multiplatform shared core locations for reusable code when you need to prevent feature coupling across targets. Centralizing reusable logic in core modules ensures feature modules remain isolated and adhere to strict layer dependency constraints.