목록2025/02/09 (3)
안드로이드 개발자 노트
부수 효과(Side Effect)는 컴포저블 함수의 범위를 벗어난 앱 상태 변경을 의미하며, 예측할 수 없는 리컴포지션으로 인해 가급적 피하는 것이 좋습니다. Composable을 사용하면 여러 개의 Composable을 겹쳐서 쓸 수 있고, 시스템은 각 Composable의 Lifecycle을 관리하며, 필요할 때만 재구성합니다. Composable은 기본적으로 바깥쪽에서 안쪽으로 상태를 내려줘 단방향 의존성이 형성됩니다. 하지만 안쪽 Composable이 바깥쪽 상태를 변경하거나, Composable이 앱 상태를 변경하면 양방향 의존성이 생기며 예측할 수 없는 부수 효과(Side Effect)가 발생할 수 있습니다. Side Effect란 Composable에서 자신이 아닌 외부의 State(상태)에..
Compose는 Android 뷰 시스템처럼 측정, 레이아웃, 그리기 단계가 있지만, 그 전에 중요한 컴포지션 단계가 추가됩니다. 프레임의 세 단계 Compose에는 세 개의 주요 단계가 있습니다. 컴포지션: 표시할 UI입니다. Compose는 @Composable 함수를 실행하고 UI 설명을 만듭니다.레이아웃: UI를 배치할 위치입니다. 이 단계는 측정과 배치라는 두 단계로 구성됩니다. 레이아웃 요소는 레이아웃 트리에 있는 각 노드의 레이아웃 요소 및 모든 하위 요소를 2D 좌표로 측정하고 배치합니다.그리기: UI를 렌더링하는 방법입니다. UI 요소는 일반적으로 기기 화면인 캔버스에 그려집니다. Compose는 데이터가 컴포지션에서 레이아웃, 그리기 순서로 이동하는 단방향 데이터 흐름을 따릅니다.(..
Jetpack Compose의 컴포저블(@Composable) 함수는 기존의 Android 생명주기(onCreate(), onResume() 등)와는 다르게 동작합니다. XML 기반 UI 시스템에서는 Activity나 Fragment의 생명주기를 따르지만, Compose에서는 컴포저블 함수 자체가 UI를 동적으로 관리합니다. 컴포지션은 컴포저블 함수들이 트리 구조로 UI를 구성하는 과정입니다.Jetpack Compose는 초기 컴포지션에서 컴포저블을 실행하고 UI 구성을 추적합니다.이후 앱 상태가 변경되면 리컴포지션(Recomposition)을 통해 필요한 컴포저블만 다시 실행하고 UI를 업데이트합니다.컴포지션은 초기 컴포지션에서 생성되며, 리컴포지션을 통해서만 변경될 수 있습니다. 리컴포지션은 일반적..