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