Kotlin multiplatform で生成するコードでは、application block にすべてのコードが入っているので注意。
Jetpack compose for desktop でアプリケーションを書く場合、 https://kmp.jetbrains.com/ で最初のコードを生成すると思うのだが、こいつが生成するコードには少し癖がある。
fun main() = application {
Window(onCloseRequest = ::exitApplication, state = rememberWindowState()) {
mainApp.App()
}
}
のようになっている。
application block は、Compose 側の都合で何回か呼ばれるので、普通の Kotlin app の感覚で、適当に中で Thread { }.start()
とか雑に発行してると、スレッドが何個も作られて死ぬので注意。