Google は、モバイル アプリ開発用の IDE の大規模なアップデートである Android Studio 4.0 をリリースしました。このアップデートには、アップグレードされたレイアウト インスペクター、新しいビルド アナライザー、モーション エディターなどの機能が含まれています。
Android Studio は、人気の Java IDE である JetBrains IntelliJ IDEA をベースとしており、2020 年 2 月に公開されたリリース ノートによると、バージョン 4.0 では IDEA 2019.3.3 が使用されています。Android Studio のバージョンは、バージョン 2020 がリリースされている IDEA より少し遅れています。
JetBrainsは2019.3の主な焦点はパフォーマンスだと述べており、IDEの起動高速化、UIの応答性向上、メモリ消費量の削減を謳っています。しかしながら、起動時間はまだ十分とは言えず、特に電源投入後の初回実行時は、高性能PC(Core i7-7700、16GB RAM)でも1分以上かかります。一方、MicrosoftのVisual Studio 2019は、同じマシンで15秒未満で起動します。
GoogleはAndroid Studio 4.0をリリースした
Android Studioでサポートされている主な言語はJavaとKotlinです。KotlinはJetBrainsによって開発され、Apacheライセンスの下でオープンソース化されています。この言語はJVM(Java仮想マシン)を対象としており、2011年にリリースされました。
2017年にはJavaScriptへのコンパイル機能が追加され、2019年にはAndroid開発におけるGoogle推奨言語となりました。Kotlinは目覚ましい成功を収めており、「Swift以外で2番目に急成長している言語」とRedmonkのアナリスト、Stephen O'Grady氏は評しています。その理由は、KotlinがJavaにはない、あるいは当時は欠けていた多くの優れた機能を追加したことにあります。その中には、ほとんどのnull参照エラーを排除する型システムも含まれています。
Android Studio の言語サポートは Java と Kotlin だけにとどまりません。開発者は Android NDK(ネイティブ開発キット)を使用するために C および C++ のコードを組み込むことができます。また、クロスプラットフォームの Flutter フレームワークで使用される Dart など、他の言語用のプラグインをインストールすることもできます。
Android Studio 4.0 のモーション エディタ
新機能
Android Studio 4.0 の大きな新機能の一つがモーションエディタです。実際に試してみましたが、それほど大げさなものではなく、テキストを画面上で動かすだけのものでした。これは ConstraintLayout をベースにしており、他の要素やレイアウトを基準に要素の位置を調整できます。まずは、プロジェクトに ConstraintLayout を追加します。そのためには、Gradle ファイルで maven.google.com リポジトリを宣言し、ConstraintLayout ライブラリへの依存関係を以下のように追加する必要があります。
依存関係 { 実装 "androidx.constraintlayout:constraintlayout:2.0.0-beta6" }
では、モーション エディタを使用するには、依存ライブラリの正確なバージョンを指定する必要があります。beta6 が最新バージョンかどうか、どうすればわかるのでしょうか。答えは、リポジトリ インデックスに移動して検索することです。すると、ライブラリのすべてのバージョンがリストされます。執筆時点では、beta6 が確かに最新でした。開発者は、プロジェクトに ConstraintLayout を追加し、レイアウトを右クリックして [Convert to MotionLayout] を選択できます。次に、そこにビュー (この場合は TextView) を配置して選択すると、モーション エディタが表示されます。開始と終了に異なる制約を設定し、必要に応じてさらにキーフレームを追加できます。また、アルファ、可視性、回転、移動、スケールなどの特殊効果用の ConstraintSet 要素や、色の変更などの他の効果用の CustomAttributes を追加することもできます。これらはすべてうまく機能し、Android のアニメーションは以前よりも簡単になりました。
新しいレイアウト検証ツールは、複数のデバイスでレイアウトをプレビューできます。Google Pixelシリーズはデフォルトで含まれていますが、それ以外の場合は、ディスプレイサイズ、Android API、画面の向き、テーマを指定して独自のプレビューを追加する必要があります。便利な機能ですが、画面スペースをかなり消費します。Android Studioではウィンドウをフローティング表示できるので、この種のツールには便利です。
Android Studio 4.0では、デバイスまたはエミュレータ上で実行中のアプリに接続し、ユーザーインターフェース要素を表示するレイアウトインスペクタがアップグレードされました。3Dビューに加え、レイアウトとビューの階層構造を詳細に確認する機能も追加されました。これは、ウェブブラウザの要素インスペクタやCSSインスペクタと同様の機能で、表示が期待どおりに表示されない原因をトラブルシューティングするのに役立ちます。
C++開発者は、clangdへの移行により、コード補完やエラー検出といったスマートなエディタ機能を活用できるようになります。また、CまたはC++コードの自動フォーマットを行うclang-tidyというユーティリティもバンドルされています。
もう一つの新機能はビルドアナライザーです。これはビルドプロセスのプロファイラーで、各ステップの所要時間を表示します。このツールは、最も時間のかかるステップや、増分ビルドをサポートしていないために常に実行されてしまうステップ(おそらくは不必要に実行されているステップ)を検出できます。新機能の全リストはこちらをご覧ください。
Android Studioは無料で高品質ですが、Android開発には依然として課題が残ります。これらの課題の中には、様々なバージョンのAndroidを搭載した数千ものデバイスをターゲットとするモバイル開発特有の問題があります。新しいプロジェクトを開始すると、難しい選択に直面することになります。互換性のために機能を犠牲にして、最低限どのAPIをサポートするか? IDEは、oenのアプリを実行できるデバイスの割合を概算で示してくれます。開発者が50%以上のデバイスをターゲットにしたい場合、最新バージョンの8.1 Oreoを使用できます。
アップデート地獄:Android開発者にとってお馴染みの光景
Android開発にはアップデート地獄という難題がつきものです。特に数週間の休止期間を経て開発を再開した場合はなおさらです。アップデートは必ずしもすぐに完了するわけではないので、休憩を取る準備をしておきましょう。Windowsでは、多くの開発者がHyper-Vを使用していますが、Intel HAXMのインストールが試行されて失敗するため、エラーに悩まされることになります。
Android StudioでのFlutter開発
Android Studioには、IDE本体、Gradleビルドシステム、Mavenリポジトリ、そして実際のプロジェクト用のXML、ビジュアルデザイナー、JavaまたはKotlinコードの組み合わせなど、多くの要素が含まれています。複雑なシステムであり、トラブルシューティングが難しい場合があります。GoogleのFlutterプロジェクトはクロスプラットフォームの側面を持っていますが、JavaやKotlinではなくDartを扱えるのであれば、ネイティブAndroidアプリケーションよりも扱いやすいかもしれません。複雑さは依然として存在しますが、より目立たない形で実現されています。Flutterの背後にある考え方の一つは、Android開発への参入障壁を下げ、プロフェッショナルの生産性を向上させることにあるのかもしれません。®