# gradle-plugin

A Gradle plugin is reusable software that extends the Gradle build system with additional functionality.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Metro 1.0.0 Is Stable as a Kotlin Multiplatform Compile-Time Dependency Injection Framework

DevFeed: [Metro 1.0.0 Is Stable as a Kotlin Multiplatform Compile-Time Dependency Injection Framework](<https://devfeed.tech/articles/metro-is-stable-39040.md>)

Original publisher: [Read original article](<https://www.zacsweers.dev/metro-is-stable/>)

Author: Zac Sweers

Published: 2026-04-27T21:07:22Z

Content type: release

Language: en

Sources: [Zac Sweers](<https://devfeed.tech/sources/zac-sweers.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>)

Tags: [build-performance](<https://devfeed.tech/tags/build-performance.md>), [build-times](<https://devfeed.tech/tags/build-times.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [incremental](<https://devfeed.tech/tags/incremental.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [metro](<https://devfeed.tech/tags/metro.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [stable](<https://devfeed.tech/tags/stable.md>)

### AI overview

Metro 1.0.0 is now stable. The Kotlin multiplatform compile-time dependency injection framework uses a compiler plugin and provides API-stable runtime APIs, MetroX artifacts, and a Gradle plugin unless marked experimental. The article also describes build-performance improvements and compile-time validation features.

### Source excerpt

New here? Metro is a multiplatform, compile-time dependency injection framework for Kotlin implemented as a compiler plugin. Metro 1.0.0 is out now and stable. This means that its runtime APIs (runtime, MetroX artifacts, Gradle plugin, etc.) are now API-stable unless annotated with an experimental annotation. This

## How Storytale Previews Kotlin UI Components Across Platforms

DevFeed: [How Storytale Previews Kotlin UI Components Across Platforms](<https://devfeed.tech/articles/taking-a-look-at-storytale-kevin-schildhorn-38308.md>)

Original publisher: [Read original article](<https://touchlab.co/previewing-storytale>)

Published: 2025-04-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [UI components](<https://devfeed.tech/topics/ui-components.md>), [Design system](<https://devfeed.tech/topics/design-system.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [animations](<https://devfeed.tech/tags/animations.md>), [community](<https://devfeed.tech/tags/community.md>), [components](<https://devfeed.tech/tags/components.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [source](<https://devfeed.tech/tags/source.md>), [storytale](<https://devfeed.tech/tags/storytale.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial examines Storytale, a Kotlin Gradle plugin and runtime library for generating an interactive UI component gallery for Composables. It explains story definitions, the generated interface, parameter controls, source viewing, and cross-platform previews, while noting the project's early-stage limitations.

### Source excerpt

Storytale is a Gradle plugin that generates interactive component libraries for your UI. We'll go over how it works and how it can help your design system.

## KMMBridge 1.2.1 Released - Kevin Schildhorn

DevFeed: [KMMBridge 1.2.1 Released - Kevin Schildhorn](<https://devfeed.tech/articles/kmmbridge-1-2-1-released-kevin-schildhorn-38241.md>)

Original publisher: [Read original article](<https://touchlab.co/kmmbridge-1.2.1>)

Published: 2025-02-04T00:00:00Z

Content type: release

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [releases](<https://devfeed.tech/topics/releases.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [release](<https://devfeed.tech/tags/release.md>), [spm](<https://devfeed.tech/tags/spm.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

KMMBridge 1.2.1 adds support for publishing Kotlin Multiplatform framework binaries as GitHub Releases for CocoaPods integration. It also improves CocoaPods build error logging.

### Source excerpt

KMMBridge is a Gradle plugin that publishes Kotlin Multiplatform Xcode Framework dependencies for Swift Package Manager and CocoaPods. The 1.2.1 release fixes issues around publishing packages using CocoaPods.

## KMMBridge 1.1.0 Released - Kevin Galligan

DevFeed: [KMMBridge 1.1.0 Released - Kevin Galligan](<https://devfeed.tech/articles/kmmbridge-1-1-0-released-kevin-galligan-38240.md>)

Original publisher: [Read original article](<https://touchlab.co/kmmbridge-1.1>)

Published: 2024-12-05T00:00:00Z

Content type: release

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [.NET 11](<https://devfeed.tech/topics/net-11.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [releases](<https://devfeed.tech/tags/releases.md>), [spm](<https://devfeed.tech/tags/spm.md>), [swift-package](<https://devfeed.tech/tags/swift-package.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

KMMBridge 1.1.0 is a significant internal refactoring of the Gradle plugin used to publish Kotlin Multiplatform Xcode Framework binaries through Swift Package Manager and CocoaPods. The release improves maintainability and adds Gradle configuration cache support where possible, while introducing separate modules for GitHub features and potentially requiring plugin ID changes for GitHub publishing.

### Source excerpt

KMMBridge is a Gradle plugin that publishes Kotlin Multiplatform Xcode Framework dependencies for Swift Package Manager and CocoaPods. The 1.1.0 release is a significant internal refactoring to support ongoing improvements and maintainability.

## Kotlin 1.9.20: Streamlining Source Sets in Multiplatform Project - Jigar Brahmbhatt

DevFeed: [Kotlin 1.9.20: Streamlining Source Sets in Multiplatform Project - Jigar Brahmbhatt](<https://devfeed.tech/articles/kotlin-1-9-20-streamlining-source-sets-in-multiplatform-project-jigar-brahmbhatt-38259.md>)

Original publisher: [Read original article](<https://touchlab.co/kotlin-1-9-20-source-set-enhancements>)

Published: 2024-02-01T00:00:00Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [code-completion](<https://devfeed.tech/topics/code-completion.md>), [Code](<https://devfeed.tech/topics/code.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [boilerplate](<https://devfeed.tech/tags/boilerplate.md>), [code-completion](<https://devfeed.tech/tags/code-completion.md>), [development](<https://devfeed.tech/tags/development.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [new-features](<https://devfeed.tech/tags/new-features.md>)

### AI overview

This article explains how Kotlin 1.9.20 improves Kotlin Multiplatform source set configuration. It covers the default source set hierarchy template, simplified iOS target setup, custom source sets, manual template application, and enhanced IDE code completion.

### Source excerpt

Explore how Kotlin 1.9.20's new features significantly enhance the experience of setting up target source sets

## Implementing Multiplatform Kotlin library

DevFeed: [Implementing Multiplatform Kotlin library](<https://devfeed.tech/articles/implementing-multiplatform-kotlin-library-39208.md>)

Original publisher: [Read original article](<https://kt.academy/article/ak-kmp-library>)

Published: 2023-09-18T00:15:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Library](<https://devfeed.tech/topics/library.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains how to build and distribute a Kotlin library for multiple platforms using Kotlin Multiplatform. It covers placing platform-independent code in the common source set, configuring platform source sets and dependencies with the Kotlin Multiplatform Gradle plugin, and separating platform-specific file management when needed.

### Source excerpt

How in Kotlin we can use multiplatform capabilities to distribute the same code to multiple platforms.

## Samples of Using KMMBridge - Michael Friend

DevFeed: [Samples of Using KMMBridge - Michael Friend](<https://devfeed.tech/articles/samples-of-using-kmmbridge-michael-friend-38312.md>)

Original publisher: [Read original article](<https://touchlab.co/samples-of-using-kmmbridge>)

Published: 2022-11-29T16:25:42Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kmm](<https://devfeed.tech/tags/kmm.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [spm](<https://devfeed.tech/tags/spm.md>), [swift-package](<https://devfeed.tech/tags/swift-package.md>)

### AI overview

This sample project demonstrates how to add Kotlin Multiplatform code to existing Android and iOS apps using KMMBridge. It describes a setup split across four repositories, with SDK distribution through CocoaPods and Swift Package Manager.

### Source excerpt

As you explore how KMM can help your mobile dev team, we've put together more KMMBridge sample to help you evaluate this best-in-class tool.

## Doppl Technical Preview - Kevin Galligan

DevFeed: [Doppl Technical Preview - Kevin Galligan](<https://devfeed.tech/articles/doppl-technical-preview-kevin-galligan-38190.md>)

Original publisher: [Read original article](<https://touchlab.co/doppl-technical-preview>)

Published: 2017-07-06T16:00:00Z

Content type: release

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [Development](<https://devfeed.tech/topics/development.md>), [Android Library](<https://devfeed.tech/topics/android-library.md>), [RxJava](<https://devfeed.tech/topics/rxjava.md>)

Tags: [android-library](<https://devfeed.tech/tags/android-library.md>), [built-by-touchlab](<https://devfeed.tech/tags/built-by-touchlab.md>), [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [press](<https://devfeed.tech/tags/press.md>), [preview](<https://devfeed.tech/tags/preview.md>), [release](<https://devfeed.tech/tags/release.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

Touchlab announces a technical preview of Doppl, an early-stage Gradle plugin and extended Android library built around J2objc. The article describes the current state of the tools, notes that they can be used to build apps, and outlines planned support for RxJava 2, Retrofit 2, Xcode framework packaging, OkHttp, and Mockito.

### Source excerpt

Droppl until late last year, this was mostly an internal tool, but after some successes we decided this should be a "thing". Check it out.

## Doppl Updates (rxjava, sqldelight) - Kevin Galligan

DevFeed: [Doppl Updates (rxjava, sqldelight) - Kevin Galligan](<https://devfeed.tech/articles/doppl-updates-rxjava-sqldelight-kevin-galligan-38192.md>)

Original publisher: [Read original article](<https://touchlab.co/doppl-updates-rxjava-sqldelight>)

Published: 2016-11-29T17:00:25Z

Content type: opinion

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [Java](<https://devfeed.tech/topics/java.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [built-by-touchlab](<https://devfeed.tech/tags/built-by-touchlab.md>), [code-sharing](<https://devfeed.tech/tags/code-sharing.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [ios](<https://devfeed.tech/tags/ios.md>), [java](<https://devfeed.tech/tags/java.md>), [press](<https://devfeed.tech/tags/press.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

An update on Doppl's development covering a simpler sample app, changes to the Gradle plugin, and SQLDelight support. The article explains using a shared non-UI stack across Android and iOS and notes that SQLDelight now works with Doppl.

### Source excerpt

The team is working on a better sample app. The droidcon app is OK, but complex and kind of weird. I wanted something that's pretty simple to understand.

## Introducing PSync

DevFeed: [Introducing PSync](<https://devfeed.tech/articles/introducing-psync-31893.md>)

Original publisher: [Read original article](<http://engineering.flipboard.com//2015/09/psync>)

Author: https://github.com/hzsweers (Zac Sweers)

Published: 2015-09-08T00:00:00Z

Content type: article

Language: en

Sources: [Flipboard](<https://devfeed.tech/sources/flipboard.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Java](<https://devfeed.tech/topics/java.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [java](<https://devfeed.tech/tags/java.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

Flipboard introduces PSync, an Android-specific Gradle plugin that generates Java representations of XML preferences. The plugin reduces the boilerplate required to mirror preference values in code and supports both library and application projects.

### Source excerpt

Here on the Android team at Flipboard, we have a lot of settings for users to adjust their experience. If you throw in internal settings, we have about 100 total preferences to manage. This is a lot of boilerplate to maintain, because preferences in Android have no built-in synchronization (unlike Resources). Our 1 PreferenceFragment class has a couple hundred lines of boilerplate fields at the top where we keep in-code mirrors to these preference values. This design is tedious, brittle, and requires a lot of overhead to keep in sync with XML. We developed a Gradle plugin called PSync to solve this problem. PSync is an Android-specific Gradle plugin that generates Java representations of XML preferences. These Java classes can then be used directly in your code. The generated code is very much inspired by how 1 R.java works for resources, and should feel familiar to developers. It's easy to use, has some simple configurations for fine-tuning your generated code, and is ready to drop into both library and application projects. A full overview can be found on the GitHub README, but here's a quick preview: Say you have a preference: 1 2 3 4 <CheckboxPreference android:key="show_images" android:defaultValue="true" /> You can reference it like this: 1 2 3 4 5 6 7 8 9 String theKey = P.showImages.key; boolean current = P.showImages.get(); P.showImages.put(false).apply(); // If you use Rx-Preferences P.showImages.rx().asObservable().omgDoRxStuff! // If you need it boolean theDefault = P.showImages.defaultValue(); The generated Java code looks like so: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public final class P { public static final class showImages { public static final String key = "show_images"; public static final boolean defaultValue() { return true; } public static final boolean get() { return PREFERENCES.getBoolean(key, defaultValue()); } public static final SharedPreferences.Editor put(final boolean val) { return PREFERENCES.edit().putBoolean(key, val