Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
ahmed3elshaer avatar

Gradle Patterns

  • 32 installs
  • 60 repo stars
  • Updated June 14, 2026
  • ahmed3elshaer/everything-claude-code-mobile

gradle-patterns is a Claude Code skill providing modern Android Gradle patterns for Version Catalogs, convention plugins, and multi-module builds.

About

gradle-patterns is a Claude Code skill with modern Gradle build-configuration patterns for Android. A developer uses it to set up Version Catalogs, convention plugins, and multi-module projects, and to tune build performance with caching and parallelism. It provides ready-to-copy toml and gradle.kts snippets.

  • Version Catalog (libs.versions.toml) for centralized dependency management
  • Convention plugins and multi-module Android setup
  • Build optimization via parallel builds, caching, and configuration cache

Gradle Patterns by the numbers

  • 32 all-time installs (skills.sh)
  • Ranked #659 of 1,039 Mobile Development skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
At a glance

gradle-patterns capabilities & compatibility

Capabilities
gradle config · version catalog · convention plugins · build optimization
Use cases
ci cd
From the docs

What gradle-patterns says it does

Gradle build configuration patterns for Android including Version Catalogs, convention plugins, build optimization, and multi-module setup.
SKILL.md
Modern Gradle configuration for Android.
SKILL.md
npx skills add https://github.com/ahmed3elshaer/everything-claude-code-mobile --skill gradle-patterns

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs32
repo stars60
Last updatedJune 14, 2026
Repositoryahmed3elshaer/everything-claude-code-mobile

What it does

Configure Android Gradle builds with Version Catalogs, convention plugins, and multi-module structure.

Who is it for?

Android developers structuring Gradle builds and multi-module projects

Skip if: iOS-only projects that do not use Gradle

When should I use this skill?

You are configuring Android Gradle builds, version catalogs, or multi-module setup

By the numbers

  • Covers Version Catalogs, convention plugins, and multi-module setup
  • Enables parallel, caching, and configuration-cache build flags

Files

SKILL.mdMarkdownGitHub ↗

Gradle Build Patterns

Modern Gradle configuration for Android.

Version Catalog

# gradle/libs.versions.toml
[versions]
agp = "8.2.2"
kotlin = "1.9.22"
ksp = "1.9.22-1.0.17"
compose-compiler = "1.5.10"
compose-bom = "2024.02.00"
coroutines = "1.8.0"
koin = "3.5.3"
ktor = "2.3.8"

[libraries]
# Compose BOM
compose-bom = { module = "androidx.compose:compose-bom", version.ref = "compose-bom" }
compose-ui = { module = "androidx.compose.ui:ui" }
compose-material3 = { module = "androidx.compose.material3:material3" }
compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }

# Koin
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
koin-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" }

# Ktor Client
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
ktor-serialization-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }

# Testing
junit5 = { module = "org.junit.jupiter:junit-jupiter", version = "5.10.0" }
mockk = { module = "io.mockk:mockk", version = "1.13.8" }
turbine = { module = "app.cash.turbine:turbine", version = "1.0.0" }
coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }

[bundles]
compose = ["compose-ui", "compose-material3", "compose-ui-tooling"]
ktor = ["ktor-client-core", "ktor-client-okhttp", "ktor-client-content-negotiation", "ktor-serialization-json"]
testing = ["junit5", "mockk", "turbine", "coroutines-test"]

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

Convention Plugins

// build-logic/convention/build.gradle.kts
plugins {
    `kotlin-dsl`
}

dependencies {
    compileOnly(libs.android.gradlePlugin)
    compileOnly(libs.kotlin.gradlePlugin)
}

// AndroidLibraryConventionPlugin.kt
class AndroidLibraryConventionPlugin : Plugin<Project> {
    override fun apply(target: Project) = with(target) {
        with(pluginManager) {
            apply("com.android.library")
            apply("org.jetbrains.kotlin.android")
        }
        
        extensions.configure<LibraryExtension> {
            compileSdk = 34
            defaultConfig.minSdk = 24
            
            compileOptions {
                sourceCompatibility = JavaVersion.VERSION_17
                targetCompatibility = JavaVersion.VERSION_17
            }
        }
    }
}

Build Optimization

# gradle.properties
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configuration-cache=true
org.gradle.jvmargs=-Xmx4g -XX:+UseParallelGC

# Kotlin
kotlin.incremental=true
kotlin.caching.enabled=true

# Android
android.useAndroidX=true
android.nonTransitiveRClass=true
android.nonFinalResIds=true

Multi-Module Setup

// settings.gradle.kts
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

include(":app")
include(":core:common")
include(":core:ui")
include(":core:network")
include(":feature:home")
include(":feature:detail")

Dependency Declarations

// Feature module build.gradle.kts
plugins {
    id("convention.android.library")
    id("convention.android.compose")
}

dependencies {
    implementation(project(":core:common"))
    implementation(project(":core:ui"))
    
    implementation(libs.bundles.compose)
    implementation(libs.koin.compose)
    
    testImplementation(libs.bundles.testing)
}

Build Commands

# Full build with timing
./gradlew build --profile

# Specific module
./gradlew :feature:home:assembleDebug

# Dependency tree
./gradlew :app:dependencies --configuration releaseRuntimeClasspath

# Clear caches
./gradlew cleanBuildCache
rm -rf ~/.gradle/caches

# Build scan
./gradlew build --scan

---

Remember: Configure once, optimize daily.

Related skills

FAQ

What is a Version Catalog?

A libs.versions.toml file centralizing dependency versions, libraries, bundles, and plugins for reuse across modules.

How does it speed up builds?

Via gradle.properties settings like parallel builds, build caching, configuration cache, and Kotlin incremental compilation.

Mobile Developmentdevopsbackend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.