News

新しい Gradle ビルドで Kotlin DSL がデフォルトに

Read this post in other languages:

私たちは構造化に優れ、より管理しやすいビルドを記述できるよう、開発者の支援に常に努めております。 この目標を達成するにあたり、Gradle ビルドスクリプトとプラグインの記述に Kotlin を適用することはごく自然なことです。 Kotlin は、DSL の作成と開発者エクスペリエンスの大幅な改良を施すのに最適な、多くの強力な機能を提供しています。

私たちは初めて Kotlin が Gradle に導入されて以来、Gradle ユーザーにとって円滑で快適なエクスペリエンスを実現することを目指して多くの作業に取り組んできました。 そして今日は皆さまに重要なお知らせがあります。この度、Gradle が Kotlin DSL を新しい Gradle ビルドのデフォルトに指定したことが発表されました! 今後は Kotlin DSL がプラグインとドキュメントのデフォルトのオプションとなります。 第一級関数や拡張メソッドなどのリッチな機能により、Kotlin は Gradle スクリプトの作成にベストな要素を維持するだけでなく、それらをさらに改善することができます。

JetBrains、Google、および Gradle、新しい Gradle ビルドで Kotlin DSL がデフォルトになったと発表

JetBrains、Google、および Gradle のコラボレーションにより、Kotlin DSL はさらにその成熟度を増し、開発者がプロジェクトでさらに効率よく使えるユーザーフレンドリーなツールになりました。」 ~ Gradle チーム

また、Google は Kotlin DSL が Android アプリの Gradle ビルドファイル用のデフォルトスクリプトであることを表明しました。

Google、Gradle、および JetBrains は引き続き緊密なコラボレーションを通じてコーディングスタイルを統一化し、イディオムを定義する意向です。このような取り組みにより、最終的にはコーディングの品質が改善されることが期待されます。

この記事では、Gradle スクリプトを記述するための Kotlin DSL の主なメリットをいくつか説明し、IDE における build.gradle.kts ファイルの既存のサポート機能を紹介します。

Groovy に代わって Kotlin DSL を選択するメリット

さまざまな言語から 1 つの言語を選択する理由は開発者によって異なるかと思います。 以下のセクションでは、Kotlin の主な強みとそれが Gradle ビルドスクリプトとプラグインを記述するのに適している理由を紹介しています。

Android の Gradle ビルドファイルを Grooby から Kotlin にするかまだ迷われてている方は、以下の Kotlin を使用する 4 つの主なメリットを参考にしてください。

1. コンパイル時のチェック

2 つの言語の大きな違いは、Groovy が動的言語であるのに対し、Kotlin は静的型付け言語であることです。 つまり、Kotlin DSL が使用される場合、ビルドスクリプトのエラーは実行時ではなくコンパイル時に発生することになります。

動的な型チェックの場合、エラーはビルドスクリプトが実行されるまで検出されません。 コンパイル時エラーの場合は、それよりも前の時点で問題を修正するチャンスがあります。 さらに、IDE で作業中はエディターによってエラーをハイライトできます。 これは、たとえば `application` ではなく構成名 `applications` を参照しようとする際に確認できます。

Kotlin DSL が使用される場合、ビルドスクリプトのエラーはコンパイル時に発生しない

2. より優れた IDE 体験

コードに関するセマンティック情報がより多いため、以下のような IDE の機能を最大限に活用できます。

  • 自動補完とコンテンツアシスタント
  • ソースコードの移動操作
  • リファクタリング

これまでのところ、Kotlin の統合が最も進んでいるのは IntelliJ IDEA と Android Studio です。 ただし、Kotlin DSL ベースのビルドを別の IDE でインポートして作業することもできます。 Gradle のドキュメントでは、Kotlin DSL の IDE サポートマトリクスを確認できます。

3. 単純化された宣言的プラグイン構文

Kotlin DSL は従来の Groovy DSL の代替構文を提供しており、コア Kotlin 言語と同じメリットが備わっています。 2 つの言語を比較してみましょう。

Gradle プラグインをプロジェクトに適用する際には、プラグイン ID のみを指定する必要があります。 たとえば、Groovy DSL で `application` プラグインを指定する場合は以下のようになります。

Groovy DSL でのプラグイン ID の指定

Kotlin DSL の構文は単純化されているため、Kotlin で入力する必要があるのは “application” のみです。

Kotlin DSL でのプラグイン ID の指定

前述のように、存在しないプラグインを適用しようとすると、IDE で構文エラーが指摘されます。

4. 拡大し続ける Kotlin 開発者コミュニティ

Kotlin には言語とライブラリに貢献して Gradle プラグインを提供する大規模で活発な開発者コミュニティが存在します。

コミュニティの拡大により、経験豊かな開発者と Kotlin を使い始めたばかりの開発者の両方に役立つ情報が豊富に用意されています。 このような情報には Kotlin の公式ドキュメント、フォーラム、ブログ、ソーシャルメディアのスレッド、オンライン教育コースなどが含まれます。

役に立つリソースが豊富にそろっているため、問題の解決策を簡単に発見してスキルアップできます。

Groovy から Kotlin DSL への移行

上記のようなメリットと堅牢な機能を持つ Kotlin DSL は生産性を高め、高パフォーマンスソフトウェアを構築するのに最適な選択肢です。 既存の Gradle ビルドを Groovy から Kotlin DSL に移行する場合は、Gradle の移行チュートリアルをご覧ください。 また、Android 開発者向けには Android アプリの Gradle ビルドファイルを Groovy から KTS に変換する方法に関する詳細なガイドが用意されています。

Gradle は今後も Groovy DSL をサポートします。 Gradle は Groovy DSL を使用する複雑なビルドロジックを伴う大規模なプロジェクトについてはまだ移行しないことを推奨していますが、 Kotlin が Gradle のデフォルトの DSL となった今、Kotlin DSL はより快適にビルドスクリプトの記述と編集を行いたいと考えている Gradle ユーザーにとってはるかに有益であると弊社は考えています。

JetBrains チームは今後も自社のテクノロジーをさらに強化し、効率的なアプリケーションを開発するための機能の豊富なツールをユーザーに提供していくことを努めてまいります。

オリジナル(英語)ブログ投稿記事の作者:

Anton Yalyshev

Anton Yalyshev

image description

Discover more