반응형
안녀하세요
Jetpack Compose BOM 2025.03.00 버전이 업데이트되었습니다~!

이번 버전에서는 다양한 최적화와 기능 추가가 이루어졌으며, 몇 가지 API 변경 사항도 포함되어 있습니다.
아래에서 각 라이브러리별 업데이트된 버전과 변경 사항, 예제 코드까지 상세히 설명해 드리겠습니다. 👨🏫📚
1️⃣ Jetpack Compose BOM이란?
Compose BOM(Bill of Materials)은 Jetpack Compose 관련 라이브러리의 버전을 일괄적으로 관리할 수 있도록 도와줍니다.
이를 사용하면 개별 라이브러리의 버전을 직접 지정하지 않고, BOM을 통해 일관된 버전을 유지할 수 있습니다.
dependencies {
implementation(platform("androidx.compose:compose-bom:2025.03.00"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.material:material")
implementation("androidx.compose.runtime:runtime")
}
2️⃣ 주요 변경 사항 및 개선점
이번 2025.03.00 버전에서는 성능 개선, 새로운 기능 추가, 버그 수정, 그리고 API 변경이 이루어졌습니다.
✅ 1. 성능 최적화
- Recomposition(재구성) 성능 개선
- Compose가 변경된 UI 요소만 다시 그리는 과정이 최적화됨.
- 특정 상황에서 불필요한 Recomposition이 감소하여 UI가 더 부드러워짐.
- 메모리 사용량 감소
- UI 상태(state)를 관리하는 방식이 개선되어 메모리 할당이 최적화됨.
- 리스트 렌더링 성능이 향상됨 (특히 LazyColumn, LazyRow).
✅ 2. 새롭게 추가된 기능
- Modifier.animateContentSize 개선
- 기존 Modifier.animateContentSize()에 애니메이션 곡선(Curve) 지정 기능 추가
- 더 부드러운 애니메이션 효과 적용 가능
Box( modifier = Modifier .size(100.dp) .animateContentSize(animationSpec = tween(500, easing = LinearEasing)) )
- Material3 지원 확대
- 최신 Material3 디자인 가이드라인을 반영하여 추가적인 컴포넌트 지원
- MaterialTheme 내부적으로 새로운 색상 팔레트 및 Typography 적용 가능
✅ 3. 버그 수정 및 안정성 향상
- LazyColumn의 오버스크롤(over-scroll) 버그 수정
- PointerInput 이벤트 충돌 해결 (Modifier.pointerInput 관련 버그 수정)
- remember 및 LaunchedEffect가 특정 상황에서 예상치 못하게 초기화되는 문제 해결
3️⃣ 라이브러리별 변경 사항 및 예제 코드
각 라이브러리의 업데이트된 버전과 주요 변경 내용을 살펴보겠습니다.
라이브러리 이전 버전 최신 버전 (2025.03.00) 변경 사항
compose-ui | 1.7.6 | 1.8.0 | Recomposition 최적화, PointerInput 버그 수정 |
compose-runtime | 1.7.6 | 1.8.0 | 상태 관리 개선, 메모리 할당 최적화 |
compose-foundation | 1.7.6 | 1.8.0 | animateContentSize 개선, LazyColumn 성능 향상 |
compose-material3 | 1.2.0 | 1.3.0 | 새로운 Material3 컴포넌트 추가 |
compose-navigation | 2.7.0 | 2.8.0 | Navigation 애니메이션 최적화 |
🔹 LazyColumn의 성능 개선
LazyColumn(
modifier = Modifier.fillMaxSize()
) {
items(100) { index ->
Text(
text = "아이템 $index",
modifier = Modifier
.padding(16.dp)
.animateItemPlacement() // 새로운 애니메이션 추가
)
}
}
🔹 remember의 최적화된 사용 방식
@Composable
fun ExampleScreen() {
var counter by rememberSaveable { mutableStateOf(0) }
Button(onClick = { counter++ }) {
Text("클릭 횟수: $counter")
}
}
4️⃣ Compose BOM 업데이트 후 고려할 사항
💡 기존 코드가 정상적으로 동작하는지 반드시 확인해야 합니다!
업데이트 후 특정 기능이 변경되었거나, @Deprecated(사용 중단 예정)된 API가 있을 수 있습니다.
- Modifier 변경사항 확인
- Modifier.padding 등 일부 함수의 파라미터 방식이 변경되었을 수 있음.
// 기존 방식 Modifier.padding(16.dp) // 최신 방식 Modifier.padding(all = 16.dp)
- Deprecated(사용 중단) API 점검
- rememberSaveable을 사용하지 않고 remember만 사용하면 데이터가 유지되지 않을 수 있음.
- 새로운 기능 적극 활용
- animateContentSize()의 애니메이션 설정 가능하므로 UI 개선 가능.
5️⃣ 결론 및 마무리
✅ Compose BOM 2025.03.00 핵심 요약
✔️ Recomposition 성능 최적화 및 메모리 최적화
✔️ 새로운 애니메이션 및 Modifier 기능 추가
✔️ Material3 컴포넌트 지원 확대
✔️ 버그 수정 및 안정성 개선
✔️ Deprecated API 확인 후 마이그레이션 필요
📌 추천하는 다음 단계
- composeBom을 2025.03.00으로 업데이트 후 테스트 진행
- 변경된 API 확인 및 코드 수정
- 새로운 기능(animateContentSize, rememberSaveable) 활용하여 UI 개선
- LazyColumn 성능 최적화 기능을 적용하여 리스트 스크롤 성능 향상
이제 2025.03.00 업데이트를 적용하고, 더 효율적인 Compose UI를 만들어보세요! 🚀
반응형
'Updates.' 카테고리의 다른 글
Navigation Compose 2.8.8 -> 2.8.9 변경 사항 및 적용 방법 (2) | 2025.03.25 |
---|---|
Jetpack Compose UI 1.7.8 업데이트 상세 분석 (0) | 2025.02.15 |
Jetpack Compose 1.8.0-beta02 업데이트 상세 분석 (1) | 2025.02.14 |
Jetpack Compose 1.8.0-alpha08 업데이트 상세 분석 (1) | 2025.01.22 |