개요
Compose로 안드로이드 앱 개발을 할 때 한 가지 불편한 점이 있었다.
바로 아래와 같이 앱 모듈 `build.gradle.kts`에 라이브러리를 추가할 때, 버전을 따로 입력해줘야한다는 것이었다. ▼
매번 버전을 입력해서 추가를 하니까 최신 버전이 나올 때 마다 버전을 입력해줘야하고, 내가 현재 최신버전을 사용하고 있는건지 의문이 들기도 했다.
물론 항상 최신버전을 유지하는 것이 좋지 않을 수도 있지만, 웬만하면 이전 버전의 버그가 고쳐진 버전이 배포되기 때문에 특별한 이유나 해당 라이브러리의 세세한 부분까지 알고 있는게 아니라면 최신버전을 사용하는게 좋지 않나 싶다.
'자동으로 업데이트가 될 법 한데...' 라는 생각을 하던 도중 Compose BOM이라는 것이 있다길래 이에 대해 알아보게 됐다.
Compose BOM (Bill Of Material)
Bill Of Material
Bill Of Material은 개발자들이 만들어낸 단어는 아니고, 이전부터 사용하던 단어다.
최근 들어서는 개발자들이 많이 사용하고 있긴 하지만 한국어로 자재명세서라는 뜻으로 제품 생산에 필요한 원재료 혹은 부품에 대한 상세 내역을 말한다.
Compose BOM 역시 비슷한 의미로 사용이 되며, 앱(제품) 개발에 필요한 라이브러리(생산에 필요한 부품)에 대한 상세 내역을 정의해주는 역할을 한다.
쉽게말해, 앱 개발에 필요한 라이브러리들의 상세 내역을 정리해주는 라이브러리라고 할 수 있다.
사용
Compose BOM의 사용은 매우 간단하다.
아래와 같이 앱 모듈 `build.gradle.kts`의 `dependencies`에 아래와 같이 정의해준 뒤, ▼
val composeBom = platform("androidx.compose:compose-bom:2024.05.00")
implementation(composeBom)
androidTestImplementation(composeBom)
버전을 붙이지 않고 라이브러리들을 정의해주면 된다. ▼
implementation("androidx.compose.material3:material3")
이렇게 정의를 해주면 이후의 라이브러리들은 별도의 버전 표기를 하지 않아도 자동으로 최신 버전으로 정의가 된다.
별도로 버전을 적용하고 싶은데...
만약에 최신 버전에 문제가 있어 예전 버전의 라이브러리를 사용해야한다고 한다면 이전과 같이 버전을 표기해주면 된다. ▼
implementation("androidx.compose.material3:material3:1.1.2")
마치며
이번 글에서는 간단하게 Compose BOM에 대해 알아보았다.
Flutter에서는 `flutter pub get`을 돌리면 자동으로 최신 버전을 찾아주기도 하고, 프레임워크 자체의 최신 버전이 나오면 앱 구동시에 알려줘서 이에 익숙한 상태였는데 Compose에서는 안된다길래 깜짝 놀랐었다.
그런데 Compose BOM을 넣으면 된다는걸 알고 아 역시 그럴리 없지 했다...
Compose BOM을 사용하면 자동으로 버전 관리를 해주지만 BOM 버전 자체는 스스로 업데이트가 안되기에 최신 버전을 확인해줘야한다.
빠르고 효율적인 개발을 위해... 화이팅이다~
'Develop > AndroidOS' 카테고리의 다른 글
[Android] Dependency Injection (DI) (0) | 2024.06.14 |
---|---|
[Android][Compose] State Hoisting (0) | 2024.06.13 |
[Android][Compose] Compose의 레이아웃 (0) | 2024.06.13 |
[Android][Compose] JetPackCompose란? 그리고 Compose의 구성 (0) | 2024.06.12 |