Это API для безопасных side-effect'ов относительно lifecycle composition: одноразовые, корутинные и с cleanup.
Разбор
SideEffect — на каждый successful recomposition (редко нужен).
LaunchedEffect(key) — корутина, отменяется при уходе/смене key.
DisposableEffect — подписки с onDispose.
rememberCoroutineScope — для запуска из event handlers.
Пример
LaunchedEffect(userId) {
repo.load(userId)
}
DisposableEffect(Unit) {
val listener = register()
onDispose { listener.unregister() }
}
Итог
Side-effect API привязывает асинхронность и подписки к lifetime composition.