Release 0.4 Announcement

29 June 2020

Join us to celebrate the fourth version of the Nokee plugins.

Longer than expected release cycle helped leap Nokee forward. In this release, we change the configuration model of Nokee plugins, which may potentially break current users. We made ten new plugins available for our users to support building native applications/libraries implemented in C, C++, Objective-C, Objective-C++ and Swift. We have also included five additional plugins to enhance the development of Gradle plugins. Let’s explore the release together.

Configuration model changes

The configuration model of Gradle was a talking subject for many years. It started with the zero configuration effort, aimed at minimizing the time spent processing the build script. Then, it was the software model, a different configuration model with ambitious goals. Now, it’s all about the configuration cache. When completed, it will allow near-instant execution of your Gradle builds. As the Gradle’s configuration cache near its completion, thanks to the fantastic work by the Gradle team, it’s essential to enable forward compatibility.

This release removes our dependency on obsolete Gradle core configuration modelling. It gives us more control for our future work required to push the iOS support forward. We also took a different direction than the native plugins developed by the Gradle team. The Gradle core plugins never instantiate unbuildable variants, making them impossible to access during the configuration phase. It’s a struggle point when adopting these new plugins for intermediate use cases. As part of this release, the Nokee plugins will instantiate all variants as required. It makes use cases like using previously built binaries when the local environment cannot produce the binaries possible.

New native plugins

This release contains ten new plugins for building native! They support building native applications and native libraries 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. They will provide parity with all the native language supported by the core Gradle plugins. See their respective plugin reference chapters to learn more.

Gradle Plugin Toolbox version 1.0 announcement

We recently announced the Gradle Plugin Toolbox to help plugin authors. As part of building the Nokee project, we experience every issue of the Gradle plugin development process. For this reason, we decided to share our development plugins with everyone. It allows testing against multiple Gradle versions as well as targeting specific Gradle APIs. Head over to the user manual to learn more about the Gradle Plugin Toolbox features.

New Swift iOS application support

The iOS support got a new plugin to build applications written in Swift. Due to the lack of cross-compilation support in the core Gradle infrastructure, dependencies on libraries didn’t make it in this release. However, we are hard at work in improving our supporting infrastructure.

What’s Next?

With release 0.4, we leaped forward. Over the next releases, the focus will be on testing, publishing and toolchain support. Testing is an important story often overlooked by build systems. Our goal is to allow for the most straightforward testing setup as possible. Finally, publishing is hard to get right in native. We are discussing various scenarios to solve the problem for everyone using Nokee plugins. For developers relying on building from sources, we will soon start working on build wrapping stories.

Leave a comment below or reach out on the Gradle community Slack. If you want to work with us, email us at hello@nokee.dev.