Android が Kotlin ファーストになって 4 年が経ち、Kotlin に切り替えることで多くの Android デベロッパーが生産性の向上とアプリの安定化を実現しています。しかし、Gradle には何年も前から Kotlin (build.gradle.kts) のオプションが存在していたにもかかわらず、ビルド定義のデフォルト言語は Groovy (build.gradle) のままでした。
今回、ビルド スクリプトのデフォルト言語が Kotlin に切り替わったことをお知らせします。つまり、Kotlin がすべてのプロジェクトのコードで利用する唯一のデフォルト言語になりました。Jetpack Compose による UI 開発に利用できるのはもちろん、今回よりビルド スクリプトでもデフォルトになります。この改善にあたっては、Gradle と JetBrains のチームと連携して作業を進めてきました。詳しい内容は、関連するお知らせが Gradle ブログ (英語) とJetBrains ブログ (英語) に掲載されています。
この変更は Groovy を使っている既存プロジェクトには影響しません。今後も動作し続け、サポートが終了する予定はありません。ただし、Android Studio Giraffe 以降で新しいプロジェクトやモジュールを作成する場合は、デフォルトで Kotlin DSL が使われます。更新版のプロジェクト テンプレートを使うと、新しい Kotlin DSL のビルド スクリプトを簡単に試してみることができます。既存のビルドを移行したい場合は、Kotlin DSL 移行ガイドをご確認ください。
Kotlin DSL は新規プロジェクトのデフォルトになりますが、既存の Groovy DSL ベースの大規模なプロジェクトについては、Gradle、JetBrains、Google がさらにビルドのパフォーマンスを改善するまで移行を待つようにしてください。この作業は現在も継続中で、進展があり次第、最新情報をお知らせします。具体的には、スクリプトのコンパイル パフォーマンスが Groovy DSL よりも下がっています。ただし、Groovy DSL とは違い、Kotlin DSL スクリプトのコンパイル結果は Gradle のローカルとリモート キャッシュに格納されるので、その後のビルドで再コンパイルの必要はなくなります。
この変更のメリットは、プロジェクトのすべてのコードで 1 つの言語を使えることだけではありません。Gradle ビルドで Kotlin DSL を使うその他のメリットを紹介しましょう。
Kotlin は静的に型付けされるので、Kotlin DSL ビルド スクリプトを編集するときに、正確なコードヒントが瞬時に提供されます。
構文エラーが厳密にチェックされるようになり、プロジェクトの同期時ではなく Kotlin DSL ビルド スクリプトの編集時に表示されます。
Control+Q (macOS では Command+B) を押すことで、型とメソッドのドキュメントを確認できます。さらに詳しい情報を確認したい場合は、Control+クリック (Command+クリック) でソースコードにも移動できます。
1 つのプロジェクトで Groovy DSL ビルド スクリプトと Kotlin DSL ビルド スクリプトを混在させ、モジュールごとに徐々に移行できます。そのため、新規モジュールでは Kotlin DSL を使いつつ、既存モジュールでは Groovy を使い続けることができます。
これに関連して新規プロジェクト テンプレートも変更し、Kotlin DSL ビルド スクリプトで Gradle バージョン カタログ (英語) を使う試験運用版オプションを追加しています。
バージョン カタログを使うと、スケーラブルな形でプロジェクトの依存関係定義を一元管理できます。バージョン カタログの使用は必須ではありませんが、ビルド定義の型安全性が強化されるので、Kotlin DSL と合わせて使うとたいへん便利です。
バージョン カタログへの移行の詳細については、移行ガイド (英語) をご覧ください。
今回導入される Kotlin DSL のデフォルト変更は、Android Studio Giraffe プレビュー版 (英語) で利用できます。ぜひ試してみて、感想をお聞かせください (英語) !
Reviewed by Mari Kawanishi - Developer Marketing Manager, Google Play