뭔가 특정 기능에 대한 내용도 아니고 그냥 컴포즈의 멋짐에 대해서 설명하고 싶어서 고민하던 끝에 제목을 이렇게 지었습니다.
일단 바로 코드부터 소개해보겠습니다
@Composable
fun MycomposeableView(){
Scaffold {
Column(
Modifier
.verticalScroll(rememberScrollState())
.padding(50.dp)
) {
for(i in 1..30){
Greeting("Android")
}
}
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
Spacer(modifier = Modifier.size(20.dp))
}
저번 포스팅에 있던 코드를 약간 수정해봤습니다.
그리고 이 코드의 아래 사진과 같습니다.
어떻게 이런 결과가 나왔을까요? 차근차근 설명해볼게요.
일단 Column 이라는게 보입니다. 세로줄을 의미하는 단어죠. 말그대로 사진처럼 그 안에있는 요소들을 세로 정렬 해줍니다. 가로로 정렬하고 싶다면 Row 를 쓰시면 되겠죠?
xml로 view를 그릴때 리니어레이아웃을 만들고 오리엔트를 버티컬로 적어주고... 하는 수고보다 훨씬 간단하게 그려지는걸 볼 수 있어요. 일단 이것만봐도 멋지다는 생각이 듭니다.
그런데 xml 에서 사용하던 padding , size , background 같은 속성들은 어떻게 지정해주는걸까요?
Column 의 ( ) 안에 Modifier 라는게 보입니다. 여기서 위 코드처럼 속성들을 정해줄 수 있습니다. 사이즈는 물론이고 배경색 , 높이 등등 여러가지 속성들을 지정할 수 있고 따로 스크롤뷰를 만들어서 안에 넣어줘야하는 번거로움을
verticalScroll 하나로 바로 스크롤이 가능한 view 로 만들어주기도 하는 짧은 코드로 개발자들이 귀찮았던 작업들을 바로 동작하게 만듭니다. 이 또한 각각 속성들을 잘만 활용한다면 엄청나게 생산성이 증가할 것 같네요.
그리고 컴포즈는 이런것도 됩니다.
for(i in 1..30){
Greeting("Android")
}
for 문으로 그냥 view를 생성해버립니다. 정말 view 를 그리는 메소드라고 생각해도 될 정돕니다.
이렇게 유연하고 빠르게 멋진 기능들을 순식간에 만들 수 있는 컴포즈의 멋짐에 대해 알아봤습니다.
'Android > Android Compose' 카테고리의 다른 글
Jetpack Compose CompositionLocal 에 대해 알아봅시다 (0) | 2024.03.31 |
---|---|
스와이프 삭제 구현 (0) | 2024.03.10 |
[안드로이드 컴포즈] 스와이프 삭제 구현 (1) | 2024.01.14 |
안드로이드 컴포즈 dialog 커스텀 하기 (0) | 2023.12.20 |
Jetpack Compose 에서 Lifecycle 관리하기 (0) | 2023.05.11 |
안드로이드 컴포즈 1주차 정리 (0) | 2021.11.07 |
안드로이드 컴포즈 - GDG DevFest2021 참여하다. (0) | 2021.11.02 |
Android Compose 는 무엇일까? (0) | 2021.10.27 |