November 03, 2021
이 글은 RecyclerView로 구성된 한 화면을 Compose로 변경해보며 느낀점과
compose의 기본 개념을 서술합니다.
적은 수의 코드
실시간 미리보기 기능
선언형 프로그래밍
기존 코드를 migration하며 차이를 느껴보고 싶었습니다.
compose는 성능이 좋지 않다는 이야기가 있습니다.
성능 이슈는 타인의 말을 들어서는 크게 와닿지 않았습니다.
직접 비교하기 위해 기존 코드를 compose로 변경했습니다.
compose는 아주 간단한 생명 주기를 갖습니다.
조금 더 복잡하게 사용하고 싶다면 Side effects를 학습해야합니다.
Composable은 호출될 때 call site를 기억하며 식별자로 갖는다고 생각할 수 있습니다.
@Composable
fun LoginScreen(showError: Boolean) {
if (showError) {
LoginError()
}
LoginInput() // This call site affects where LoginInput is placed in Composition
}
@Composable
fun LoginInput() { /* ... */ }
반복문을 사용하면 코드 위치가 같은데 다 똑같은 Composable인가?
그래서 어떻게 똑똑한 재활용을 하는거지?