Desktop
Fixes
API changes
If you use Dispatchers.Swing
or Dispatchers.Main
in your code, add this dependency into build.gradle.kts
:
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:$coroutinesVersion")
}
Also, usage of Dispatchers.Swing
or Dispatchers.Main
inside internals of Compose is implementation details, and can be changed in the future. If you need to avoid race conditions with Compose UI, you can obtain appropriate coroutine scope via rememberCoroutineScope
:
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.window.application
@OptIn(ExperimentalComposeUiApi::class, androidx.compose.foundation.ExperimentalFoundationApi::class)
fun main() = application {
val scope = rememberCoroutineScope()
val someApplicationObject = remember(scope) { SomeApplicationObject(scope) }
DisposableEffect(Unit) {
SomeGlobalObject.init(scope)
onDispose { }
}
}