본문 바로가기

Android11

Compose의 레이아웃 - 기본사항 Composable 함수 기본사항 컴포저블 함수는 UI의 일부를 설명하는 Unit을 내보내는 함수이다. 정렬 방식에 관한 가이드가 없으면 Unit을 서로 겹치게 표시한다. 예시 @Composable fun ArtistCard() { Text("Alfred Sisley") Text("3 minutes ago") } 위 코드는 텍스트 요소를 서로 겹치게 표시한다. Compose는 UI요소를 정렬하기위한 레이아웃 컬렉션을 제공한다. 표준 레이아웃 Column 화면에 세로로 배치한다. Column 내에서 하위 요소의 위치를 설정하려면 verticalArrangement 및 horizontalAlignment를 설정하면 된다. 예시 @Composable fun ArtistCard() { Column { Text(.. 2023. 12. 1.
Compose의 상태 - Flow, LiveData Flow, LiveData의 상태 Flow의 상태 collectAsStateWithLifecycle() Lifecycle을 인식하는 방식으로 Flow의 값을 수집하므로 불필요한 리소스를 절약할 수 있다. STARTED상태에만 Flow를 수집하도록 명시하지 않고, 간결한 코드로 대체할 수 있다. 명시해야 한다면 코드가 길어진다…. val lifecycle = LocalLifecycleOwner.current.lifecycle val uiState by produceState( initialValue = viewModel.uiState.value key1 = lifecycle key2 = viewModel ) { lifecycle.repeatOnLifecycle(state = STARTED) { viewMo.. 2023. 11. 29.
Compose의 상태 - 호이스팅이란? 상태 호이스팅 컴포저블 함수에서 여러 함수가 읽거나 수정하는 공통의 상태는 상위 항목에 위치해야 한다. 이 과정을 상태 호이스팅이라 한다. (패턴이라할 수도 있을 것 같다!) 컴포저블의 상위 요소에서 제어할 필요가 없는 상태는 호이스팅되면 안된다. 예시와 함께 쉽게 설명해보자. 아래의 코드는 화면에 온보딩을 띄워주는 기능이다. @Preview(showBackground = true, widthDp = 320, heightDp = 320) @Composable fun OnboardingPreview() { BasicsCodelabTheme { OnboardingScreen() } } 이 화면은 사용자가 처음 앱을 실행했을 때 누르는 버튼을 제공한다. 따라서 버튼을 눌렀는지, 누르지 않았는지 정보에 따라 다.. 2023. 11. 2.
Compose의 상태 상태 모든 Android앱은 사용자에게 상태를 표시한다. ex) 스낵바, 댓글, 애니메이션 등.. 모두 상태이다. Jetpack Compose는 Android앱에서 상태를 저장하고 사용하는 위치와 방법을 나타낸다. Compose는 선언적이다. 따라서 Compose를 업데이트하는 유일한 방법은 새로운 인수로 동일한 컴포저블을 호출하는 것이다. 새로운 인수가 UI 상태를 표현한다. 상태가 업데이트될 때마다 리컴포지션이 실행되어 UI가 업데이트 되는 것이다. Composition Jetpack Compose가 @Composable을 실행할 때 빌드한 UI 초기 Composition 처음 @Composable을 실행하여 생성된 Composition Recomposition 데이터가 변경될 때 Compositio.. 2023. 11. 2.