SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

アプリケーション開発の最新トレンド

リッチなUIを作りやすくなったAndroid Studio 4.0の新機能を知ろう


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の記述を追加します。

[リスト3]Java 8の標準ライブラリAPIを有効にするための設定
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)。

[リスト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はメジャーバージョンアップの名に恥じない、強力なアップデートになりました。皆さんの現場でも、是非導入してみてください。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
アプリケーション開発の最新トレンド連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 中川 幸哉(ナカガワ ユキヤ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/12450 2021/10/20 10:57

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー