Jetpack Compose Recomposition
컴포지션
- 앱의 UI를 설명하는 컴포저블의 트리 구조 (UI가 어떤 형태로 이루어졌는지 기술)
초기 컴포지션
- 처음 Composable를 호출했을 때 만들어짐
리컴포지션
- 초기 컴포지션 이후 UI의 상태가 바뀔 때 마다 다시 그려지는 과정
- 상태가 변경되면 리컴포지션이 트리거됨
리컴포지션 스킵
- 두 인스턴스 equals 결과가 같을 경우
- 공개 프로퍼티가 변경되면 컴포지션에 알려야함
- 모든 공개 프로퍼티는 안정적이어야함
- @Stable이 표기되지 않아도 Compose 컴파일러가 안정적이다라고 간주하는 공통 타입들 (모든 프리미티브 타입, 문자열, 모든 함수 타입 (람다) -> 안정적이라고 추론할 수 없는 경우 @Stable 표기
- MutableState는 안정적 (State의 value 프로퍼티 값 변경을 알려주기 때문
컴포즈 렌더링 단계