친구에게 현재 위치에서 우리 집에 오는 방법을 설명하고자 한다면
앞 사거리에서 좌회전 받아서 CU가 보일 때 까지 직진하다가 CU 를 끼고 우회전 후에 유턴하고...
우리 집 주소는 00로 20 ㅇㅇ아파트 101동 1101호야
쉽게 보면 위와 같이 이해할 수 있다.
기존 XML 방식은 findViewById() 함수로 탐색하고 button.setText(String), container.addChild(View) 와 같은 메서드를 호출하고 등등 오류 발생 가능성이 높다. 또한 보일러플레이트 코드가 많다.
기존 RecyclerView 는 구현을 위해 너무나도 분산되어 있다. Adapter, item view, item 의 layout, RecyclerView 의 Layout 등 처음 구현할 때 정말 많은 시간을 잡아먹었다. 이렇게 분산되어 있는 코드는 유지보수도 쉽지 않다.
하지만 Compose 와 함께라면 더욱 쉬운 구현이 가능하다
예시) LazyColumn 원문
@Composable
fun LazyColumn(
modifier: Modifier = Modifier,
state: LazyListState = rememberLazyListState(),
contentPadding: PaddingValues = PaddingValues(0.dp),
reverseLayout: Boolean = false,
verticalArrangement: Arrangement.Vertical = if (!reverseLayout) Arrangement.Top else Arrangement.Bottom,
horizontalAlignment: Alignment.Horizontal = Alignment.Start,
flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
userScrollEnabled: Boolean = true,
content: LazyListScope.() -> Unit
): Unit
위와 같이 Compose 의 장점은 간단히 다음과 같다
- 코드 감소
- 직관적인 API
- 빠른 개발 과정
- 강력한 성능