KotlinのCompose Multiplatform(Desktop)でmaterial3を使う
Jetpack Composeのチュートリアルをやりたい
KotlinのMultiplatformが面白そうだったので、Win/Mac両方で動くアプリケーションを作成するためにIntelliJのCompose for Desktopテンプレートを使っていました。
UI関連を一通り触ってみたかったため、Jetpack Composeのチュートリアルを触ってみたのですが、このチュートリアルは androidx.compose.material3
が使われており、Compose for Desktopのテンプレートに含まれているのは androidx.compose.material
の方で、初期状態で material3
は依存関係に含まれていません。
ところが material3の依存関係の宣言 の通りそのまま追加しようとすると、これはAndroidにしか使えないようで、実行時エラーが発生します。
解決法
build.gradle.kts
に以下の依存関係を追加します。
dependencies {
implementation(compose.desktop.currentOs)
implementation(compose.material3) // <- これを追加
}
Kotlin Multiplatform DevelopmentドキュメントのCompatibillity and versionsのページにひっそりと書いてあります。
For example, if you apply the Compose Multiplatform 1.5.0 Gradle plugin and add
implementation(compose.material3)
to yourdependencies
この方法で導入した場合、Androidをターゲットとする場合 androidx.compose.material3
が選択され、他のターゲットの場合org.jetbrains.compose.material3
が選択されるようです。
従って org.jetbrains.compose.material3
を直接追加しても問題なさそうです。
kotlin multiplatform desktop material3 とかで検索しても全然出てこないので記事にしてみました。もうちょっと分かりやすいとこに書いて…(懇願)
Discussion