A scalable Android starter project using Kotlin, Jetpack Compose, and Gradle Kotlin DSL, with a clean multi-module architecture.
- Modular architecture with separation of concerns
- Jetpack Compose for UI
- Gradle Kotlin DSL with version catalog (
libs.versions.toml) - Shared plugin logic via
build-logic - Kotlin 2.1.x + AGP 8.9.x+
root/
├── app/ # Application entry point
├── common/ # Shared code (design system, utils, etc.)
└── core/
└── ui/
├── domain/ # Business logic, use cases
├── data/ # Repositories, data sources
├── feature/ # Example feature module
├── build-logic/ # Shared Gradle plugin configs
├── gradle/ # Version catalog
├── settings.gradle.kts
└── build.gradle.kts
git clone https://github.com/agungkurn/Multi-Module-Template.git
cd Multi-Module-TemplateOpen the folder and sync the Gradle project.
- Decide your new package (e.g., com.example.myapp)
- Replace all id.ak.multimoduletemplate with your new package
- Use Refactor > Rename in Android Studio for safety
- To rename a module like feature-home: Right-click the module > Refactor > Rename
- Update settings.gradle.kts:
include(":features:home")- In app/build.gradle.kts:
namespace = "com.example.myapp"- In app/res/values/strings.xml:
<string name="app_name">New App Name</string>- In settings.gradle.properties:
rootProject.name = "New Project Name"- Shared plugins in build-logic
- Version catalog in gradle/libs.versions.toml:
[versions]
coil = "2.4.0"
[libraries]
coil = { module = "io.coil-kt:coil-compose", version.ref = "coil" }- Android Studio Meerkat or later
- JDK 21
- Kotlin 2.1.x
- AGP 8.9.x+
- Min SDK: 24 / Target SDK: 34
- Rename package and modules
- Replace placeholder UI
- Update app name/icon
- Add your own README section
- Configure CI/CD (optional)