The Nokee team is pleased to announce an important milestone in native development with Gradle.

Read the announcement blog to learn more about the changes around the configuration model of Nokee.

Getting Started

To use the Nokee plugins in Gradle, copy the following code to the settings script of your project, then apply any of the Nokee plugins to your build using the plugins DSL block:

Example 1. Configuring Gradle plugin resolution
settings.gradle
pluginManagement {
   repositories {
      gradlePluginPortal()
      maven {
         url = uri('https://dl.bintray.com/nokeedev/distributions-snapshots')
      }
   }
   def nokeeVersion = '0.4.0'
   resolutionStrategy {
      eachPlugin {
         if (requested.id.id.startsWith('dev.nokee.')) {
            useModule("${requested.id.id}:${requested.id.id}.gradle.plugin:${nokeeVersion}")
         }
      }
   }
}
settings.gradle.kts
pluginManagement {
   repositories {
      gradlePluginPortal()
      maven {
         url = uri("https://dl.bintray.com/nokeedev/distributions-snapshots")
      }
   }
   val nokeeVersion = "0.4.0"
   resolutionStrategy {
      eachPlugin {
         if (requested.id.id.startsWith("dev.nokee.")) {
            useModule("${requested.id.id}:${requested.id.id}.gradle.plugin:${nokeeVersion}")
         }
      }
   }
}

Building native applications/libraries plugins

Ten new native plugins join the Nokee distribution to support building native application and native library implemented in C, C++, Objective-C, Objective-C++, and Swift. These new plugins are similar in features and will improve them over the next releases.

Experimental iOS application plugin for Swift

Support for building iOS application implemented in Swift is available as an experimental plugin. It offers the same feature as its counter-part for building iOS applications implemented in Objective-C. The iOS plugins are still severely limited in features due to the strategic goal for this release. The following releases will start addressing some production features needed by iOS developers.

Xcode IDE support for all new plugins

Xcode IDE plugin supports each of the new plugins. Code editing, compilation, debugging, code completion, and jump to symbol features are available when applying the Xcode IDE plugin with any native plugins.

New APIs for JNI library

Starting with this release, the plugin registers all JNI library variants regardless of whether they are buildable. This improves the user experience for all use cases and can potentially break your build.

Gradle Toolbox plugins

dev.gradleplugins.java-gradle-plugin

Provides support for developing Gradle plugin implemented in Java.

dev.gradleplugins.groovy-gradle-plugin

Provides support for developing Gradle plugin implemented in Groovy.

dev.gradleplugins.gradle-plugin-development

Provides additional support for developing Gradle plugin-related projects.

dev.gradleplugins.gradle-plugin-unit-test

Provides support for unit testing Gradle plugins.

dev.gradleplugins.gradle-plugin-functional-test

Provides support for functional testing Gradle plugins.

As a companion to the plugins, a dedicated chapter, samples, and plugin references are available to help plugin authors to get started.

Reporting Problems

If you find a problem with any of the plugins, please open an issue on GitHub. If you’re not sure you’re encountering a bug, please use the Gradle user forum or the Gradle Community Slack.

Let’s build happiness with Gradle, and looking forward to your feedback via Twitter or on GitHub.