목록전체 글 (11)
유스의 개발 일지
Compose에서 NavHost를 사용하면 단일 Activity에서 여러 화면을 관리 할 수 있습니다. 이는 Android의 단일 Acitivity Architecture를 지원하는 방식입니다.각 화면을 Composable 함수로 구현되며, 화면 각 전환을 NavController를 통해 이루어집니다. 모든 UI와 탐색을 한 Activity 안에서 구성할 수 있습니다. NavHost 기본 설정은 다음과 같습니다.dependencies { val nav_version = "2.8.0" implementation("androidx.navigation:navigation-compose:$nav_version")} NavHost의 매개변수navController : 탐색 상태를 관리하는 컨트롤러입니다..
Compose UI에 Android 뷰 계층 구조를 포함할 수 있습니다. 이 접근 방식은 AdView와 같이 Compose에서 아직 사용할 수 없는 UI 요소를 사용하려는 경우에 특히 유용합니다. 이 접근 방식을 사용하면 직접 디자인한 맞춤 뷰를 재사용할 수도 있습니다. 뷰 요소 또는 계층 구조를 포함하려면 AndroidView 컴포저블을 사용합니다. AndroidView에는 View를 반환하는 람다가 전달됩니다. 또한 AndroidView는 뷰가 확장될 때 호출되는 update 콜백도 제공합니다. AndroidView는 콜백 내에서 읽은 State가 변경될 때마다 재구성됩니다. 여타 기본 제공 컴포저블과 마찬가지로 AndroidView는 상위 컴포저블에서 위치를 설정하는 등의 목적으로 사용할 수 있는 ..
Lazy lists많은 수의 항목이나 길이를 알 수 없는 목록을 표시해야 하는 경우 Column과 Row 같은 레이아웃을 사용하면 모든 항목이 표시 가능 여부와 관계없이 구성되고 배치되므로 성능 문제가 발생할 수 있습니다. Compose는 구성요소의 표시 영역에 표시되는 항목만 구성하여 배치하는 구성요소 집합을 제공합니다. 이러한 구성요소에는 LazyColumn 및 LazyRow가 포함됩니다. * 이를 XML에서 Recyclerview를 통해서 표현하였습니다. LazyColumn : 세로 스크롤되는 목록LazyRow : 가로 스크롤되는 목록LazyVerticalGridLazyHorizontalGridLazyStaggeredGrid다음은 LazyColumn과 LazyRow에 대한 함수입니다.@Comp..

함수 뜯어보고 탐구하기Dialog팝업 메시지를 표시하거나 기본 앱 콘텐츠 위의 레이어에서 사용자 입력을 요청합니다. 사용자의 주의력을 끄는 방해 UI 환경을 만듭니다.fun AlertDialog( onDismissRequest: () -> Unit, confirmButton: @Composable () -> Unit, modifier: Modifier = Modifier, dismissButton: @Composable (() -> Unit)? = null, icon: @Composable (() -> Unit)? = null, title: @Composable (() -> Unit)? = null, text: @Composable (() -> Unit)? = nul..
Adaptive Layout (적응형 레이아웃) XML 레이아웃으로 설정할 경우 여러 형태의 모바일 기기에 적용하기 위해서 많은 설정들이 필요합니다. 여러가지 화면에 대응할 때에 어려움이 있었는데 Jetpack Compose는 선언형 UI 도구 키트로, 다양한 디스플레이 크기에 맞게 콘텐츠를 다르게 렌더링하도록 동적으로 변경되는 레이아웃을 설계하고 구현하는 데 이상적이라고 합니다. Android 앱은 폴더블 플립형 스마트폰에서부터 벽걸이 TV 모든 유형의 사용자에게 우수한 사용자 환경을 제공하기 위해 다양한 디스플레이 크기와 구성에 맞게 앱의 UI를 조정할 수 있습니다. 이 화면 공간을 최대한 활용하는 인기 Android 앱 런타임 시 해당 공간에 대한 변경사항(방향 변경 및 창 포함) 화면 분할 및 자..