'What does mean @Stable and @Immutable annotation in Jetpack Compose?
While studying through the Jetpack Compose sample project, I saw @Stable
and @Immutabe
annotations. I've been looking through the Android documentation and GitHub about those annotations, but I don't understand.
From what I understand, if use @Immutable
, even if the state is changed, recomposition should not occur. However, as a result of the test, recomposition proceeds.
What exactly do @Stable
and @Immutable
annotations do in Jetpack Compose?
Solution 1:[1]
The compiler treats both identically but
- using
@Immutable
is a promise that the value will never change. - using
@Stable
is a promise that the value is observable and if it does change listeners are notified.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Gabriele Mariotti |