MapConductor Android SDK 1.3.1 을 Maven Central에 공개했습니다. 18개의 아티팩트 모두가 같은 판이고, BOM도 포함됩니다.
사용법
BOM을 넣으면, 각 모듈의 판을 쓸 필요가 없습니다.
dependencies {
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:compose")
implementation("com.mapconductor:for-maplibre")
}BOM을 쓰지 않는 경우도 1.3.1로 맞춰 주세요. 1.3.0에는 후술하는 불량이 있습니다.
공개한 것
아티팩트 이름과 저장소 이름이 일치하지 않는 것이 있습니다. core 와 compose 의 저장소는 android-sdk-*, geojson 의 저장소는 android-geojson-layer 인 채입니다(Maven의 좌표는 geojson 으로 확정되어 있고, 공개된 좌표는 바꿀 수 없기 때문).
Jetpack Compose
com.mapconductor:compose 가 Compose 연계입니다. 지도는 MapView 컴포저블로 놓고, 상태는 state 객체가 가집니다. 프로바이더를 교체해도, 이 호출 방식은 달라지지 않습니다.
Compose 주변에서 1.3.1이 필요한 이유가 하나 더 있습니다. Compose BOM은 공개된 POM에는 실리지 않습니다. BOM은 의존의 판을 해결하기 위한 구조이며, 해결 결과가 POM에 새겨지는 것은 아니기 때문입니다. 1.3.0에서는 이것을 놓쳐, Compose에 대한 의존이 판이 없는 채로 POM에 나와 있었습니다.
1.3.0이 아니라 1.3.1을 써 주세요
1.3.0의 공개 시, Compose에 대한 의존이 판을 갖지 않는 POM 이 생성되어 있었습니다. Maven Central은 이것을 튕겨 내므로 for-arcgis / for-here / for-tomtom 은 공개 자체가 실패했지만, for-googlemaps / for-maplibre / for-mapbox 는 깨진 채로 통과해 버렸습니다. 가져온 쪽에서 Compose의 의존을 해결할 수 없습니다.
Maven Central은 한 번 공개한 좌표를 교체할 수 없으므로, 수정판을 1.3.1로 다시 내고 있습니다. 1.3.0은 쓰지 마세요.
동작 환경
| minSdk | 28 |
| compileSdk | 37 |
| targetSdk | 35 |
| Java | 17 |
| Kotlin | 2.4.10 |
minSdk가 26에서 28로 올라갔습니다. ArcGIS Maps SDK 300 계열의 요구이며, compileSdk 37도 같은 이유입니다. ArcGIS를 쓰지 않는 구성이어도, 모듈이 갖춰져 있는 편이 다루기 쉬우므로 전체를 맞추고 있습니다.
각 모듈은 github.com/MapConductor 에 저장소별로 나뉘어 있습니다.