본문 바로가기
프로그래밍/Jetpack Compose

10. 성능 지연 목록 - LazyColumn / LazyRow (Jetpack Compose UI 코틀린 앱 개발 강의)

by Dylan Kim 2024. 4. 24.
반응형


<구글이 알려주는 앱 개발 무료 강의>

[Jetpack Compose] 가이드 맵 - 전체 보기


 

10. 성능 지연 목록 - LazyColumn / LazyRow

 

성능을 고려하여 많은 항목을 처리해야 할 때, LazyColumn을 사용하는 것이 좋습니다. LazyColumn은 화면에 보이는 항목만 렌더링하여 성능을 향상시킵니다.

  1. LazyColumn의 사용
    • LazyColumn은 Android의 RecyclerView와 비슷한 역할을 합니다.
    • 화면에 표시될 항목을 처리할 때 유용합니다.
    • LazyColumn은 필요한 항목만 렌더링하여 메모리 사용량을 줄이고 성능을 향상시킵니다.
  2. LazyColumn을 사용한 목록 생성
    • LazyColumn을 사용하여 많은 항목을 표시합니다.
    • items 함수를 사용하여 개별 항목을 렌더링합니다.
  3. 성능 향상
    • LazyColumn은 화면에 표시되는 항목만 렌더링하므로 많은 항목을 효율적으로 처리할 수 있습니다.
    • 스크롤할 때마다 새로운 항목을 렌더링하여 성능을 유지합니다.

  4. 주의할 점

  •  LazyColumn은 RecyclerView와 달리 항목을 재활용하지 않습니다.
  •  LazyColumn은 스크롤할 때마다 새로운 컴포저블을 생성하므로 메모리 사용량을 고려해야 합니다.

예를 들어, 1,000개의 인사말이 있는 목록을 만든다고 가정해봅시다.

 

<기존코드>

@Composable
private fun Greetings(
    modifier: Modifier = Modifier,
    names: List<String> = listOf("World", "Compose")
) {
    Column(modifier = modifier.padding(vertical = 4.dp)) {
        for (name in names) {
            Greeting(name = name)
        }
    }
}

 

 

<변경코드>

@Composable
private fun Greetings(
    modifier: Modifier = Modifier,
    names: List<String> = List(1000) { "$it" }
) {
    LazyColumn(modifier = modifier.padding(vertical = 4.dp)) {
        items(items = names) { name ->
            Greeting(name = name)
        }
    }
}

 

 

 

 

LazyColumn을 사용하여 대용량의 목록을 처리하면 성능이 향상되며, 사용자 경험도 개선됩니다. Compose에서 성능을 고려하여 앱을 개발하는 것이 중요합니다.

 

 

 


반응형

댓글