[출근길 공부 008] Jetpack Comose - PausableComposition

이태훈·2025년 10월 13일

출근길 공부

목록 보기
8/11

1.8.0부터 출시된 Pausable Composition에 대해 알아보겠다..

https://android-review.googlesource.com/#/q/I3394b7ebd90932ca451c7d55df7f286329de7656

위 커밋에 추가된 기능으로.. 전체 Composition 과정을 중단 가능하게 만들어, 실제로 필요한 시점에만 구성(recompose)할 수 있도록 하도록 만들었다..

기존 LazyLayout 같은 경우에 복잡한 레이아웃을 가진 컴포저블 노드의 경우 해당 컴포넌트를 렌더링할 때 퍼포먼스 이슈가 생길 수 있었다.. (화면에 보일 때 동기적으로 수행됨)

이와 같은 이유로 Pausable Composition이 도입되었다.

PausableComposition은 setPausableContent, setPausableContentWithReuse 두 개의 api를 제공하며 각 api는 PausedComposition을 반환한다..

이 PausedComposition 모듈을 이용해서 개발자는 본인이 원하는 의도대로 구현할 수 있다..

해당 PausedComposition은 isComplete, resume, apply, cancel과 같은 api를 제공한다..

resume을 이용해서 컴포저블 노드를 RecordingApplier에 넣을 수 있고.. 최종적으로 apply를 통해 실제 컴포저블 노드 트리에 반영된다..

대략적인 기본 구성은 이렇고.. 이 개발자가 대표적으로 예로 든 LazyLayout에서 이 api가 어떻게 녹아들었는지 확인해보면 좋을 것 같다..

profile
https://www.linkedin.com/in/%ED%83%9C%ED%9B%88-%EC%9D%B4-7b9563237

0개의 댓글