Ответ
Stable-аннотация (@Stable) в Jetpack Compose используется для оптимизации рекомпозиций. Она указывает, что значение или тип стабильны — их equals всегда возвращает одинаковый результат для одних и тех же входных данных. Это позволяет Compose пропускать рекомпозиции, если входные данные не изменились.
Пример:
@Stable
data class User(val name: String, val age: Int)
@Composable
fun UserProfile(user: User) {
Text(text = "${user.name}, ${user.age}") // Рекомпозиция пропускается, если user не изменился
}
Без @Stable Compose считает тип нестабильным и может выполнять лишние рекомпозиции. Аннотация особенно полезна для сложных типов или интерфейсов.