🤖 Compose 14

[Compose] Animation

AnimatedVisibility- visibility에 Animated 적용- Transition이 enter, exit 따로 나눠져있다- FadeTransition:  나타날 때, 사라질 때 투명도를 조절해 부드럽게 변하는 효과- SlideTransition:  화면의 한 쪽에서 다른 쪽으로 이동하며 나타나고 사라지는 효과- ExpandTransition:  펼쳐지거나 축소되며 나타나고 사라지는 효과, 주로 패널이나 리스트 항목에 사용- ScaleTransition:  크기를 확대하거나 축소하면서 나타나거나 사라지는 효과 이런 식으로 사용 ..! textVisible은 아래와 같이 선언되어있다 var textVisible by remember { mutableStateOf(false) } Animat..

🤖 Compose 2025.01.08

[Compose] ConstraintLayout, ConstraintSet

library 추가 필요[libs.version.toml][versions]//...constaraintLayoutVersion = "1.1.0"[libraries]//...androidx-constraint-layout = { group = "androidx.constraintlayout", name = "constraintlayout-compose", version.ref = "constaraintLayoutVersion" }[plugins]//... createRefs()- constraintLayout 안에 있는 여러 UI 요소(예: 버튼, 텍스트 등)를 서로 연결하고 배치할 수 있는 참조를 생성@Stablefun createRefs(): ConstraintLayoutScope.Constraine..

🤖 Compose 2025.01.07

[Compose] Recomposition

Composition- composable을 호출해 만들어지는 것으로 ui를 기술하는 composable의 트리 구조   Composition- composable fun을 실행하고 ui를 표시Layout- ui를 배치Draw- ui를 랜더링 즉, 캔버스에 그림  ⭐️ Recomposition- state가 바뀌었을 때 변경된 state를 반영하기 위해 Composition 업데이트- ui를 변경하기 위해선 state가 변경되어야 함 Recomposition을 조절하려면 ? @Stable이 없어도 compose complier가 안정적으로 간주하는 타입 - 모든 Primitive 타입, 문자열, 모든 함수 타입 위의 타입들이 아니라면 안정적이라고 간주할 수 없을 때 (ex. 리스트, 맵, 사용자 정의 객..

🤖 Compose 2025.01.06

[Compose] scaffold

scaffold- slot api의 확장 - paramater로 여러 슬롯을 제공하여 다양한 UI(ex : topBar, bottomBar, floatingActionButton, drawerContent, content)을 쉽게 정의하고 구성 가능 - 기본틀로 사용하면 체계적으로 개발하기 좋다  - Scaffold는 기본적으로 content 슬롯에 패딩을 적용해야하고 아니면 아래와 같은 에러가 뜬다 Content padding parameter it is not used More  @OptIn(ExperimentalMaterial3Api::class)@Composablefun ScaffoldTest() { var checked by remember { mutableStateOf(false) } ..

🤖 Compose 2025.01.06

[Compose] Component 알아보기 - CheckBox

CheckBoxRow(verticalAlignment = Alignment.CenterVertically) { Checkbox(checked = false, onCheckedChange = { }) Text(text = "checkbox를 테스트해보자")}- 기존 안드로이드 view와는 달리 체크박스를 눌러도 ui상에 아무 변화가 없음- checked 값이 바뀌어야만 ui가 갱신된다  그럼 이렇게 하면 될까 ? ❌ 변경되지 않는다 (primitive값만 바꾼다고 반영이 되는 게 아님)compose에서는 Composable 함수 즉, recomposition을 시켜야만 반영된다 var checked = falseCheckbox(checked = checked, onCheckedChange ..

🤖 Compose 2025.01.04