이동식 저장소

Compose의 Stability에 관하여 본문

Primary/Compose

Compose의 Stability에 관하여

해스끼 2022. 7. 5. 20:24

정말 좋은 글이다. 일독을 권한다.

 

Jetpack Compose Stability Explained

Have you ever measured the performance of your composable and discovered it is recomposing more code than you expect? “I thought Compose…

medium.com


요약하면

  • Composable의 모든 매개변수가 immutable 또는 stable하다면 해당 composable은 skip될 수 있다.
  • 어떤 composable이 skip되지 않아 성능상의 문제가 발생한다면, 먼저 unstable한 매개변수가 있는지 확인하자.
  • 그래도 잘 모르겠다면 Compose compiler의 보고서를 참고해 보자.
  • ``List``, ``Set`` 등의 collection 클래스는 항상 unstable하다. Kotlinx의 immutable collection을 사용하거나 해당 클래스에 ``@Immutable`` 또는 ``@Stable`` 어노테이션을 붙이자.
  • Compose compiler가 없는 모듈에서 작성된 클래스는 항상 unstable하다고 간주된다. 해당 모듈에 compose compiler를 추가한 후 어노테이션을 붙이던가, UI 모듈에서 해당 클래스를 감싸는 wrapper 클래스를 작성하자.
  • 물론 모든 composable이 skip 가능할 필요는 없다. 거의 recompose되지 않는 composable을 억지로 skippable하게 만들 필요는 없다.

``List``가 unstable이구나.. 화면에서 매우 큰 리스트를 사용한다면 성능 이슈가 발생할 수도?

Comments