GoogleがAndroid Studioをアップデート:IDEのようなマルチディスプレイサポートと分割ビューデザイナー

Table of Contents

GoogleがAndroid Studioをアップデート:IDEのようなマルチディスプレイサポートと分割ビューデザイナー

Hands On Google は Android Studio を更新し、複数の仮想ディスプレイのサポート、レイアウト デザイナーの新しい分割ビュー、GUI コンポーネントとの対話を容易にするビュー バインディングを追加しました。

Android Studio 3.6の発表では、「複数のディスプレイを備えたデバイスが増えるにつれて、アプリを様々なマルチディスプレイ構成でテストすることが重要になります」と述べられています。Googleは、今年後半に発売が予定されているMicrosoftのデュアルスクリーンSurface Duoを念頭に置いていると思われます。

マルチディスプレイサポートはエミュレータの機能であり、Android 10以降を選択した場合、エミュレータの詳細設定にある新しいディスプレイオプションから最大4つの仮想ディスプレイを定義できるようになりました。また、エミュレータはGoogleマップとの統合によって強化されました。

エミュレータは最大4つの仮想ディスプレイをサポートします

エミュレータは最大4つの仮想ディスプレイをサポートします

Android Studioには、Android JetpackとそのXMLベースのレイアウトをベースにしたビジュアルGUIデザイナーが搭載されています。今回のアップデートでは、ビジュアルデザイナーとXMLコードを並べて表示できる分割ビューが追加されました。また、新しいカラーピッカーも追加されました。

ビューバインディングを使用すると、GUIへのコードの実装が簡単になります。ビューバインディングは、GUIへのプログラム的なアクセスとイベント処理を可能にするクラスを自動生成します。これは、JavaコードでGUIオブジェクトへの参照を取得するためにfindViewByIdを使用する一般的な手法の代替手段です。これを使用するには、Gradleビルド構成でviewBinding要素を有効にします。ビューバインディングの利点は、コンパイル時にビューIDとタイプがチェックされることです。

これまでデータバインディングでこれを行うことはできなかったのでしょうか? 可能ではありますが、ビューバインディングはレイアウトファイルのアノテーションを必要とせず、自動的に行われます。一部の機能では、依然としてデータバインディングが必要です。

Googleマップは、位置情報ベースのアプリを支援するためにエミュレータに組み込まれています。

Googleマップは、位置情報ベースのアプリを支援するためにエミュレータに組み込まれています。

他にも、SDK ファイルの再開可能なダウンロード、メモリ プロファイラーでのリーク検出、コンパイルされたアプリケーション パッケージの検査に使用される APK アナライザーでのコンパイル済み DEX (Dalvik 実行可能) ファイルの難読化解除など、多数の新機能があります。

Android Studioは、人気の高いJava IDEであるJetBrainsのIntelliJ IDEAをベースにしており、今回の新バージョンはIDEA 2019.2をベースにした最初のバージョンとなります。IDEA 2019.2には独自のアップデートが含まれています。Android StudioはIntelliJ IDEAに遅れをとっており、現在のバージョンは2019.3で、4月に2020.1がリリースされる予定です。

Android Studio を実際に使ってみる

Android Studioには優れた機能が数多くありますが、Android開発環境の設定とアップデートは一筋縄ではいきません。新しいAndroid Studioを試してみたくて、IDE(ヘルプ > アップデートを確認)からアップデートを実行しました。ところが、私たちの場合、スムーズにはいきませんでした。なぜかAndroidとビルドツールのGradleが異なるバージョンのJava Development Kitを使用するように設定されていたため、「Android StudioとGradleはJDKに異なる場所を使用しています」という警告が表示されました。さらに、Dartプラグインは「現在のAndroid Studioバージョンと互換性がありません」と警告しました。

これらの問題は、様々なアップデートと設定ファイルの調整によって解決されました。既存のFlutterプロジェクトに問題があり、コンパイルできなくなりました。また、Android SDKコンポーネントのアップデート時に、インストーラーがIntel HAXM(ハードウェア支援実行)が必要であると要求してきたのも困りものです。HAXMはIntelのハイパーバイザーで、以前はAndroidエミュレータをハードウェアアクセラレーションで実行するために必須でした。しかし、これはもはや必要ありません。Windows 10の2018年4月のアップデート以降、Windows Hypervisor Platform(Hyper-V自体とは異なります)という機能を有効にすることで、Hyper-VでAndroidエミュレータを実行できるようになりました。

GoogleのAndroidチームは、可能な限りHAXMの使用を強く推奨していますが、残念ながら両者は共存できません。Hyper-VはDockerコンテナやWindows Subsystem for Linux 2など、他の用途にも便利なため、開発者がAndroid EmulatorをHyper-Vで使用したいと考えるのはよくあることです。解決策としては、HAXM​​のインストールをキャンセルすることが挙げられます。

Android StudioはHyper-Vを台無しにしているにもかかわらず、Intel HAXMをインストールしようとします

Android StudioはHyper-Vを台無しにするにもかかわらず、Intel HAXMのインストールに熱心です

Android 自体は扱いが難しいプラットフォームですが、その理由の 1 つは、さまざまなデバイスにさまざまなバージョンの OS が存在することです。新しい Android プロジェクトを開始すると、ウィザードが表示され、選択した SDK に応じて、アプリケーションを実行できるデバイスの数がわかりやすく示されます。ここでジレンマに陥ります。最新の SDK を指定して市場を限定してしまうのか、古い SDK を指定して新機能を見逃してしまうのか。現在サポートされている最も古い SDK は、2011 年の API 14 (Ice Cream Sandwich) です。2014 年の API 21 (Lollipop) を選択すると、ウィザードによると 85 % のデバイスで動作します。2017 年の API 26 (Oreo) では、わずか 6.0 % です。

Android Studio は Eclipse よりも使いやすいですが、Android の複雑さと多数の依存関係により、開発者にとって最も使いやすいプラットフォームとは言えません。

Fuchsia と Flutter の未来?

Googleは、モバイルプラットフォームにおける開発者エクスペリエンスを向上させる可能性のあるプロジェクトをいくつか進めています。その一つがFlutterです。これは、Android、iOS、そしてWebアプリケーションを対象としたクロスプラットフォームフレームワークです。FlutterはAndroid Studioを使用しますが、Visual Studio Codeを使用するオプションもあります。FlutterはDart言語を使用しています。

関連プロジェクトとして、Googleが公式にはあまり発表していないものの、開発がかなり進んでいる新しいオペレーティングシステム「Fuchsia」があります。Fuchsiaはユーザーインターフェースの大部分にFlutterを使用しています。言語ポリシー文書には、「エンド開発者」向けにサポートされる言語はC、C++、Dartのみと記載されています。GoogleがJavaへの依存を減らすのには、それなりの理由があるのか​​もしれません。

Fuchsiaに関してはまだ確かなことは何もありませんが、Googleのモバイルプラットフォームをターゲットとする開発者にとって大きな変化が訪れる可能性を示唆しています。Androidは今後もずっと私たちのそばにいますが、Flutterを使用することで、開発者はAndroidをサポートしつつFuchsiaネイティブアプリを開発できるようになります。

Reg は、 5 月の Google IO で発表が行われる可能性があると考えています。®

Discover More