Sobes.tech
Junior — Middle

Milline on @Stable annotatsiooni roll Jetpack Compose'is ja milleks seda kasutatakse?

sobes.tech AI

Vastus AI-lt

Аннотация @Stable в Jetpack Compose используется для обозначения, что объект или класс является стабильным с точки зрения системы компоновки. Это значит, что состояние объекта не изменится неожиданным образом, и его свойства не будут меняться без уведомления.

Роль @Stable:

  • Помогает Compose оптимизировать перерисовки, так как система понимает, что объект не изменится, если ссылка на него не поменялась.
  • Уменьшает количество ненужных recomposition, повышая производительность UI.

Используется, когда вы создаёте собственные классы или типы данных, которые хотите использовать в Compose и гарантировать их стабильность. Если класс помечен @Stable, Compose может не отслеживать внутренние изменения, а полагаться на ссылочную целостность.

Пример:

@Stable
class User(val name: String, val age: Int)

Здесь Compose будет считать объекты User стабильными, если ссылка не меняется, и не будет перерисовывать компоненты без необходимости.