docs/setup/annotations.md
Setup Koin Annotations for your project
You can find all Koin packages on maven central.
Here are the currently available Koin Annotations versions:
We need the Google KSP to work. Follow the official KSP Setup documentation.
Just add the Gradle plugin:
plugins {
id("com.google.devtools.ksp") version "$ksp_version"
}
KSP Compatibility: Koin Annotations 2.3.1 requires KSP 2.3.2
:::info KSP Versioning Change: Starting from KSP 2.x, the version numbering is now independent from Kotlin versions. Use KSP 2.3.2 for Koin Annotations 2.3.1. :::
In your gradle/libs.versions.toml:
[versions]
koin-annotations = "2.3.1" # Stable version
ksp = "2.3.2" # Required for Koin Annotations 2.3.1
[libraries]
koin-annotations = { module = "io.insert-koin:koin-annotations", version.ref = "koin-annotations" }
koin-ksp-compiler = { module = "io.insert-koin:koin-ksp-compiler", version.ref = "koin-annotations" }
[plugins]
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
plugins {
alias(libs.plugins.ksp)
}
dependencies {
// Koin
implementation("io.insert-koin:koin-android:$koin_version")
// Koin Annotations
implementation("io.insert-koin:koin-annotations:$koin_annotations_version")
// Koin Annotations KSP Compiler
ksp("io.insert-koin:koin-ksp-compiler:$koin_annotations_version")
}
Or with version catalogs:
plugins {
alias(libs.plugins.ksp)
}
dependencies {
// Koin
implementation(libs.koin.android)
// Koin Annotations
implementation(libs.koin.annotations)
// Koin Annotations KSP Compiler
ksp(libs.koin.ksp.compiler)
}
In a standard Kotlin/Kotlin Multiplatform project, you need to setup KSP as follow:
kspCommonMainKotlinMetadataplugins {
alias(libs.plugins.ksp)
}
kotlin {
sourceSets {
// Add Koin Annotations
commonMain.dependencies {
// Koin
implementation("io.insert-koin:koin-core:$koin_version")
// Koin Annotations
api("io.insert-koin:koin-annotations:$koin_annotations_version")
}
}
// KSP Common sourceSet
sourceSets.named("commonMain").configure {
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
}
}
// KSP Tasks
dependencies {
add("kspCommonMainMetadata", "io.insert-koin:koin-ksp-compiler:$koin_annotations_version")
add("kspAndroid", "io.insert-koin:koin-ksp-compiler:$koin_annotations_version")
add("kspIosX64", "io.insert-koin:koin-ksp-compiler:$koin_annotations_version")
add("kspIosArm64", "io.insert-koin:koin-ksp-compiler:$koin_annotations_version")
add("kspIosSimulatorArm64", "io.insert-koin:koin-ksp-compiler:$koin_annotations_version")
}
// Trigger Common Metadata Generation from Native tasks
tasks.matching { it.name.startsWith("ksp") && it.name != "kspCommonMainKotlinMetadata" }.configureEach {
dependsOn("kspCommonMainKotlinMetadata")
}
:::info For complete KMP setup and architecture patterns, see Koin Annotations KMP. :::
Setup complete! Continue to: