Android Gradle Pluginの改善
Android Studioに合わせて、Android Gradle Pluginもバージョン4.0.0になりました。大きな変更もありますので、確認しておきましょう。
Java 8の標準ライブラリをサポート
これまでも、ラムダ式やメソッド参照と言ったJava 8の文法は、minSdkVersionに関係なく使えていましたが、「java.util.stream」などの標準ライブラリはminSdkVersion 24以降でしか利用できませんでした。今回の更新で、専用のライブラリを通じて、Java 8以降の標準ライブラリのAPIが利用できるようになりました。これに関しては、公式ドキュメントの該当ページで言及されています。
この環境を有効にするには、build.gradleにリスト3の記述を追加します。
android {
defaultConfig {
// minSdkVersionが20以下の場合に必要
multiDexEnabled true
}
compileOptions {
// 新しい標準APIのサポートを有効にするためのフラグ
coreLibraryDesugaringEnabled true
// Java 8言語を使えるようにするための設定
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
// Android向けの標準ライブラリ
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.5'
}
これらの設定をすることにより、Javaコード上で次のAPIが利用できるようになります。
- Stream API(「java.util.stream」)
- 「java.time」のサブセット
- 「java.util.function」
- 「java.util.{Map,Collection,Comparator}」に最近追加されたメソッド
- Optional(「java.util.Optional」、「java.util.OptionalInt」、「java.util.OptionalDouble」)と、関連する便利なクラス群
- 「java.util.concurrent.atomic」への機能追加(「AtomicInteger」、「AtomicLong」、「AtomicReference」へのメソッド追加)
- 「ConcurrentHashMap」
従来、Stream APIの代替ライブラリであるLightweight-Stream-APIや、「java.time」の代替ライブラリであるThreeTenABPを利用していた開発者にとっては、待望の正式なAPIとなります。
ビルド機能のフラグのAPIが変更された
ViewBindingやDataBindingを利用する際には、build.gradleでフラグを有効にする必要があります。従来は 「android」ブロックの直下に「viewBinding.enabled」や「dataBinding.enabled」というフラグを設定していましたが、今回のリリースでフラグの階層が整理されました(リスト4)。
android {
// これらのフラグ指定方法は非推奨になった
// viewBinding {
// enabled = true
// }
// dataBinding {
// enabled = true
// }
// 新しい指定方法
buildFeatures {
// ViewBinding機能を有効にするかどうか
viewBinding = false
// DataBinding機能を有効にするかどうか
dataBinding = false
...
}
}
従来の方法は非推奨になったので、注意しましょう。
Kotlin DSLがビルトインサポートになった
build.gradleはGroovy言語のDSL(ドメイン固有言語)として書かれていましたが、Gradle 5.0からはKotlinでもGradleのスクリプトが書けるようになりました。以前からAndroid向けのサポートも試験的に導入されていましたが、今回から正式サポートとなりました。Kotlin DSLを利用する場合は、「build.gradle.kts」にGradleスクリプトを記述することになります。
従来のGroovyでのスクリプトも非推奨になったわけではありませんし、Kotlin DSL版も2021年いっぱいまでを目処に使い勝手の改善・整理を行っていくらしいので、急いで導入する必要はありません。
まとめ
Android Studio 4.0の新機能を紹介しました。モーションエディタや新しいレイアウトインスペクタの追加によって、デザイナー職の方々がUIを微調整しやすくなることが期待できます。また、Javaの標準APIがサポートされたことは、Java言語でアプリを書き続けるプログラマーたちにとって、大きな力となるでしょう。
4.0はメジャーバージョンアップの名に恥じない、強力なアップデートになりました。皆さんの現場でも、是非導入してみてください。
