[Compose] LazyColumn Drag And Drop Reordering
·
Android/Compose
이번 블로그 포스트에서는 Jetpack Compose를 사용하여 드래그 앤 드롭 기능이 포함된 재정렬 가능한 리스트를 만드는 방법을 소개합니다. 이 예제는 사용자가 리스트 아이템을 재정렬하고 제거할 수 있는 기능을 간단 애니메이션과 함께 제공합니다.  draggableItems이 함수는 LazyListScope에 대한 확장 함수로, 리스트의 아이템을 드래그할 수 있도록 표시합니다.@OptIn(ExperimentalFoundationApi::class)inline fun LazyListScope.draggableItems( items: List, dragDropState: DragDropState, crossinline content: @Composable (Modifier, T) -> ..
[Compose] Jetpack Compose 상태 관리 기초
·
Android/Compose
이번 글에서는 remember, rememberSaveable, State, MutableState, SnapshotStateList, 그리고 ViewModel에 대해 알아보겠습니다.  🌟 remember: 컴포저블 내에서 상태를 기억하기remember는 컴포저블 함수가 재구성될 때 값을 기억하도록 돕는 유틸리티입니다.이 함수를 사용하면 재구성(recomposition) 중에도 값이 초기화되지 않고 유지됩니다.@Composablefun MyComposable() { val count = remember { mutableStateOf(0) } Button(onClick = { count.value++ }) { Text("Count: ${count.value}") }}위 코드에..
[Compose] Android Composable Lifecycle
·
Android/Compose
⏳ 수명 주기 개요 Composable 함수는 UI를 화면에 렌더링 하기 위해 여러 번 호출될 수 있습니다.이 호출들은 각기 다른 수명 주기를 가지며, 이 주기들을 이해하면 성능을 최적화하고 예기치 않은 버그를 피할 수 있습니다.💡 주요 수명 주기 단계Initial Composition: 처음 UI가 컴포지션될 때, Composable 함수가 호출됩니다.Recomposition: 상태 변화 등으로 인해 UI가 갱신되어야 할 때, 해당 Composable 함수가 다시 호출됩니다.Skipping Recomposition: 입력이 변경되지 않으면 리컴포지션이 건너뛰어집니다.Disposal: UI가 더 이상 필요하지 않을 때, 자원이 해제됩니다. 🔍 컴포지션 내 컴포저블의 분석컴포지션 내 컴포저블의 인스턴스..
[Compose] Slot-based Layouts
·
Android/Compose
Compose는 UI를 쉽게 빌드할 수 있도록 Material Design 및 Android Studio에서 Compose 프로젝트를 만들 때 포함되는 androidx.compose.material:material 종속 항목을 기반으로 한 다양한 Composable을 제공합니다.Drawer, FloatingActionButton 및 TopAppBar와 같은 요소가 모두 제공됩니다. Slot API의 개념Compose는 Composable 위에 맞춤설정 레이어를 배치하기 위해 Slot API라는 패턴을 사용합니다.이 접근 방식은 하위 요소의 모든 구성 매개변수를 노출하지 않고도 자체적으로 하위 요소를 구성할 수 있게 하여 구성 요소의 유연성을 향상합니다.슬롯: 개발자가 원하는 대로 UI에 빈 공간을 남기고..
[Compose] BottomNavigation 사용방법
·
Android/Compose
안드로이드 Compose에서 BottomNavigation은 앱의 주요 내비게이션을 제공하는 중요한 UI 컴포넌트입니다.이 글에서는 BottomNavigation의 사용 방법, 커스터마이징 방법, 그리고 BottomNavigationRail에 대해 알아보겠습니다. BottomNavigation은 화면 하단에 위치하여 사용자가 앱 내에서 다른 화면으로 쉽게 이동할 수 있도록 도와주는 UI 요소입니다. 일반적으로 여러 아이콘과 텍스트 레이블로 구성되어 있으며, 각 아이콘은 특정 기능이나 화면으로 연결됩니다. BottomNavigation 사용 방법 🛠️@Composablefun MyBottomNavigation() { val items = listOf("Home", "Search", "Profile"..
[Compose] LazyListScope
·
Android/Compose
RecyclerView 대신 Compose에서는 Lazy Lists를 사용합니다.LazyColumn, LazyRow, LazyGrid는 대량의 데이터를 효율적으로 표시하는 데 특화된 컴포넌트입니다.  LazyListScopeLazyListScope는 LazyColumn과 LazyRow에서 항목을 정의할 때 사용하는 DSL(도메인 특정 언어)입니다. 스코프는 리스트의 항목을 추가하고 구성할 수 있는 다양한 함수들을 제공합니다. 이를 통해 코드의 가독성을 높이고, 리스트 항목을 더 쉽게 관리할 수 있습니다. @LazyScopeMarker@JvmDefaultWithCompatibilityinterface LazyListScope { fun item( key: Any? = null, ..