The repo contains plugins which are shared between Nordic's Android applications. Now in Android app from Google has been an inspiration for writing Nordic's dedicated plugins.
List of plugins currently available in the repository.
-
This plugin applies
org.jetbrains.dokkaand applies Nordic styles to Dokka documentation.
-
no.nordicsemi.android.plugin.application
This plugin does the following:
- applies
com.android.application, - defines
compileSdk,minSdkandtargetSdkto values set inAppConsts, - sets
buildConfig, - configures debug and release build types,
- creates app signing configuration using
../keystorefile which is generated by GitHub actions during build.
- applies
-
no.nordicsemi.android.plugin.application.compose
This plugin applies
no.nordicsemi.android.plugin.applicationand adds Compose and Material3 dependency. -
no.nordicsemi.android.plugin.library
This plugin does the following:
- applies
com.android.library, - defines
compileSdkandminSdkto values set inAppConsts, - sets
buildConfig, - configures debug and release build types.
- applies
-
no.nordicsemi.android.plugin.library.compose
This plugin applies
no.nordicsemi.android.plugin.libraryand adds Compose and Material3 dependency. -
no.nordicsemi.android.plugin.kotlin
This plugin applies
org.jetbrains.kotlin.androidand configures Kotlin compiler. -
no.nordicsemi.android.plugin.hilt
This plugin applies
no.nordicsemi.android.plugin.kotlinandcom.google.devtools.kspand configures Hilt for the module. -
no.nordicsemi.android.plugin.feature
This plugin applies:
no.nordicsemi.android.plugin.library.composeno.nordicsemi.android.plugin.hiltno.nordicsemi.android.plugin.kotlin
and adds dependency to
androidx.hilt.navigation.compose.
Creates publish and releaseStagingRepositories tasks using maven-publish.
Since 2.6 Dokka V2 is enabled.
Add
org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
to gradle.properties file.
-
no.nordicsemi.jvm.plugin.kotlin (since 2.1)
This plugin applies
org.jetbrains.kotlin.jvmand configures Kotlin compiler. -
no.nordicsemi.jvm.plugin.nexus (since 2.0)
Creates
publishandreleaseStagingRepositoriestasks usingmaven-publish.
Plugins are released to Gradle Plugins repository and are available by their ids and version number.
Note
Version 2.1 altered ids of the plugins by replacing gradle with plugin.
Since 2.6 Dokka V2 is enabled.
Add
org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
to gradle.properties file.
The repository also contains Gradle Version Catalog with toml file. The file is automatically used by gradle to create libs reference in build.gradle.kts files.
Include the following code in your settings.gradle.kts file:
pluginManagement {
repositories {
mavenLocal()
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenLocal()
google()
mavenCentral()
}
versionCatalogs {
create("libs") {
from("no.nordicsemi.android.gradle:version-catalog:<version>")
}
}
}Dependencies can be later set using libs reference in build.gradle.kts files:
plugins {
alias(libs.plugins.android.application) apply false
}
dependencies {
// Example dependency:
implementation(libs.nordic.dfu)
implementation(libs.androidx.compose.material.iconsExtended)
}