この最初の期限にの存在により、スコープを大幅に縮小する必要がありました。Flutter を使ったとしても、すべての問題を同時に解決できないことはわかっていました。購入や販売に関するすべての機能を開発しながら、コミュニティ全体を構築してメッセージを刷新することはできません。すべての機能に同時にとりかかるのではなく、戦略的に優先順位をつけることが重要でした。その上で、どのスコープをカットするかという議論が大きな焦点になりました。それが調査の焦点になり、さらに開発の焦点になりました。細かな変更ごとに次の道が開かれ、最終的に CEO へ見せるマイルストーンに向かうことができました。ユーザーが解決を望んでいる固有の問題を解決することに集中し、全員で問題に対処しました。Flutter を使った開発によるスピードのおかげでこの困難で厄介なプロセスを乗り切ることができ、想定していなかったような形で期限に間に合わせることができました。そのたびに、チームに活力があふれました。
現在、このライブラリを Android Jetpack に追加する作業を進めています。これにより、他の Jetpack API との整合性が向上し、新機能が見つけやすくなります。Jetpack ライブラリが利用できるようになると、既存のライブラリからのアプリ移行が簡単になり、名前空間を変更していくつかの API 呼び出しを調整するだけの作業で完了します。Jetpack でライブラリを安定させた後は、その新しいアプリを Google Play ストアの本番環境トラックに公開できるように準備を進めればよいのです。
さらに、互換性のない変更が行われる場合は、1 年ほど前から削除される API に @Deprecated を付け、それと同時期に削除される機能に代わる方法を提供することを保証します。これによりデベロッパーには約 1 年の猶予が与えられ、古い API が削除される前に新しい API を使ってプラグインのテストと移行を行えるようになります。
今回の AGP のリリースでは、いくつかの API が変更されます。なお、AGP 4.1 で導入されたたくさんの API はインキュベーション状態としてマークされ、変更の可能性がありました。そして実際、AGP 4.2 で一部の API が変更されました。現在インキュベーション状態になっている API は、先ほど説明したサポート終了サイクルには従いません。
これらの API は、AGP 7.0.0 で安定版になる予定です。また、すべてのプラグイン作成者は、新しい androidComponents に移行する必要があります。このような変更に対処するのを避けたい方は、プラグインで安定版の API のみ使用し、インキュベーション状態の API は使わないでください。
2020 年 12 月 1 日(日本時間 12 月 2 日)、Android Studio Arctic Fox(2020.3.1) の初めてのバージョンが Canary チャンネルでリリースされ、それとともに Android Gradle プラグイン(AGP)バージョン 7.0.0-alpha01 もリリースされました。今回のリリースでは、Android Studio と Gradle プラグインのバージョン番号の付け方を調整しています。この変更で、Android Studio のバージョン番号スキームから Gradle プラグインを切り離し、Android Studio のそれぞれのリリースがどの年に行われて、どの IntelliJ バージョンに一致しているかを明らかにします。
新しいバージョン番号スキーム - Android Studio
Android Studio Arctic Fox(2020.3.1)では、Android Studio のベースとなっている IDE である IntelliJ IDEA との整合性を高めるため、年に基づいた採番に移行します。バージョン番号スキームは、年、ベースとなった IntelliJ のバージョン、機能およびパッチレベルという重要な属性を組み込んだものに移行します。この名称変更により、Android Studio で使っている IntelliJ プラットフォームのバージョンがすぐにわかるようになります。さらに、メジャー バージョンごとに正規のコードネームを割り当てます。最初のコードネームは Arctic Fox で、以降はどのバージョンが新しいのかが簡単にわかるように、アルファベット順に進めます。
デベロッパーの皆さまには、最新の機能と品質改善を利用できるように、最新バージョンの Android Studio を使うことをおすすめします。バージョンを簡単に最新に保つことができるように、Android Studio のバージョンと Android Gradle プラグインのバージョンは明確に切り離します。覚えておくべき重要な点は、IDE をアップデートしても、ビルドシステムがアプリをコンパイルしたりパッケージングしたりする方法は何も変わらないことです。逆に、アプリのビルドプロセスの変更や APK / バンドルは、プロジェクトの AGP バージョンによって決まります。したがって、開発サイクルの後半であっても、Android Studio のバージョンは安全にアップデートできます。プロジェクトの AGP バージョンは、Android Studio のバージョンとは異なるタイミングでアップデートできるからです。また、新しいバージョンのシステムでは、安定版リリースの AGP バージョンを使っている限り、個人やチームのアプリ プロジェクトで安定版とプレビュー版の Android Studio を両方同時に実行することがこれまで以上に簡単になります。
これまでのバージョン番号システムで言えば、今回のリリースは Android Studio 4.3 になります。新しい番号システムでは、Android Studio Arctic Fox(2020.3.1)Canary 1、または単に Arctic Fox となります。
Android Studio 4.1 で注目すべき機能には、アプリのデータベースを照会できる新しい Database Inspector、依存性注入に Dagger または Hilt を使うプロジェクトのナビゲーションのサポート、オンデバイス機械学習のサポート向上(Android プロジェクトでの TensorFlow Lite モデルのサポートを含む)などがあります。さらに、変更の適用を更新してデプロイを高速化しました。皆さんからのフィードバックに基づき、ゲーム デベロッパーに役立つ変更も行いました。新しいネイティブ メモリ プロファイラとスタンドアロン プロファイリング ツールを導入しています。
私たちは、Android Studio の品質を向上するため、バグやパフォーマンスの問題に懸命に対応してきました。多くのデベロッパーの皆さんから、パフォーマンスと信頼性の向上に主眼を置いていることを評価する声が届いています。今回のリリース サイクルでは、2,370 個のバグを修正し、公開されていた 275 個の問題をクローズしたことをご報告します。デベロッパーの皆さんの生産性にとって鍵となるのは、高い品質です。私たちはこれからも高い品質を維持することをお約束します。
プレビュー リリースで早くからフィードバックを寄せてくださった皆さん、ありがとうございました。皆さんからのフィードバックは Android Studio 4.1 の開発にあたって反復作業や機能改善に役立ちました。最新の安定版リリースを使う準備が整い、新たな生産性機能を使ってみたい方は、Android Studio 4.1 をこちらからダウンロードしてください。
続いて、主なデベロッパー フローごとに分類された、Android Studio 4.1 のすべての新機能をご紹介します。
デザイン
マテリアル デザイン コンポーネントのアップデート
新しいプロジェクトを作成する際のダイアログに表示される Android Studio のテンプレートが、マテリアル デザイン コンポーネント(MDC)を使ったものになりました。デフォルトで、テーマとスタイルの最新ガイドに準拠しています。この変更により、推奨のマテリアル スタイル パターンや、ダークテーマなどの最新の UI 機能を簡単に使えるようになります。
Android Studio は、アプリを調査しているときもライブ接続を維持しているので、Database Inspector を使って値を変更し、実行中のアプリで変更内容を確認することもできます。Room 永続化ライブラリを使っている場合は、コードエディタの各クエリの隣にも実行ボタンが表示されるので、@Query アノテーションで定義したクエリをすばやく実行できます。詳細はこちらをご覧ください。
Database Inspector でアプリのデータベースを調査、照会、変更
Android Studio の中で直接 Android Emulator を実行
Android Studio の中で直接 Android Emulator を実行できるようになりました。この機能を使うと、画面スペースを節約したり、ホットキーでエミュレータとエディタのウィンドウ間をすばやく移動したり、1 つのアプリケーション ウィンドウの中で IDE とエミュレータのワークフローを整理したりできます。なお、スナップショットの管理や、回転やスクリーンショットなどの一般的なエミュレータ操作は Studio から行うことができますが、すべてのオプションにアクセスするには、安定版のエミュレータを実行する必要があります。この機能は、次の操作でオプトインできます。
Dagger は、Android で依存性注入を行う際によく使われるライブラリです。Android Studio は、新しいガター アクションを提供し、[Find Usages] ウィンドウのサポートを強化することで、Dagger 関連のコードを簡単に移動できるようにしています。たとえば、ある型を使うメソッドの隣にある ガターアクションをクリックすると、その型の提供元が開きます。逆に、ガター アクションをクリックすると、型が依存関係として使われている場所が開きます。Android Studio は、Jetpack Hilt ライブラリで定義された依存関係のナビゲーション操作もサポートします。詳細はこちらをご覧ください。
ガター アクションで Dagger 関連のコード間を移動
TensorFlow Lite モデルの利用
Android デベロッパーは、機械学習を使って革新的で便利な体験を生み出しています。TensorFlow Lite は、モバイル機械学習モデルを記述する際によく使われるライブラリです。私たちは、こういったモデルを Android アプリに簡単にインポートできるようにしたいと考えました。Android Studio は、ビューのバインディングと同じような使いやすいクラスを生成してくれます。そのため、少量の型安全なコードでモデルを実行できます。ML モデル バインディングの現在の実装では、メタデータで拡張されたイメージ分類とスタイル変換のモデルがサポートされています。
ボックス選択: [Threads] セクションで、マウスをドラッグすると、四角形の領域をボックス選択できるようになりました。右上の [Zoom to Selection] ボタンをクリックする(または M キーボード ショートカットを使う)と、ズームできます。また、隣り合っている似たようなスレッドをドラッグ&ドロップすると、複数のスレッドをまたいで選択し、同時に調査できます。
アプリやゲームの公開は、アプリのライフサイクルの中でも特に重要な瞬間です。本番リリースを安定させ、テストリリースをすばやく公開し、マーケティングに関してのメッセージに適切に掲載するなど、すべてをスムーズに行う必要があります。そのためには、 アプリのステータスが見えることが重要です。Google Play でアプリの審査がいつ行われ、いつ承認され、いつ公開できる状況になるのかを把握できれば、リリース スケジュールを立てやすくなります。
新しい [公開の概要] ページには、リリースやストアの掲載情報などに対する最近の変更がすべて表示されます。これには、現在審査中の変更や、Google Play が処理中の変更も含まれます。大規模なチームに所属している方は、すべての変更を 1 か所で管理して同時に公開できるようになります。
公開の概要は、デベロッパーのアクティビティ ログとは異なり、Google Play での表示上の変更や、アプリの審査に関わる、国・地域やアプリのコンテンツ等の変更しか表示されません。
[審査中の変更] セクションでは、まだ公開されていない変更をすばやく確認できる
変更は、変更の種類やリリース トラック別に整理されているので、一目で簡単に把握できます。
管理対象の公開
旧 Play Console の時間指定公開機能をよくご存知の方も多いでしょう。新しい Play Console では、「時間指定公開」が「管理対象の公開」に変わりました。これにより、公開の操作がさらにわかりやすく、思いどおりに動作するようになります。
管理対象の公開を有効にすると、審査で変更が承認されて処理が完了した後に自動的に公開されるのではなく、[確認して公開] 後にのみ公開されるようになります。公開を確定すると、数分以内にアップデートが Google Play に公開されます。これにより、リリース予定日よりもかなり早く変更を送信でき、公開日に対する制御を失わずに確認や変更の時間がとれるようになります。
Reviewed by Naoki Oyama - Partner Development Associate, Mai Kato - Product Excellence Lead, Google Play and Hidenori Fujii - Google Play Developer Marketing, APAC
バブルを使って会話を表示したままにできるので、端末でマルチタスク作業を行っていても会話にアクセスできます。Android 11 のメッセージ アプリやチャットアプリでこの機能を有効化するには、通知で Bubbles API を使う必要があります。
統合キーボード サジェスチョンを利用すると、自動入力アプリやインプット メソッド エディタ(IME)から、状況に特有なエンティティや文字列を IME のサジェスチョン ストリップ(このような内容を表示するには最も便利な場所です)に直接かつ安全に表示できます。
バブルと会話通知
管理
Android 11 では、ユーザーが端末につながっているすべてのスマート デバイスにすばやくアクセスして、1 か所からコントロールできます。デベロッパーは新しい API を使い、ユーザーによるスマート デバイスの表示やメディアの制御を実現できます。
デバイス コントロールを使うと、ネットワークに接続されたスマート端末に今までになく迅速かつ簡単にアクセスして制御できます。電源ボタンを長押しするだけで、すべてのデバイスが即座にデバイス コントロールに表示されるようになりました。新しい API を使うと、アプリを「コントロール」に表示できます。詳しくはこちらをご覧ください。
Google Play システム アップデート - 昨年リリースされた Google Play システム アップデートは、Android エコシステムの端末に対するコア OS コンポーネントのアップデートを促進する仕組みです。Android 11 では、アップデート可能なモジュールの数が倍以上になっています。この 12 の新しいモジュールは、ユーザーやデベロッパーのプライバシーやセキュリティ、整合性の改善に役立ちます。
BiometricPrompt API - BiometricPrompt API を使うと、アプリがロック解除や機密部分へのアクセスを行う際に必要とするバイオメトリック認証強度を指定できます。下位互換性を確保するため、この機能は Jetpack Biometric ライブラリにも追加されています。この件については、作業の進捗に応じて最新情報をお知らせします。
Identity Credential API - これにより、モバイル運転免許証、国民識別番号、デジタル ID などの新しいユースケースが実現します。Android 11 でデジタルファーストな身分証明を提供できるように、さまざまな政府機関や業界パートナーと連携して作業を進めています。
OS の耐障害性 - Android 11 では、RSS HWM しきい値に基づいてユーザーが気づかないようにプロセスの再起動を強制するなど、メモリ再利用プロセスを微調整することで、OS 全体のダイナミックさと耐障害性を向上させています。 さらに、パフォーマンスとメモリを改善するために、Android 11 に Binder のキャッシュを追加しています。これにより、静的に近いデータを取得する際にキャッシュが活用されるようになり、利用頻度の高いシステム サービス IPC コールが最適化されます。Binder のキャッシュは、電池寿命の向上や CPU 時間の削減にも効果があります。
同期的な IME の切り替え - 新しい API を使うと、アプリのコンテンツと、アニメーションしながら画面に出入りする IME(インプット メソッド エディタ、すなわち画面キーボード)やシステムバーを同期させることができます。これにより、自然で直感的でスムーズな IME の切り替えを簡単に実現できるようになります。新しいWindowInsetsAnimation.Callback API を使うと、フレーム単位の完璧な切り替えが行えます。この API を使うとシステムバーや IME がアニメーションしている間、アプリはインセットに対するフレーム単位の変化について通知を受けることができます。さらに、新しい WindowInsetsAnimationController API を使うと、システムバー、IME、没入モードなどのシステム UI タイプを制御することもできます。詳しくはこちらをご覧ください。
先月、9 つの新しいマーケットで Google Play Pass がリリースされました。Google Play Pass と Google Play の直接課金の両方を使っているデベロッパーは、米国での平均で Google Play Pass から 2.5 倍の収入を得ています。さらに、Google Play ストアの収益が減ることはありません。こちらから詳細を確認し、お申し込みください。