[Compose] state

Anna·2025년 2월 26일

[TIL]Android

목록 보기
33/34

상태와 Compose의 구조

Compose는 선언형(Declarative) UI 프레임워크

즉, UI 업데이트는 상태(State)를 변경하는 것만으로 이루어져.

❌ 기존 XML 기반 UI

→ 명령형 방식으로 UI 요소를 찾아 수동으로 업데이트해야 함

✅ Compose

→ 상태를 변경하면 Compose가 UI를 자동으로 다시 그림 (재구성)


Composition, Recomposition

  • Composition : Jetpack Compose가 UI를 처음 생성하는 과정
  • Recomposition : 상태(State)가 변경될 때 변경된 부분만 다시 그림
var name by remember { mutableStateOf("") }
// name 값이 변경되면 Recomposition이 발생하고 새로운 UI가 생성됨

remember, rememberSaveable, rememberUpdatedState

함수설명사용 예제
remember컴포지션 동안 상태 유지단순 UI 상태
rememberSaveable회전 등 구성 변경 시 상태 유지입력값 저장
rememberUpdatedState최신 이벤트 상태 유지이벤트 리스너

✅ remember

var count by remember { mutableStateOf(0) }

// 컴포지션 중에만 상태 유지
// 화면 회전 시 초기화됨

✅ rememberSaveable

var count by rememberSaveable { mutableStateOf(0) }


// 화면 회전 시에도 상태 유지
// Bundle에 저장할 수 있는 값만 가능

✅ rememberUpdatedState

@Composable
fun TimerExample(onTimeout: () -> Unit) {
    val updatedOnTimeout by rememberUpdatedState(onTimeout)

    LaunchedEffect(Unit) {
        delay(5000)
        updatedOnTimeout()
    }
}

// 최신 이벤트 값을 항상 유지

0개의 댓글