Расскажи про свой опыт работы с derivedStateOf

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

Ответ

derivedStateOf — это функция в Jetpack Compose, которая создает производное состояние на основе других состояний. Она полезна, когда нужно вычислить значение на основе других состояний, но не запускать рекомпозицию при каждом их изменении.

Пример:

val textState = remember { mutableStateOf("") }
val isEmpty by derivedStateOf { textState.value.isEmpty() }

Text(
    text = if (isEmpty) "Поле пустое" else "Поле не пустое"
)

Ключевые моменты:

  1. Оптимизирует рекомпозицию — пересчитывается только когда изменяются зависимости
  2. Лучше использовать вместо простых вычислений в теле композейбла
  3. Не вызывает рекомпозицию, если результат вычисления не изменился

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