やりたい事
AndroidXパッケージを試したい
↓
せっかくなので、Android StudioのAndroidX変換機能を試してみたい!
AndroidXについてはGoogle Developerのブログを読むべし
Google Developers Japan: AndroidX の紹介
環境
Android Studio 3.2 Beta 2
Build #AI-181.5281.24.32.4860949, built on June 26, 2018
JRE: 1.8.0_152-release-1136-b04 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.12.6
- Android Studio 3.2のベータ版をインストール済み
- 2018/07/05時点では3.2ベータ版でのみ「Migrate to AndroidX」が使用可能
- Androidプロジェクトは作成済み
準備
今回使用するプロジェクトはこれ
https://github.com/banbara23/AAC-Sample/tree/coroutine
- まだAndroidX変換前の状態
- KotlinでAACアーキテクチャ + Retrofit2 + Croutineを試したプロジェクト
変換→失敗
ではさっそく変換してみる
Android Studioでプロジェクトを開いて、Refactor > Migrate to AndroidX
と選択したところ...
何かメッセージがでた
どうやら必要条件があるらしく
- compileSdk 28 が必要
- project gradle plugin version 3.2.0 が必要
この条件をクリアするようプロジェクトを修正する必要がある。
修正
compileSdkを 28
へ変更
android {
- compileSdkVersion 27
+ compileSdkVersion 28
project gradle plugin version を 3.2.0-beta02
に変更
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.0'
+ classpath 'com.android.tools.build:gradle:3.2.0-beta02'
これで必要条件を満たすことができたはず
変換→成功
再度、Refactor > Migrate to AndroidX
migration前の確認ダイアログが出てきた。
チェックONでzip形式でプロジェクトのバックアップも可能らしい。
[Migrate]を押すと、AndroidXに変換する候補の一覧が出てきた
ここでAndroidXに変換したい箇所を選択できるらしい。
今回は全選択してして、[Do Refactor]を押した。
おお、パッケージがandroidx
に変換されてる!
git diffで見てみる
build.gradleのライブラリのバージョンまで最新に変換されていた。
(kaptも!)
コミットログを見ると分かりやすいはず
Migrate to AndroidXのコミットログ
ちなみに、SyncもビルドもバッチリOKだった。
結論
Android Studioの機能で一括変換してくれるのはかなり楽
人の手でAndroidXパッケージに変えるよりも速いし、ミスもなさそう
しかし、compileSdk 28
かつ project gradle plugin version 3.2.0
をクリアしているプロジェクトが世の中にどれだけあるんだろうか?
また、このAndroidX変換機能のためにcompileSdkを変更するというのも...
いずれは compileSdkが28以上が当たり前の時代がきた時、この「Migrate to AndroidX」が役に立つ日が来るかもしれない。