compose recomposition 4

[Compose] Compose의 LifeCycle

⭐️ Smart Recomposition- composition 함수에서 사용되는 데이터가 변경된 데이터의 함수만 재호출 즉 일부분의 ui만 업데이트 - 성능 최적화   Compose의 Lifecycle - composition : 컴포저블 함수가 호출되어 UI 트리를 구성하는 과정으로 여러 개의 컴포저블이 결합되어 최종 UI 생성, 즉 초기 UI를 설정하는 단계- recomposition : 상태가 변경되어 UI가 다시 그려지는 과정, 상태 변화를 감지하고 영향을 받는 부분만 업데이트 (최적화 하는 것이 제일 중요)- disposal : composable이 소멸, 리소스 해제  recomposition의 최적화를 위해서 생명주기를 아는 것이 중요합니다 만약 아래와 같이 코드를 사용한다고 하면, @Co..

🤖 Compose 2025.01.27

[Compose] 단방향 데이터 흐름

State :  위에서 아래로만 내려간다 - 일반적으로 상위 컴포넌트(부모)에서 하위 컴포넌트(자식)로 전달- UI 상태를 한 곳 (보통 부모 컴포넌트) 에서 관리해서  UI 컴포넌트(자식)는 그 상태에 대한 직접적인 수정이 불가능 -> 캡슐화 Event :  아래에서 위로 올라간다- UI 일부에서 이벤트를 생성해 위로 전달- 그 이벤트를 부모에게 알려주고 부모가 해당 이벤트에 대한 처리- 이벤트 발생 -> 이벤트 핸들러가 상태 변경(업데이트) -> 상태가 변경되면 state holder에서 변경된 상태 UI 표시 - 부모는 이벤트를 처리하고 상태를 변경 후, 새로운 상태를 다시 자식에게 전달. 자식은 상태 변경에 대한 영향을 받지만 직접적으로 상태를 수정불가  테스트 하기 용이하고, ui에 일관성 ex..

🤖 Compose 2025.01.23

[Compose] Recomposition

Composition- composable을 호출해 만들어지는 것으로 ui를 기술하는 composable의 트리 구조   Composition- composable fun을 실행하고 ui를 표시Layout- ui를 배치Draw- ui를 랜더링 즉, 캔버스에 그림  ⭐️ Recomposition- state가 바뀌었을 때 변경된 state를 반영하기 위해 Composition 업데이트- ui를 변경하기 위해선 state가 변경되어야 함 Recomposition을 조절하려면 ? @Stable이 없어도 compose complier가 안정적으로 간주하는 타입 - 모든 Primitive 타입, 문자열, 모든 함수 타입 위의 타입들이 아니라면 안정적이라고 간주할 수 없을 때 (ex. 리스트, 맵, 사용자 정의 객..

🤖 Compose 2025.01.06

[Compose] Component 알아보기 - CheckBox

CheckBoxRow(verticalAlignment = Alignment.CenterVertically) { Checkbox(checked = false, onCheckedChange = { }) Text(text = "checkbox를 테스트해보자")}- 기존 안드로이드 view와는 달리 체크박스를 눌러도 ui상에 아무 변화가 없음- checked 값이 바뀌어야만 ui가 갱신된다  그럼 이렇게 하면 될까 ? ❌ 변경되지 않는다 (primitive값만 바꾼다고 반영이 되는 게 아님)compose에서는 Composable 함수 즉, recomposition을 시켜야만 반영된다 var checked = falseCheckbox(checked = checked, onCheckedChange ..

🤖 Compose 2025.01.04