안녕하세요! 이번 글에서는 Gradle BOM(Bill of Materials)이 무엇인지, 그리고 Android 개발, 특히 Jetpack Compose에서 어떻게 활용할 수 있는지 알아보겠습니다.
1. BOM(Bill of Materials)
📌 라이브러리 버전 관리 문제
Android 개발을 하다 보면, 여러 라이브러리를 추가하는 경우가 많습니다.
예를 들어, Jetpack Compose를 사용할 때 compose-ui, compose-material, compose-runtime 등 다양한 라이브러리를 함께 추가해야 합니다.
dependencies {
implementation("androidx.compose.ui:ui:1.5.0")
implementation("androidx.compose.material:material:1.4.3")
implementation("androidx.compose.runtime:runtime:1.5.1")
}
이 경우, 서로 다른 버전이 섞이면서 호환성 문제가 발생할 수 있습니다.
예를 들어, compose-ui가 1.5.0인데, compose-material이 1.4.3이면, 내부적으로 버전 충돌이 날 가능성이 있습니다.
2. Jetpack Compose에서 BOM 적용하기
Google은 Jetpack Compose 관련 라이브러리를 쉽게 관리할 수 있도록 androidx.compose:compose-bom을 제공합니다.
BOM을 사용하면 개별 라이브러리의 버전을 명시할 필요 없이, BOM에서 지정한 최신 호환 버전이 자동으로 적용됩니다.
dependencies {
implementation(platform("androidx.compose:compose-bom:2024.01.00"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.material:material")
implementation("androidx.compose.runtime:runtime")
}
BOM 적용 후 장점
• 개별 라이브러리의 버전을 명시할 필요 없음.
• BOM이 지정한 호환 가능한 최신 버전이 자동 적용됨.
• 업데이트 시 compose-bom 버전만 변경하면 됨.
Compose BOM 버전
https://developer.android.com/develop/ui/compose/bom/bom-mapping
BOM과 라이브러리 버전 매핑 | Android Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. BOM과 라이브러리 버전 매핑 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 선택하기 2025.01.01 2025.01.00
developer.android.com
3. platform() vs enforcedPlatform() 차이
platform() (권장)
BOM에서 제공하는 버전을 사용하지만, 필요하면 개별 라이브러리의 버전을 수동으로 변경 가능합니다.
dependencies {
implementation(platform("androidx.compose:compose-bom:2024.01.00"))
implementation("androidx.compose.ui:ui") // BOM 버전 사용
implementation("androidx.compose.material:material:1.3.0") // 특정 버전 강제 지정 가능
}
enforcedPlatform() (강제 적용)
BOM에서 제공하는 버전을 무조건 강제 적용합니다. 개별 라이브러리의 버전을 변경해도 BOM이 지정한 버전이 우선됩니다.
dependencies {
implementation(platform("androidx.compose:compose-bom:2024.01.00"))
implementation("androidx.compose.ui:ui") // BOM 버전 사용
implementation("androidx.compose.material:material:1.3.0") // ❌ 적용되지 않고 BOM 버전이 강제됨
}
4. 마무리
Gradle BOM은 라이브러리를 관리하는 관점에서 버전 충돌 없이 여러 라이브러리의 버전을 일관되게 관리할 수 있는 좋은 도구 입니다.
'개발 > 안드로이드 스튜디오' 카테고리의 다른 글
(Gradle) libs.versions.toml 쉽게 추가하기 (0) | 2025.02.01 |
---|---|
Inconsistent JVM-target compatibility detected 에러 (0) | 2024.11.02 |
(Hilt) 환경설정 + libs.versions.toml + ksp (1) | 2024.09.05 |
(LiveTemplate) Composable Function 쉽게 만들기 (0) | 2024.08.16 |
(Plugin) Open current Activity (0) | 2023.05.29 |