<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/kotlin-1-9-20-streamlining-source-sets-in-multiplatform-project-y5awuqeyc" -->

---
title: Kotlin 1.9.20: Streamlining Source Sets in Multiplatform...
description: Kotlin 1.9.20 moves Kotlin Multiplatform to Stable and introduces a default source set hierarchy template via the Kotlin Gradle Plugin. Key improvements...
canonical: https://daily.dev/posts/kotlin-1-9-20-streamlining-source-sets-in-multiplatform-project-y5awuqeyc
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Kotlin 1.9.20: Streamlining Source Sets in Multiplatform Project | daily.dev
og:description: Kotlin 1.9.20 moves Kotlin Multiplatform to Stable and introduces a default source set hierarchy template via the Kotlin Gradle Plugin. Key improvements...
og:url: https://daily.dev/posts/kotlin-1-9-20-streamlining-source-sets-in-multiplatform-project-y5awuqeyc
og:image: https://api.daily.dev/og/posts/y5awUqEyc.png
og:image:alt: Kotlin 1.9.20: Streamlining Source Sets in Multiplatform Project
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Kotlin 1.9.20: Streamlining Source Sets in Multiplatform Project

**[Touchlab](https://daily.dev/sources/touchlab)** · 4 min read · 0 upvotes · 0 comments

## Summary

Kotlin 1.9.20 moves Kotlin Multiplatform to Stable and introduces a default source set hierarchy template via the Kotlin Gradle Plugin. Key improvements include automatic creation of iOS source sets (e.g., iosMain) when targets are declared, simplified custom source set configuration using applyDefaultHierarchyTemplate{} instead of boilerplate 'by creating' syntax, better IDE code completion for predefined source sets, and a cleaner way to configure androidInstrumentedTest dependencies via sourceSetTree. Projects with complex existing hierarchies can opt out by setting kotlin.mpp.applyDefaultHierarchyTemplate=false in gradle.properties.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://touchlab.co/kotlin-1-9-20-source-set-enhancements>

## Similar posts on daily.dev

- [A More Reliable Compilation Scheme for Kotlin Multiplatform Modules](https://daily.dev/posts/a-more-reliable-compilation-scheme-for-kotlin-multiplatform-modules-jymr9ynsj) · JetBrains · 2 upvotes · 0 comments
- [Kotlin 2.3.20 Released](https://daily.dev/posts/kotlin-2-3-20-released-yhm5cs4jz) · Kotlin · 9 upvotes · 0 comments
- [Build Setup: Targets, Source Sets and buildSrc for tvOS in a Compose Multiplatform Fork](https://daily.dev/posts/build-setup-targets-source-sets-and-buildsrc-for-tvos-in-a-compose-multiplatform-fork-xupmuipxk) · ProAndroidDev · 3 upvotes · 0 comments
- [Kotlin 2.3.20 harmonizes with C, JavaScript/Typescript](https://daily.dev/posts/kotlin-2-3-20-harmonizes-with-c-javascript-typescript-hddvbwasn) · InfoWorld · 4 upvotes · 0 comments

---

Tags: [#ios](https://daily.dev/tags/ios), [#kotlin](https://daily.dev/tags/kotlin), [#gradle](https://daily.dev/tags/gradle)

[View this post on daily.dev](https://daily.dev/posts/kotlin-1-9-20-streamlining-source-sets-in-multiplatform-project-y5awuqeyc)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Kotlin 1.9.20: Streamlining Source Sets in Multiplatform Project","url":"https://daily.dev/posts/kotlin-1-9-20-streamlining-source-sets-in-multiplatform-project-y5awuqeyc","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/kotlin-1-9-20-streamlining-source-sets-in-multiplatform-project-y5awuqeyc"},"datePublished":"2026-08-02T07:15:37.781Z","dateModified":"2026-08-02T07:37:58.040Z","description":"Kotlin 1.9.20 moves Kotlin Multiplatform to Stable and introduces a default source set hierarchy template via the Kotlin Gradle Plugin. Key improvements...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d0c0d47d22bc4658f92b43e86da7f197?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d0c0d47d22bc4658f92b43e86da7f197?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Touchlab","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Touchlab","logo":"https://media.daily.dev/image/upload/s--CQ0u6GwB--/f_auto,q_auto/v1785654902/logos/touchlab?_a=BAMAMicg0","url":"https://daily.dev/sources/touchlab"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/kotlin-1-9-20-streamlining-source-sets-in-multiplatform-project-y5awuqeyc","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ios,kotlin,gradle","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Touchlab","item":"https://daily.dev/sources/touchlab"},{"@type":"ListItem","position":3,"name":"Kotlin 1.9.20: Streamlining Source Sets in Multiplatform Project"}]}
```

