JCenter、Bintray終了に伴うヤマグロ提供のAndroidアプリの対応状況

JFrogから、JCenterやBintrayを含めたサービスの閉鎖が5/1に行われることが発表されました。

Service End for Bintray, JCenter, GoCenter, and ChartCenter | JFrog

余談ですが、この記事の見出しには「Into the Sunset on May 1st」と書かれています。 個人的にこういう重大なニュースに関しては、Sunsetなんてお洒落な表現はやらずに、ちゃんとCloseって書くべきだろう派です。

話を戻して、閉鎖までの期間がたいへんに短いこともあり、本日は急遽提供しているAndroidアプリのjcenter脱却対応(主に調査周り)を行いました。 結論を先に書くと、必要なライブラリはすでにMavenCentralから取得できることが確認できたので、特に大きな対応は行っておりません。 ただし、Android Gradle Pluginは一部Bintrayに依存している部分があるため、現時点で完全な脱却の対応はできません。

これに関しては、すでに記事にまとめている方がいらっしゃるので、リンクだけ張っておきます。

JCenter が2021年5月1日にシャットダウンすることになったので Android アプリエンジニア観点でメモをまとめた - BattleProgrammerShibata

簡単な確認方法

とりあえずgradleファイルの repositories にある jcenter() をコメントアウトします。 そしてjCenterの代わりに mavenCentral() を入れてビルドと動作ができるかチェックするのが一番簡単です。

buildscript {
    repositories {
        google()
        // TODO: Android Gradle Pluginがまだ対応していない
        //jcenter()
        mavenCentral()
    }
}

allprojects {
    repositories {
        google()
        //jcenter()
        mavenCentral()
    }
}

あとはビルドエラーになったライブラリの提供元(リポジトリなど)を確認して、対応の予定があるか、すでに対応されているかをチェックすればおしまいです。

利用しているサードパーティライブラリについて

基本的にGoogleやKotlin公式が提供しているライブラリの大半は、ほぼGoogleリポジトリかMavenCentralに上がっているので気にしなくてよさそうです。

なのでサードパーティライブラリだけ気にすれば良さそうですが、現在提供しているアプリで使っているライブラリは次のものしかありませんでした。

Timberは、最初からSonatype(MavenCentral)にアップロードされていました。 どうやらJCenter経由で取得できていたのが、そもそもよくなかったようです。

一方でeasylauncherは、Bintrayにのみリリースしているため、JCenterを削除すると使えなくなります。 また、リポジトリのissueやPRの状況を見る限り、メンテナンスは数年レベルで止まっています。 ただこれに関しては、すでに提供しているアプリがどちらもAdaptiveIcon対応していることもあって、easylauncherがないと困ることはほぼなくなっています。 ですので、こちらに関してはライブラリそのものの脱却という対応を予定しています。 どちらにしろ、リリースするアプリへの影響がないため、それほど急ぐ必要はありませんでした。

ということで、こうして情報共有の記事をアップロードして、一時対応完了です。

以上。