Какие знаешь side effects в Compose

«Какие знаешь side effects в Compose» — вопрос из категории Jetpack Compose, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Compose side effects — это операции, выходящие за рамки композиции, например, подписки, анимации или работа с жизненным циклом. Основные side effect API:

  1. LaunchedEffect — для корутин внутри композиции. Выполняется при входе в композицию и отменяется при выходе.
LaunchedEffect(key) {
    // Асинхронные операции
}
  1. DisposableEffect — для ресурсов, требующих очистки (например, подписки).
DisposableEffect(key) {
    val subscription = subscribe()
    onDispose { subscription.unsubscribe() }
}
  1. SideEffect — для синхронных операций после успешной рекомпозиции.
SideEffect {
    // Обновление внешнего состояния
}
  1. rememberCoroutineScope — для запуска корутин вне композиции (например, по клику).

  2. produceState — преобразует внешнее состояние в состояние Compose.

Используйте их осторожно, чтобы избежать утечек памяти и неожиданного поведения.