DEV Community

myougaTheAxo
myougaTheAxo

Posted on • Originally published at zenn.dev

Multi-Module Architecture in Android - Convention Plugins & Layer Separation (2026)

Multi-module projects scale better and improve code reusability. Master convention plugins and proper layer separation for maintainable Android architecture.

Setting Up Multi-Module Structure

Organize your project into logical layers:

app/
├── feature-home/
├── feature-detail/
├── core-common/
├── core-data/
├── core-network/
└── core-ui/
Enter fullscreen mode Exit fullscreen mode

Creating Convention Plugins

Convention plugins reduce boilerplate by encapsulating build logic:

// buildSrc/src/main/kotlin/android.base.gradle.kts
plugins {
    id("com.android.library")
    kotlin("android")
}

android {
    compileSdk = 35
    defaultConfig {
        minSdk = 24
        targetSdk = 35
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
}
Enter fullscreen mode Exit fullscreen mode

Feature Module Dependencies

Keep feature modules loosely coupled:

// feature-home/build.gradle.kts
plugins {
    id("android.base")
    id("android.compose")
}

dependencies {
    implementation(project(":core-ui"))
    implementation(project(":core-data"))
    api(project(":core-common"))
}
Enter fullscreen mode Exit fullscreen mode

Layer Architecture Pattern

Enforce clean architecture across modules:

// core-data/src/main/kotlin/UserRepository.kt
interface UserRepository {
    suspend fun getUser(id: String): User
    fun observeUserUpdates(): Flow<User>
}

// feature-profile/src/main/kotlin/ProfileViewModel.kt
class ProfileViewModel(
    private val userRepository: UserRepository
) : ViewModel() {
    val userState = userRepository.observeUserUpdates()
        .stateIn(viewModelScope, SharingStarted.Eagerly, null)
}
Enter fullscreen mode Exit fullscreen mode

Multi-module architecture promotes testability and scalability. Start with 3-4 core modules and split features as your project grows.

8 Android app templates on Gumroad

Top comments (0)