Row의 Arrangement Row는 수평방향으로 자식 컴포넌트들을 순서대로 배치하는 레이아웃이다. 이때 어떤 방식으로 자식 컴포넌트들을 배치할지를 Row의 horizontalArrangement가 결정한다. 예를 들어 3개의 Text를 row의 내부에 배치한다고 할 때 첫 번째 컴포넌트는 왼쪽에 붙여서, 두 번째는 정중앙에, 세 번째는 오른쪽에 붙여서 배치하고 싶다고 해보자. 이때 직접 컴포넌트의 위치를 지정해주기보다. Arrangement.SpaceBetween을 쓰면 한 번에 해결된다. @Preview(showBackground = true, widthDp = 200, heightDp = 100) @Composable fun KotlinWorldRow(){ Row(horizontalArrangem..
Jetpack Compose
Alignment란? Jetpack Compose의 Alignment란 View의 정렬을 지원해주는 변수이다. 즉, 모든 View가 동일한 x축 혹은 y축을 기준으로 정렬되도록 만드는 변수이다. Column의 Alignment Column의 자식 View들은 수직으로 배치되므로 수평으로 정렬(horizontalAlignemnt)이 지원되는데 수평 정렬은 모든 자식 View들의 x위치가 동일하도록 만들어주는 정렬이다. 따라서 같은 y축 상에서 정렬된다(x값 동일하기 때문). Column에서 사용할 수 있는 Alignment의 종류 Column에서는 Alignment.Horizontal을 상속받는 3가지 Alignment를 사용할 수 있다. Alignment.Start (왼쪽 정렬) Alignment.Cen..
Arrangement 란? Jetpack Compose의 Arrangement란 View의 배치(Arrangement)을 지원해주는 변수이다. Column에서는 Arrangement.Vertical을 상속받는 아래 6가지 Arrangement를 사용할 수 있다. Arrangement.Top Arrangement.Center Arrangement.Bottom Arrangement.SpaceBetween Arrangement.SpaceAround Arrangement.SpaceEvenly 아래에서 각각이 어떻게 동작하는지 살펴보자. ColumnArrangement 살펴보기 이 옵션들이 어떻게 보이는지 확인하기 위해 다음과 같이 Preview를 정의한다. @Preview(showBackground = true..
Jetpack Compose의 등장과 중요성 Jetpack Compose는 Android의 차세대 UI라이브러리로 직관적인 코드를 통해 UI를 그려줄 수 있다는 점과, Stateless한 UI를 그려줄 수 있다는 점을 특징으로 가지고 있다. Google에서는 Kotlin이 안드로이드의 공식 언어로 지정되었을 때만큼 Compose를 밀어주고 있으며 이후 모든 안드로이드의 UI 코드는 Compose로 작성될 것이 명확해 보인다. 하지만 Compose는 나온지 오랜 시간이 되지 않아 양질의 자료를 찾아보기가 힘들다. 영문으로도 양질의 자료를 찾아보기 힘든데, 한글로 된 양질의 자료는 없다시피 하다. 현재 구글에 검색하면 나오는 자료들은 모두 Codelab을 따라하는 문서들 뿐 Compose에 대해 자세히 다룬..
ConstraintLayout 이란? ConstraintLayout이란 View간의 상대적 제약조건(Constraint)을 만들 수 있는 Layout을 뜻한다. 상대적 제약조건이란 특정 뷰가 다른 View에 대해 위(Top), 아래(Bottom), 왼쪽(Start), 오른쪽(End)에 위치할 수 있는지를 정의한 조건을 뜻한다. Compose 이전 안드로이드에서는 ConstraintLayout을 쓰는 것이 복잡한 View를 성능 저하 없이 만들 수 있는 최선의 방법이었으므로 권장되었는데, Compose에서는 코드의 가독성이 아닌이상 굳이 ConstraintLayout을 쓰는 것이 권장되지 않는다. 이에 대해서 자세히 알고 싶으면 아래 글을 참조 하길 바란다. [Android] ConstraintLayout..