LoginSignup
77
55

More than 5 years have passed since last update.

AndroidXへの移行がすぐできたのでまとめ

Last updated at Posted at 2018-10-03

はじめに

AndroidX

AndroidXとは今までのSupport Libraryを代替するAndroid拡張機能ライブラリのオープンソースプロジェクトです。
Google I/O 2018の発表を見てみると"AndroidX"の読み方は"アンドロイドエックス"です。
注意点として、iPhone X (アイフォーン テン)のような新機種の名称ではありません。
テンでもありません。
また、Android-x86プロジェクトとは別物です。

細かい箇所ですが書くときはAndroid KTXのようなスペースはいれないようです。
(Android KTXはAndroidXの一部となるようです)

公式記事

公式ドキュメントは以下です。

AndroidX Overview
https://developer.android.com/jetpack/androidx/

Migrating to AndroidX
https://developer.android.com/jetpack/androidx/migrate

導入に関する公式ブログ記事は以下です。

Hello World, AndroidX
https://android-developers.googleblog.com/2018/05/hello-world-androidx.html
AndroidX の紹介 (上記の日本語版)
https://developers-jp.googleblog.com/2018/05/hello-world-androidx.html

移行してみた

2018年9月24日にAndroid Studio 3.2が公開されました。
Android Studio 3.2にはAndroidX移行機能があるのでこちらを使用します。

前提としてSDKのVersionは28以上にする必要があります。

app.gradle
:
compileSdkVersion 28

Jetpackを使用していないプロジェクトで移行したのですがBeforeのapp.gradleは以下のような状態です。

[Before]
スクリーンショット 2018-10-02 10.08.51.png

ボタン一発変換

Refactor > Migrate to AndroidX で一発変換されました。
スクリーンショット 2018-10-02 10.11.31.png

以下、変換後のapp.gradleです。support-v4などはlegacy扱いとなります。

[After]
スクリーンショット 2018-10-02 10.15.22.png

また、gradle.properties の更新も行ってくれました。

android.enableJetifier=true
android.useAndroidX=true

スクリーンショット 2018-10-02 10.17.47.png

移行されなかったところ

移行後にテストしたところ、
excludeなどでサポートライブラリを指定している箇所は手作業で更新する必要がありました。
公式ドキュメントMigrating to AndroidXにてライブラリを照らし合わせて対応。

スクリーンショット 2018-10-02 10.47.46.png

感想

移行自体はすぐ完了し、動作も現状問題なさげです。
Material Designだけandroidxパッケージではなくcom.google.materialなので手動で置換する場合は注意です。

android.support.** androidx.@
android.databinding.** androidx.databinding.@
android.design.** com.google.android.material.@
android.support.test.** (将来のリリース)androidx.test.@

とりあえずAndroidXの読み方だけ覚えると良さげ。

77
55
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
77
55