Ответ
В Jetpack Compose side effects — это операции, выходящие за рамки функции Composable, например, подписки, анимации или работа с жизненным циклом. Основные виды:
- LaunchedEffect — для корутин (асинхронные операции).
LaunchedEffect(key) { fetchData() }
- DisposableEffect — для очистки ресурсов (аналог
onDestroy).
DisposableEffect(key) { onDispose { cleanup() } }
-
SideEffect — синхронные изменения вне Compose (например, обновление статус-бара).
-
rememberCoroutineScope — для запуска корутин в обработчиках событий.
-
produceState — конвертирует внешний поток в состояние Compose.
Неправильное использование может привести к утечкам памяти или неожиданным пересозданиям UI. Всегда указывайте key для контроля перезапуска эффектов.