본문 바로가기

Composition

[ComposeInternals] 컴포즈 UI (Compose UI) - (1) Jetpack Compose Internals를 참고하여 작성하였습니다 Compose UIKotlin 멀티플랫폼 프레임워크이며 Composable 함수를 통해 UI를 방출하는 구현을 제공 Compose Runtime과 UI를 통합할 때의 목표화면의 레이아웃 트리를 구축하는 것 트리에 사용되는 노드 타입은 Compose UI만 알고 런타임은 알지 못한다그래서 런타임은 트리에서 노드의 작업(삽입, 제거, 이동 등)을 Client 라이브러리에 위임 초기 Composition 과정에서는 변경 목록이 모든 노드를 삽입하여 레이아웃 트리를 구축하고Recomposition 과정에서 변경 목록은 트리를 업데이트 한다 이 과정에 대해 자세히 살펴보자 예약된 변경 목록을 실제 트리의 변경 목록으로 매핑(Mapping sc.. 더보기
[ComposeInternals] 컴포즈 런타임 (ComposeRuntime) - (2) Composition Jetpack Compose Internals를 참고하여 작성하였습니다 https://kancho.tistory.com/60 ComposeRuntime - (1)에서는 Composer에 대한 내용을 작성 이 글에서는 Composition에 대해 알아본다 CompositionComposition을 생성하는 주체는 누구이며 어떻게, 언제 이루어져있는지 알아보자 Composition이 생성되면 Composer는 스스로 구축한다Composer는 currentComposer 메커니즘을 통해 접근하고, Composition이 관리하는 트리를 생성하고 업데이트하는 데 사용된다 Compose Runtime으로 접근하는 2가지 진입점Composable 함수를 작성해 관련된 모든 정보를 방출하고 런타임과 연결setCont.. 더보기
[ComposeInternals] 컴포즈 런타임 (ComposeRuntime) - (1) Composer Jetpack Compose Internals를 참고하여 작성하였습니다 이 글에서는 Composable 함수가 composition에 어떻게 변경사항을 방출(emit)하고 컴파일러를 통해 주입된 composer 인스턴스를 이용해 composition이 연관된 정보를 업데이트 받는 방법을 소개한다 컴포즈 런타임 (Compose Runtime)Compose Runtime의 동작 순서Composition 단계Composable 함수를 실행하고 이 단계에서 일어난 모든 정보를 슬롯 테이블에 저장한다변경 목록 생성Composer가 슬롯 테이블에 저장된 정보를 기반으로 UI 변경사항을 파악해 변경 목록 생성변경 사항 적용Applier(최종적으로 트리 구체화)가 변경 목록을 적용실제 노드 트리를 구체화한다Recomp.. 더보기
[Compose] 상태 관리 Compose 공식문서를 참고하여 작성하였습니다  State와 CompositionCompose에서는 State(상태)가 업데이트 될 때마다 Recomposition 실행 예시) 상태 변화가 없는 코드@Composableprivate fun HelloContent() { Column(modifier = Modifier.padding(16.dp)) { Text( text = "Hello!", modifier = Modifier.padding(bottom = 8.dp), style = MaterialTheme.typography.bodyMedium ) OutlinedTextField( v.. 더보기
[Compose] Composable 수명 주기 Compose 공식 문서를 참고해 번역한 내용입니다.  Composable의 수명주기를 알기 위해서는 Composition에 대해 알아야 한다 Composition은 UI를 구성하는 기본적인 개념이며 Composable UI Tree 구조  Composition은 초기 Composition을 통해서만 생성되고 Recomposition을 통해서만 업데이트 될 수 있다  Initial Composition (초기 컴포지션)처음 Composable 함수가 호출될 때 발생UI 트리를 처음으로 생성하위 Composable 실행Recomposition상태(State)가 변경될 때 트리거되고 상태를 추적해 State를 읽는 모든 Composable 중 skip할 수 없는 모든 Composable 실행효율적으로 변경된.. 더보기