안드로이드 앱 개발 과정에서 기존 xml 방식으로 복잡한 뷰를 그렸을때 느려지는 문제가 발생프로젝트에 수십, 수백개의 xml 레이아웃 파일들이 쌓여 있어, 찾기가 힘듬xml로 개발한 앱의 규모가 커지고 복잡해질 수록 로딩 시간이 오래 걸린다. 수 많은 속성을 가지고 있
안드로이드 프로젝트를 생성시 Empty Compose Activity로 프로젝트를 생성 기존 프로젝스 생성시에는 보지 못했던 ui.theme파일을 확인할 수 있습니다. Colors.kt: 이 파일은 앱에서 사용할 색상을 정의합니다. 예를 들어, 기본적인 배경색, 텍스트
Android Compose의 Scaffold은 앱의 기본 레이아웃 구조를 제공하는 컴포넌트입니다. Scaffold는 Material Design 가이드라인을 따르며, 앱의 상단 앱바, 하단 탐색 막대, 콘텐츠 영역 등을 설정할 수 있습니다.TopAppBar상단 앱바는
위 세가지 속성들을 사용하지 않고 Text() 두개를 그냥 적용하면 두개의 Text()가 겹쳐서 보입니다. 하지만 위 속성들을 사용하면 뷰들을 원하는 방향으로 배치시킬 수 있습니다. 2편 코드에 이어서 진행하겠습니다. Scaffold의 content에 새로운 @Com
verticalArrangement = Arrangement.TopverticalArrangement = Arrangement.BottomverticalArrangement = Arrangement.CenterverticalArrangement = Arrangement
박스는 겹칠수 있습니다.(기존 relative layout, constriant layout, framelayout 과 같이 뷰 겹치기가 가능합니다.)아래로 내려갈수록 위에 뷰를 올리는 방식입니다.alignment는 row, column 보다 다양하게 지원Alignme
Compose의 텍스트 | Jetpack Compose | Android Developers직접 실행시켜보고 여러 가지 변경해 보기⬇️ 아래로 스크롤 하면
UI Shape 코드를 직접 실행시켜 속성을 다양하게 변경 해가며 공부 했습니다. polySides+1 버튼을 클릭할 때마다 도형의 각도가 증가하여 화면에 다시 그려지는 것을 확인할 수 있습니다.
안드로이드 Compose의 LazyColumn은 성능을 최적화하기 위해 사용되는 효율적인 리스트 뷰 컴포넌트입니다. LazyColumn은 필요한 데이터만 렌더링하여 메모리 사용을 줄이고 스크롤 성능을 향상시킵니다. 이를 통해 대량의 아이템을 가진 목록을 효율적으로 처리
버튼의 속성과 기능들이 매우 다양하기 때문에 실습을 통해 직접 하나씩 변경해 가며 공부했습니다. Extensions.kt 파일을 생성하고 아래 코드를 작성합니다. 이 kt파일은 마지막 커스텀 그라데이션 버튼에 적용하기 위한 파일입니다.
val mutableState = remember { mutableStateOf(default) }var value by remember { mutableStateOf(default) }val (value, setValue) = remember { mutableStat
위 예제 코드 주석에 설명 되어 있듯이 스낵바가 나타나 있는 상태에서 스낵바 버튼을 한 번 더 눌러보면 스낵바가 사라지는 것을 확인할 수 있습니다.코루틴을 사용함으로써 스낵바를 보여주는 비동기 작업을 수행하도록 했습니다.
singleLine과 maxLine에 같은 입력을 넣었을 때 singleLine속성은 한 줄로 유지 되는 것을 확인할 수 있습니다. 반면 maxLine=3을 지정해 두었기에 최대 3줄 까지만 줄이 생성됩니다.우측 눈 모양 버튼을 누르면 입력한 비밀번호가 보이는 것을 확
Surface는 안드로이드 컴포즈에서 화면에 그리는 기본적인 단위입니다. Surface는 렌더링 가능한 영역을 나타내며, 여기에 다양한 컴포즈 요소들을 배치하고 그릴 수 있습니다. 간단하게 말해, 화면의 일부분을 나타내는 컴포즈 요소라고 생각할 수 있습니다.text에
Image의 속성 예제
설정은 Image편을 참고
navigationIcon 부분이 왼쪽 아이콘 배치actions 부분이 오른쪽 아이콘 배치직접 간격과 같은 요소들을 지정해 주어야 한다.
어떠한 Composable 함수가 다른 Composable 함수나 Component를 포함하는 것을 Slot API라고 한다. (ex Raw, Column 등등)Slot API를 만들때 마지막 파라미터에 content를 만드는게 편하다. → 마지막 인자를 { }에 옮겨
Compose의 ConstraintLayout | Jetpack Compose | Android Developers 설정 Build.gradle(app) 실습 Chain & Barrier ![](https://velog.velcdn.com/images/
이 전 ConstraintLayout편은 뷰들 각각을 직접 modifier에 제약을 지정했지만, ConstraintSet을 사용하여 Constraint을 밖으로 빼내 별도로 지정하도록 할 수 있다. 이 전에는 ConstraintLayout에서 만들었던 레퍼런스들을 Co
💡 Navigation Compose는 Compose 배포 버전과 동일하게 업데이트 되지 않습니다. 때문에, https://developer.android.com/jetpack/compose/navigation?hl=ko 에서 Navigation 버전을 확인
실습
Canvas는 modifier 기본값이 없다!!
Dialog CustomDialog
DropdownMenuDropdownMenuItem
androidx.compose.material3 | Android Developers(https://developer.android.com/reference/kotlin/androidx/compose/material3/package-summaryLaunch
BottomAppBar
Composable 함수 내에서 상태를 유지하기 위해 사용됩니다. 이 함수로 생성된 상태는 Composable 함수가 재호출되더라도 변경되지 않습니다. 즉, 상태가 Composable 함수가 호출될 때 한 번 생성되고 그 상태가 유지됩니다. 이는 재호출이 발생하더라도
애니메이션 | Jetpack Compose | Android DevelopersfadeInscaleInslideInslideInHorizontallyslideInVerticallyexpandInexpandHorizontallyexpandVerticallyAnim