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 が必要な理由がもう 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 にリポジトリごとに分かれています。