android-module-structure

Generate standardized Android and Kotlin Multiplatform module layouts with Gradle convention plugins.

Updated Apr 14, 2026
One-click install
npx skills add https://github.com/kvithayathil/agent-resources --skill android-module-structure
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: android-module-structure
Source: https://github.com/kvithayathil/agent-resources/tree/main/skills/android/android-module-structure
Command: npx skills add https://github.com/kvithayathil/agent-resources --skill android-module-structure

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill eliminates the guesswork and inconsistency when designing Android or Kotlin Multiplatform project architectures, preventing common pitfalls like circular dependencies, unmaintainable module structures, and scattered Gradle configuration that slow down development and introduce bugs.

Core Features & Use Cases

  • Standardized Module Layout: Provides a proven feature-layered clean architecture template with clear rules for where domain, data, presentation, and core shared modules should live.
  • Gradle Convention Plugin Guidance: Includes pre-defined templates for common Gradle configurations (Android apps, KMP domain modules, Compose, Koin, Room, etc.) to eliminate repetitive build logic and enforce consistency.
  • Use Case: For example, when building a new fintech Android app, use this Skill to set up separate feature modules for payments, user profiles, and transaction history with strict dependency boundaries, plus shared core modules for domain models and UI design system components.

Quick Start

Use the android-module-structure skill to set up a new Kotlin Multiplatform project with feature modules, core shared layers, and standardized Gradle convention plugins following clean architecture best practices.

Frequently Asked Questions about android-module-structure

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

FAQPage Schema
How do I structure an Android project using clean architecture and feature modules?

To structure an Android project using clean architecture, separate your codebase into domain, data, and presentation modules with strict dependency boundaries. This prevents circular dependencies and ensures feature modularization remains decoupled and maintainable across teams.

How do I set up Gradle convention plugins for Kotlin Multiplatform?

Setting up Gradle convention plugins for Kotlin Multiplatform involves creating pre-defined build logic templates for common configurations like KMP domain modules, Compose, and Koin. This eliminates repetitive Gradle configuration and enforces build consistency across cross-platform modules.

What is the best way to manage module dependencies in a KMP project?

The best way to manage module dependencies in a KMP project is by applying standardized layout templates with explicit dependency rules. This approach ensures clear architectural boundaries between shared core layers and feature modules, preventing unmaintainable and scattered build scripts.

Does this modular architecture template work for existing Android apps or only new projects?

This modular architecture template applies to both new project initialization and existing cross-team architecture decision-making. It provides standardized layout templates and explicit dependency rules that can be applied to refactor inconsistent Android and KMP codebases into decoupled feature modules.

Why should I use Gradle convention plugins for Android feature modularization?

You should use Gradle convention plugins for Android feature modularization to eliminate repetitive build logic and enforce architectural consistency. Pre-defined templates for Android apps, Compose, and Room configurations prevent scattered Gradle scripts and maintain strict dependency boundaries.

When do I need to create separate core shared modules in a Kotlin Multiplatform project?

You need to create separate core shared modules in a Kotlin Multiplatform project when isolating domain models or UI design system components from feature-specific logic. This standardized clean architecture layout ensures reusable layers remain decoupled from feature modules like payments or user profiles.