ComposeCompilerが対応していない現段階(2023/07/09)で、Kotlin1.9.0を動かす備忘録

概要

Kotlin1.9.0がリリースされました🎉
リリースされた中には、

等々が含まれています。
ただ、Composeを利用していますとどうしても、ComposeCompilerが新しいKotlinバージョンに対応していないと使用できません。
そこで利用できるようするための方法を備忘録として残そうと思います。

やってみる

方法

https://androidx.dev/storage/compose-compiler/repository
こちらで提供されている、compose-compilerのpre-releaseビルドを使用します。

settings.gradle

dependencyResolutionManagement {
    ...
    repositories {
        ...
        maven {
            url "https://androidx.dev/storage/compose-compiler/repository/"
        }
    }
}

settings.gradle.kts

dependencyResolutionManagement {
    ...
    repositories {
        ...
        maven {
            url = uri("https://androidx.dev/storage/compose-compiler/repository/")
        }
    }
}

のように、まずandroidx.devのmavenリポジトリを追加し、pre-releaseビルドされているcompose-compilerを参照できるようにします。

そのあとは、サイトにあるCompatibility tableを参考に、compose-compilerのバージョンを指定します。
今回は、Kotlin1.9.0を使用したいため、

composeOptions {
    kotlinCompilerExtensionVersion = "1.5.0-dev-k1.9.0-6a60475e07f"
}

のように指定します。
これで、composeを使用しながら、Kotlin1.9.0を使用することができるようになります。

注意

ただ、ここで注意が必要なのは、compose-compilerはあくまでもpre-releaseビルド版であり、安定版ではないため、予期せぬ動作は発生する可能性はあります。
なので、そこは認識して使用する必要があるかと思っています。

まとめ

この方法を使えば、compose-compilerが対応していなくても今回の1.9.0に限らず、新しいバージョンのKotlinをcomposeを使いながら使用することができるかなと思います。
そして、JVMでもbetaになったK2コンパイラも試したりすることもできます。
ただ、上記に記載したように、あくまでも正式版のcompose-compilerを使用していないため、予期せぬ動作等が発生する可能性はあるため、ひとまず動作を試してみたいといった使い方にとどめておくのが良さそうです。
(suppressKotlinVersionCompatibilityCheckフラグを使用した方法を試したのですが、そちらは動かず…知っている人いたらご教授願いたいですmm)

この記事が気に入ったらサポートをしてみませんか?