Android アプリ開発用公式 IDE の最新安定版リリース、Android Studio Electric Eel (2022.1.1) (英語) をお知らせできたことに、私たちは⚡️しびれて (Electrified) ⚡️います。
今回のリリースには、デザイン、ビルドと依存関係、エミュレータとデバイス、IntelliJ といったさまざまな領域を網羅するアップデートと新機能が含まれています。この記事や下の動画では、アプリ開発の生産性がどのように向上するかについて説明します。さっそく最新安定版をダウンロード (英語) してお試しください!
デザイン
Compose プレビューの自動アップデート : これまでのバージョンの Android Studio では、変更後に Compose プレビュー (英語) を手動で更新する必要がありました。Electric Eel では、同じファイルで互換性のあるコードを変更した場合、プレビューが自動的に更新されるので、UI 関連の反復作業を高速化できます。コードの変更に互換性がない場合は、プレビューに [Needs Rebuild] と表示され、完全なビルドが必要であることがわかります。編集中のコードにコンパイル エラーが含まれている場合は、プレビューが一時的に停止します。エラーが修正されると、プレビューが再開します。
Compose プレビューのデバイス仕様 : Compose プレビュー (英語) に含まれるもう 1 つのアップデートは、Preview アノテーションで device パラメータを編集してデバイス設定を指定できるようになったことです。リファレンス デバイスから選択することも、自分で作成することもできます。その場合は、オートコンプリートが利用できるので、利用できるオプションや設定できる値が簡単にわかります。Dolphin 以降で利用できる複数の Preview アノテーション (英語) も問題なく動作します。
Layout Inspector での再コンポーズのレンダリング ハイライト : Layout Inspector で再コンポーズがハイライトされ、どのコンポーザブルが再コンポーズされたかをすばやく簡単に確認できるようになりました。これにより、直近に再コンポーズ回数 (英語) が最も多い変更が、アプリのどこで起きたのかがわかるようになります。直近に変更された UI 要素には、一時的に色付きのオーバーレイが表示されます。そのため、アプリで起きている予期しない再コンポーズや過剰な再コンポーズを簡単に追跡できます。Layout Inspector を使って再コンポーズをデバッグする方法については、Jetpack Compose: 再コンポーズをデバッグする (英語) をご覧ください。
ビューのビジュアル lint チェック : XML レイアウトの新機能として、ビジュアル lint チェックがバックグラウンドで実行され、さまざまなフォーム ファクタの問題がチェックされます。これにより、特定のデバイス設定で要素が重なったり、見えなくなったりするなどの問題を検知できます。
たとえば、下のスクリーン キャプチャのアニメーションでは、レイアウト ファイルの検証で 2 つの問題が発生していることがわかります。1 つは、一部の画面サイズで TextView が ImageView によって隠れてしまうこと。もう 1 つは、設定によって ImageView の一部が表示されなくなることです。[Problems] パネルで問題をクリックすると、[Layout Validation] パネルが開き、さまざまなデバイスサイズでレンダリングされるレイアウトを確認できます。その際に、選択した問題が発生している設定がハイライト表示されます。
統合問題パネル : Android Studio のさまざまなツールから報告されるすべての問題を、新しい [Problems] パネルにまとめます。ここには、ビジュアル lint チェック、ナビゲーション、Compose 関連の問題などが含まれます。
ビルドと依存関係
プロジェクトの並列インポートによる同期パフォーマンスの改善 : Gradle 同期の一部がデフォルトで並列実行され、大規模プロジェクトで同期の速度が大幅に向上します。Square は、Gradle Enterprise 指標で同期時間が平均 60% 短縮されたことを報告しています。これにより、デベロッパーの作業時間を 1 年当たり 1,600 時間節約できると推定されます。注 : これは Gradle がモデルを構築する時間が改善されたものであり、IDE がモデルを処理するパフォーマンスは変化しません。
Build Analyzer によるダウンロードの影響報告 : Build Analyzer ツールは、ビルド時に起きることに関する知見を提供します。今回のリリースより、依存関係のダウンロードが発生する場合、その概要が含まれるようになります。この情報をもとに、ダウンロードがビルドに与える影響を判断したり、増分ビルド時にダウンロードが発生するなどの問題を特定したりできます。
ダウンロードの影響に関する情報は、リポジトリごとに細分化されるので、それぞれの依存関係がどこからダウンロードされるのかを確認できます。アーティファクトの提供に長い時間がかかるリポジトリや、失敗したリクエストが多いリポジトリがあるかどうかも確認できます。その場合は、可能ならリポジトリを削除したり、リポジトリ設定で優先度を下げて他のリポジトリを優先したりすることを検討してください。
アップグレード アシスタントのアップグレード後レポートとロールバックのサポート : プロジェクトの Android Gradle プラグインのバージョンをアップグレードする際に役立つアップグレード アシスタントも、Electric Eel でさらに便利になっています。アシスタントは、バージョンをアップグレードした後にプロジェクトの同期を試み、それが成功したかどうかを報告します。また、実行されたステップの概要も報告されます。さらに、アップグレード後のプロジェクトの同期に失敗した場合、新しい [Revert] ボタンを使ってビルドファイルの変更を取り消すことができます。
SDK Index の統合 : 今年発表した Google Play SDK Index は、アプリに組み込むことができるさまざまな SDK についての情報を提供します。SDK デベロッパーは、SDK Index で古いバージョンの SDK を示すことができます。この情報が Android Studio に直接表示されるようになります。
古いバージョンとマークされた SDK を使っている場合、アップデートが必要なことを知らせるため、ビルドファイルの依存関係に lint 警告が表示されます。同じように、[Project Structure] ダイアログでも、古い依存関係に同じ警告が表示されます。詳しい情報は、そこから Play SDK Index ページに移動して確認できます。
App Bundle 向けのベースライン プロファイルの修正 : アプリを Android App Bundle としてビルドした場合、ある条件下でベースライン プロファイルを圧縮できました。その場合、アプリをローカルにインストールする際に、プロファイルが取得されませんでした。これはローカルでしか発生しませんが、ベンチマーク結果は期待よりも遅くなります。Electric Eel に搭載されるバージョンの bundletool では、この問題が修正されます。
調査
Logcat の完全刷新 : Logcat がゼロから書き直され、ログの解析、照会、追跡が簡単になりました。新しい Logcat の UI は、Dolphin でオプトイン機能として試用できましたが、Electric Eel ではデフォルトで有効になっています。また、たくさんの品質改善や安定性の問題の修正も行われています。特に注目すべき改善点は、ログのフォーマットの改善、オートコンプリートがサポートされて必要なログをフィルタしやすくなった検索フィールド、アプリが再起動してもログを出力し続ける機能、表示対象をカスタマイズするオプションなどです。
App Quality Insights ウィンドウ : 新しい App Quality Insights ツールを使うと、Firebase Crashlytics のクラッシュ データを Android Studio に直接表示して調査できるので、IDE とブラウザを行き来する必要はなくなります。
IDE には上位の問題が表示され、直近のクラッシュやアプリの特定のバージョンのクラッシュのみを表示することもできます。それぞれの問題について、影響を受けたユーザーの数が表示されます。また、スタック トレースも表示されるので、クラッシュが発生したコードにすばやく移動できます。さらに、アプリの上位クラッシュ レポートに表示されているコードのソースファイルにガターアイコンが表示され、リンクをクリックするだけで、コードから App Quality Insights ウィンドウのクラッシュ レポートに移動できます。さっそく試してみたい方は、公式ドキュメントをご覧ください。
エミュレータとデバイス
新しい「デスクトップ」カテゴリとデスクトップ AVD: Electric Eel では、デスクトップ エミュレータを作成できます。これを使うと、Chromebook などのデバイスでのアプリの動作をテストできます。このデバイスでは、アプリでテストしておくべき何種類かの操作を実行できます。たとえば、アプリを自由にサイズ変更したり最小化したりでき、アプリはこれにうまく対処する必要があります。
サイズ変更可能なエミュレータ(試験運用版): サイズ変更可能なエミュレータは、複数のエミュレータを実行せずに、さまざまな画面サイズでアプリをテストする際に役立ちます。サイズ変更可能なエミュレータを作成して起動した後は、[Display Mode] メニューから別のリファレンス デバイスのサイズに切り替えて、アプリの動作を確認できます。
実機のミラーリング(試験運用版、オプトイン): 実機を Android Studio にミラーリングし、エミュレータと同じように操作できます。これは Electric Eel のオプトイン機能なので、ぜひフィードバックをお送りください。この機能を使うには、最初に [Preference] > [Experimental] > [Device Mirroring] に移動して有効化する必要があります。次に、ADB 経由で実機を接続すると(有線でも無線でも構いません)、実行中のデバイスが [Running Devices] パネルに表示されます。ミラーリングが始まったら、マルチタッチ、物理ボタン、デバイスの向きなどをエミュレータと同じように操作できます。マウスやキーボードのイベントも転送され、ツールバーのコントロールからボタンを押したり、デバイスを回転したりできます。
さらに、(エミュレータと同じように)ミラーリングしているデバイスにファイルをドラッグ&ドロップすることもできます。ファイルが APK の場合はインストールされるので、ビルドをすばやくテストする際にとても便利です。その他のファイル形式の場合は、デバイスのダウンロード フォルダにコピーされます。
IntelliJ
IntelliJ プラットフォーム アップデート : Android Studio Electric Eel(2022.1.1)には、IntelliJ 2022.1 プラットフォーム リリースが含まれています。これには、簡単に依存関係を管理したり衝突を解決したりできる依存関係アナライザ、IDE から通知を受け取る新しい効率的な方法となる通知ツール ウィンドウなど、多くの新機能が含まれています。また、こちらに記載されている多数の主な改善点も含まれています。
Android Studio Electric Eel(2022.1.1)に含まれる主な機能拡張と新機能をまとめます。
デザイン
ビルドと依存関係
プロジェクトの並列インポートによる同期パフォーマンスの改善
Build Analyzer によるダウンロードの影響報告
アップグレード アシスタントのアップグレード後レポートとロールバックのサポート
SDK Index の統合
App Bundle 向けのベースライン プロファイルの修正
エミュレータとデバイス
IntelliJ
詳細は、Android Studio のリリースノート、Android Gradle プラグインのリリースノート、Android Emulator のリリースノートをご覧ください。
さっそく Studio をダウンロード!
今こそ、Android Studio Electric Eel(2022.1.1)をダウンロード (英語) して新機能をワークフローに組み込む絶好のタイミングです。いつものように、気に入った機能や問題点、新機能の提案などのフィードバックは大歓迎です。バグや問題を見つけた方は、既知の問題を確認し、問題を送信してください。Android 開発の最新情報を入手できるように、忘れずに Twitter、Medium、YouTube (英語) で私たちをフォローしてください!