Вопрос объясняет механизм управления побочными эффектами в Jetpack Compose.
Сайд-эффекты — это действия вне Composable-функции (например, запросы в сеть).
LaunchedEffect: для корутин (анимации, API-запросы).
DisposableEffect: для ресурсов с очисткой (подписки, слушатели).
LaunchedEffect(key1 = userId) {
val data = fetchUserData(userId) // Запуск корутины
viewModel.load(data)
}Особенности:
Автоматически отменяется при выходе из Composition или изменении key1.
DisposableEffect(key1 = sensorManager) {
val listener = SensorListener { ... }
sensorManager.registerListener(listener)
onDispose { sensorManager.unregisterListener(listener) } // Очистка
}