この記事は Luke Jefferson, Raz Lev による Android Developers Blog の記事 "Play Dev ID requirements + 2-Step Verification" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
ここ数年間で、Google Play は大きな成長を遂げています。仕事、趣味にかかわらず、世界中のあらゆる規模のデベロッパーが開発する Android のアプリやゲームは、人々にとって欠かすことのできない生活の一部になっています。
Google Play の安全性とセキュリティを保ち、デベロッパー コミュニティによりよいサービスを提供するため、追加の身元要件と 2 段階認証プロセスという 2 つの新しいセキュリティ対策を導入します。これにより、アカウントのセキュリティが強固になり、皆さんのニーズを把握しやすくなります。
現在、新しい Google Play デベロッパー アカウントを作成すると、メールアドレスと電話番号の入力が求められます。
今回のアップデート以降、デベロッパー アカウントのアカウント所有者は追加で以下を求められます。
連絡先情報が追加されることで、お使いの Google Play デベロッパー アカウントに関する、重要な情報やアプリのアップデートなどの情報をお知らせできるようになります。さらに、すべてのアカウントが、実際の連絡先を持つ実在の人物によって作成されたことを確認できるので、Google Play ストアをすべてのユーザーにとって安全な状態に保ちやすくなります。
この情報は一般公開されることはなく、本人確認と連絡の目的のみに利用します。
デベロッパー コミュニティについてさらに知るということに加えて、セキュリティを向上させ、アカウントをより安全に保つための措置を講じるため、Google Play Console へのログイン時に Google の 2 段階認証プロセスを必須にします。2 段階認証プロセスは、アカウント、アプリ、ユーザーを守るための追加の保護手段です。
2 段階認証プロセスの詳細とアカウントへの設定方法をご確認ください。
Google Play デベロッパー アカウント所有者は、本日よりアカウントの種類の入力と連絡先情報の確認を行うことができます。現時点では、アカウントの種類の入力は省略可能ですが、アカウント所有者が連絡先情報を更新するときは入力が必須になります。
2021 年 8 月より、新しいデベロッパー アカウントすべてにおいて、登録時にアカウントの種類の選択と連絡先情報の確認が必要になります。新しいデベロッパー アカウントの所有者は、2 段階認証プロセスも必須になります。
今年中に、すべての既存のデベロッパー アカウント所有者も、アカウントの種類の選択、必須情報の提供、連絡先情報の確認が必要になります。2 段階認証プロセスによるログインも必須になる予定です。
以上の変更と併せて、アカウントを健全な状態に保ち、重要な情報を見逃さないためのベスト プラクティスを改めてお伝えします。
Reviewed by Naoki Oyama - Developer Support Lead, Google Play, APAC and Hidenori Fujii - Head of APAC Developer Marketing, P&E
この記事は Purnima Kochikar による Android Developers Blog の記事 "Continuing to boost developer success on Google Play " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
今年 3 月にお知らせしたように、デベロッパーが持続可能なビジネスを構築できるよう支援することは、Google Play のミッションです。先月の Google I/O ではそのミッションに基づき、ユーザーにアプリやゲームを見つけてもらいやすくする措置や、新しい 15% のサービス手数料ティア適用への登録を Goolge Play Console 上で開始することなど、複数のアップデートを発表しました。
※日本語字幕に対応しています
私たちは引き続き、様々なタイプのデベロッパーの皆さまが Google Play で成功するための様々な支援策を模索しています。そして、本日は追加で共有したいお知らせがございます。
ユーザーは、使用するデバイスに関わらず、魅力的なコンテンツを求めています。そして、最近リリースしたタブレット向けの Entertainment Space (英語) 、サムスン製のスマートウォッチが Wear OS を搭載するという発表、Android Auto (英語)プラットフォームのアップグレード、Google TV (英語)での新しいディスカバリー エクスペリエンスなどを通じて、これまで以上にデベロッパーがデバイスを跨いでユーザーにアプリを提供し、アピールできる機会が増えています。
Google Play は、モバイル以外の様々な重要なフォーム ファクタにもサービスを拡張できるよう、デベロッパーの皆さまを積極的に支援してきました。実際に長年にわたり、革新性あふれるエクスペリエンスを構築するための支援プログラムを提供してきました。
そして、2021 年 6 月 24 日(現地時間 6 月 23 日)より、さらに多くのデベロッパーの皆さまがベストなメディア エクスペリエンスを様々なデバイス上で実現するための支援策として、Play メディア エクスペリエンス プログラムを全世界で開始しました。ここでのメディアとは、以下の 3 種を指します。
上記の統合を通して、Google Play は、デベロッパーの皆さまが開発・提供しているアプリがユーザーに新たに発見されたり、再エンゲージメントしたりすることで、Google Play での成長を加速できるようサポートします。さらに、プログラム期間中はサービス手数料を 15% に引き下げます。これらの対応はすべて、デベロッパーの皆さまが最高の体験を構築できるようサポートするためのものです。
このプログラムにご興味のあるデベロッパーの方は、プログラムのガイドラインを確認のうえ、関心がある旨をお知らせください(英語でのご登録が必要です)。 参加資格を満たした皆さまには、追って詳しい情報をお伝えします。
なお、Play メディア エクスペリエンス プログラムは、その他既に存在する多数のデベロッパー向け支援プログラムのひとつです。ニュース パブリッシャー向けの 「Google で購読」、エンタープライズ 向けの各種 プログラム、Play Points などと同様に、ユーザーに向けたサービス内容を継続的に改善しつつ、投資を続けるデベロッパーの皆さまのニーズを満たすことを目指しています。
7 月 13 日、14 日(現地時間 7 月 12 日、13 日)にオンラインで開催する Google for Games Developer Summit では、Google が提供するプロダクトの最新情報をお伝えします。Android、Google Play、Cloud、Firebase、Google 広告など、優れたゲームの開発や、ユーザーへの効果的なアプローチに役立つセッションを 20 以上ご用意しています。
私たちは引き続き、皆さまのフィードバックに耳を傾けています。Google Play のすべてのステージで、皆さまのビジネスをサポートする為のさらなる方法を模索することを楽しみにしています。
この記事は Paris Hsu による Android Developers Blog の記事 "Android Studio Arctic Fox (2020.3.1) Beta" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android Studio Arctic Fox のスプラッシュ画面
注:昨年末に発表した通り、Google では Android Studio のベースとなっている IntelliJ IDE の番号と整合性を持たせるために、バージョン番号体系を変更し、2020.3 となりました。その他にも独自のパッチ番号とわかりやすいコードネームを割り当てることで、覚えやすく簡単に参照できるようにしています。最初に Arctic Fox(現在ベータ版)、次に Bumblebee(現在カナリー版)のように、アルファベット順にコードネームを使用していきます。
デザイン、デバイス対応と管理、デベロッパーの生産性向上に重点を置いた Android アプリ開発用の公式 IDE 、Android Studio の最新リリース Arctic Fox (2020.3.1) Beta ❄️🦊を 2021 年 5 月 19 日(現地時間 5 月 18 日)に発表しました。現在 Beta チャンネルで公開していますのでダウンロードすると Google I/O 2021 で発表したすべての新機能を実際に使うことができます。
この 1 年間、さまざまな課題に対応しなければなかったにもかかわらず、革新的なすばらしいアプリを作り続けてきた世界中のデベロッパーコミュニティに触発されて、次の主に 3 つのテーマを強化する統合ツールの提供とアップデートに取り組んできました。
まとめると、今回のアップグレードは見逃せない内容になっています。✨ このベータ版には、これまでお伝えしてきた以外にも上記のテーマに関連した機能や改善が多数含まれていますので、以下の記事や動画をご覧ください。あるいは、記事のチェックを飛ばして、Android Studio Arctic Fox (2020.3.1) Beta を Beta チャンネルでダウンロードし、最新機能を今すぐ実際に使用してみてください。Android Studio の次期バージョンでも、引き続きデベロッパーの皆さんにとって最も重要なことに注力できるよう、フィードバックをお寄せください。
What's new in Android development tools (I/O 2021)
Android Studio Arctic Fox (2020.3.1) Beta の新機能を 3 つの主なテーマ別にすべてご紹介します。
Compose プレビュー
Layout Inspector の Compose 対応
プレビューとガターにある「デバイスへのデプロイ」アイコンを使用
これまでの内容をまとめると、Android Studio Arctic Fox (2020.3.1) Beta には、以下の新しい機能強化と新機能が搭載されています。
I/O では、上記の一覧に記載されていない他の新機能もご覧になったかもしれません。それらの機能については、Beta チャンネルでリリースする準備が整わなかったため、Android Studio (2021.1.1) Bumblebee Canary に搭載されます。
今回のリリースに合わせて、Android Studio チームは Android Studio に関して複数のセッションで発表を行いました。以下の動画をご覧いただくと、提供される最新機能や Android Studio の使用に関する役立つ情報を確認できます 📺。なお、すべての動画で日本語字幕に対応しています。ぜひ切り替えてご覧ください。
Android Studio Arctic Fox (2020.3.1) は重要なリリースとなっています。今が Beta リリースをダウンロードおよびチェックして、ワークフローに新しい機能を組み込む絶好の機会です。ベータ版リリースでは、ほぼ安定した機能を提供しますが、どのベータ版リリースにも言えるように、バグが残っている可能性があります。問題が見つかった場合は修正しますのでご連絡ください。Android Studio をすでにお使いの場合は、ナビゲーション メニューから Beta チャンネルでアップデートをチェックしてください([Help] > [Check for Update [Windows/Linux] , Android Studio] > [Check for Updates [OS X]])。ベータ版にアップデートすると、最新バージョンの Android Studio と Android Emulator にアクセスできます。
気に入った点、問題点、あったらいいなと思う機能に関するフィードバックをお寄せください。バグや問題が見つかった場合はご連絡ください。Android Studio 開発チームの Twitter と Medium もぜひフォローしてください。
Reviewed by Yuichi Araki - Developer Relations Team and Tamao Imura - Developer Marketing Manager, Google Play
この記事は Florina Muntenescu による Android Developers Blog の記事 "What's new in Jetpack" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android Jetpack は、デベロッパーがベストプラクティスに従って、ボイラープレート コードを削減し、Androidのバージョンやデバイス間で一貫して動作するコードを書くためのライブラリ、ツール、ガイダンスを統合したものです。現在、Google Play の トップ 1000 アプリのうち 84 % がJetpack を利用しています。この記事では、Jetpack の最新のアップデートをまとめてご紹介します。
CameraX ライブラリは、デバイス固有の互換性の修正や回避策を含む、OS のバージョンを超えてカメラ機能にアクセスするための統一された API サーフェスを提供します。最新の改良点は、露出補正のサポートや、カメラの状態や機能に関するより詳細な情報へのアクセスなど、多数寄せられた機能要望にお応えした内容となっています。さらに、FPS レンジなどのカメラ設定を、カメラを動作中に Camera2Interop 経由で変更できるようになりました。また、ハイダイナミックレンジのプレビュー、ズーム比の調整、Android の Do Not Disturb モードへの対応など、最新のデバイスや OS の機能にも対応しています。特に重要なのは、パフォーマンスへの取り組みで、特に古いデバイスにおいて、画像の取り込みや初期化が高速化されています。
Hilt は、Dagger 上に構築されている、Jetpack 推奨の依存関係注入ソリューションです。安定版への移行の一環として、Hilt の ViewModel サポートはコア Hilt Android API に移され、SavedStateHandle が ViewModelComponent で利用可能なデフォルトの依存関係として追加されています。また、Hilt は Navigation および Compose と統合されています。適用範囲を宛先またはナビゲーション グラフ自体とした注釈付き Hilt ViewModel を取得できます。複数のデベロッパーの皆さんが、すでにアプリで Hilt を使い始めています。そのケーススタディは、こちらのブログ記事 (英語) をご覧ください。
ViewModel
SavedStateHandle
ViewModelComponent
Paging ライブラリを使用すると、データの小さなチャンクをロードおよび表示してネットワークとシステムのリソース消費を改善できます。このリリースでは、全体を Kotlin で書き直すことによって コルーチンおよび Flow を完全にサポートし、RxJava および Guava プリミティブを使用した非同期ロード、リポジトリおよびプレゼンテーション層の全体的な改善を提供します。
3.0 リリースでは Paging 2 と比べて使い勝手が大幅に改善され、書き直しは部分的および段階的移行を念頭に計画されたため、デベロッパーの皆さんはご自身のスケジュールに合わせて移行できます。詳細および実践については、Paging 3.0 のドキュメントおよび Paging 3.0 のCodelab をご覧ください。
Jetpack のレイアウト設計を柔軟に行うためのシステム ConstraintLayout、モーションおよびウィジェット アニメーションの管理を目的とした MotionLayout は現在安定版です。MotionLayout では、折りたたみデバイス、イメージ フィルタ、モーション エフェクトがサポートされています。デザインツールの新機能について詳細は、こちらの Google I/O セッションをご覧ください。
ConstraintLayout
MotionLayout
Security Crypto ライブラリを使うと、ファイルや SharedPreferences を安全かつ簡単に暗号化できます。SharedPreferences を暗号化するには、EncryptedSharedPreferences オブジェクトを適切なキーとスキームで作成し、このオブジェクトを標準の SharedPreferences オブジェクトのように使用します。
SharedPreferences
EncryptedSharedPreferences
val prefs: SharedPreferences = EncryptedSharedPreferences.create( context, "prefs_file_name", mainKey, prefKeyEncryptionScheme = AES256_SIV, prefValueEncryptionScheme = AES256_GCM,)// Use the resulting SharedPreferences object as usual.prefs.edit() .putBoolean("show_completed", true) .apply()
context,
"prefs_file_name",
mainKey,
prefKeyEncryptionScheme = AES256_SIV,
prefValueEncryptionScheme = AES256_GCM,
)
// Use the resulting SharedPreferences object as usual.
prefs.edit()
.putBoolean("show_completed", true)
.apply()
この1年間、Fragment ライブラリは内部の実装を整理して明文化されていない動作を削減するための大規模な変更を行いました。これにより、デベロッパーの皆さんは、アプリやゲームのベスト プラクティスに倣って信頼できるテストを記述しやすくなりました。これは、Navigation で複数のバックスタックをサポートするなど、将来的なライブラリの改善のための基礎となるもので、厳密化された API に対応するためには、いくつかの作業が必要になるかもしれません。実際に、ライブラリを更新した後のテストには細心の注意を払う必要があります。特に注意が必要なケースについては、Fragmentのリリースノートをご確認ください。
最新リリースでは、ActivityResult の統合も行われ、フラグメントから Activity の結果を登録することが可能になりました。 Fragment には、柔軟性があまり高くない onAttachFragment メソッドの代わりに、新しい FragmentOnAttachListener インターフェースも追加されています。Fragment または FragmentActivity でこのメソッドを上書きする既存のコードは引き続き機能しますが、新しいコードが柔軟性の高くない手法を誤って採用するのを防ぐため、onAttachFragment を非推奨にしました。
onAttachFragment
FragmentOnAttachListener
Fragment
FragmentActivity
// Obtain the fragment manager.May be a childFragmentManager,// if in a fragment, to observe child attachment.val fm = supportFragmentManagerval listener = FragmentOnAttachListener { fragmentManager, fragment -> // Respond to the fragment being attached.}fm.addFragmentOnAttachListener(listener)
// if in a fragment, to observe child attachment.
val fm = supportFragmentManager
val listener = FragmentOnAttachListener {
fragmentManager, fragment ->
// Respond to the fragment being attached.
}
fm.addFragmentOnAttachListener(listener)
ライブラリの機能が完成すると、安定化のためにベータ版に移行します。現時点では、重要な問題やコミュニティからのフィードバックに対してのみ、API を変更しています。
DataStore は、シンプルで非常に有用な API サーフェスを維持しながら、SharedPreferences の欠点を解決する堅牢なデータ ストレージ ソリューションを提供します。DataStore は、Flow と RxJava による Kotlin のコルーチンのようなベストプラクティスをサポートします。DataStore では、Preference DataStore 経由でキーと値のペアを格納したり、Proto DataStore 経由でプロトコル バッファがバックアップする型付きオブジェクトを格納できます。さらに、Kotlin Serialization のような独自のシリアル化ソリューションをプラグインすることもできます。
アルファ版ライブラリは、現在開発中のライブラリです。API の追加、変更、削除が行われる可能性がありますが、ライブラリのコンテンツはテストされていますので、高い機能性を備えています。
AppSearch は高性能で機能豊富なフルテキスト検索機能を提供する新しいデバイス内検索ライブラリです。SQLite と比較すると、AppSearch は複数の言語をサポートし、クエリ結果のランク付けがシンプルで、大きなデータセットのインデックス作成や検索の遅延がより少なくなります。
AppSearch 1.0.0-alpha01 は LocalStorage をサポートしています。これによって、アプリケーションは「ドキュメント」と呼ばれる構造化されたデータを管理し、それに対してクエリを実行することができます。アプリケーションは、「スキーマタイプ」を使って、構造がどのようなものかを定義します。例えば、メッセージは、件名、本文、送信者などのデータを持つスキーマタイプとしてモデル化することができます。
ビルダーを使用してスキーマ タイプのドキュメントを作成し、ストレージに追加します。"body:fruit" とクエリを実行すると、メッセージの本文に用語「fruit」があるすべてのドキュメント検索できます。
Android S では、AppSearch はアプリケーションのデータを他のアプリケーションと安全に共有し、追加のネイティブ ライブラリへのリンクを不要にすることで、アプリケーションのバイナリサイズを削減できる PlatformStorage も提供します。ライブラリがまだ Android S SDK を対象としていないため、現時点では Jetpack で PlatformStorage は使用できません。
デバイス全体の検索に統合するための Android S の中央ストレージ
Room は推奨されているデータ永続化レイヤであり、プラットフォーム上での使い勝手と安全性が向上します。
Room 2.4.0-alpha は自動移行をサポートしています。データベース スキーマが変更された時に、@AutoMigration を宣言して、どのバージョンからどのバージョンに移行したいかを示すと、Room が移行を生成してくれるようになりました。より複雑な移行を行う場合は、引き続き Migration クラスを使用できます。
@AutoMigration
Migration
@Database(- version = 1,+ version = 2, entities = { Doggos.class },+ autoMigrations = {+ @AutoMigration (from = 1, to = 2)+ } )public abstract class DoggosDatabase extends RoomDatabase { }
- version = 1,
+ version = 2,
entities = { Doggos.class },
+ autoMigrations = {
+ @AutoMigration (from = 1, to = 2)
+ }
public abstract class DoggosDatabase extends RoomDatabase { }
Room 2.3.0 安定版では、 Kotlin Symbol Processing が試験的にサポートされ、Kotlinコードのベンチマークでは、KAPTに比べて2倍の速度向上が見られました。また、enumとRxJava3のサポートも組み込まれています。
またRoom は、の実行時にコールバックを提供する QueryCallback クラスが導入され、ロギングなどのタスクがシンプルになりました。また、新しい@ProvidedTypeConverter アノテーションが導入され、型コンバータの作成がより柔軟になりました。
QueryCallback
@ProvidedTypeConverter
WorkManager ライブラリは、アプリが終了またはデバイスが再起動しても実行される延期可能な非同期タスクをスケジュールする方法として Android で推奨されています。すべてのタスクが確実に実行されるようにタスク照合の信頼性が向上し、さらに特定の Android OS バージョン向けのさまざまな回避策も提供されています。
WorkManager の機能の最新バージョンでは、マルチプロセス アプリのサポートが強化されています。作業リクエストのスケジュールを 1 つのプロセスに統合することで、多数のリクエストをスケジュールする際のデータベースの増大を抑制してパフォーマンスを向上するメリットがあります。
Android S SDKを対象としたバージョン 2.7(現在アルファ版)では、Android OS の新しいフォアグラウンド制限への追加サポートに対応しています。詳しくは、Effective Background Tasks on Android セッションをご覧ください。
Android Studio Arctic Fox で利用可能な Background Tasks Inspector は、最新のライブラリを使うと WorkManager のジョブを簡単に表示してデバッグできます。
Background Tasks Inspector
アプリ内の目的地間を移動するための Jetpack のフレームワークである Navigation ライブラリは、複数のバックスタックをサポートし、ボトムナビゲーションバーのように目的地が同じ深さにある場合にも簡単に対応できるようになりました。
Macrobenchmark ライブラリは、アプリの起動やスクロール パフォーマンスなどの統合された動作まで、Jetpack のベンチマーク範囲を拡張します。このライブラリは、継続的な統合テストでメトリクスを追跡するためにリモートで使用することも、プロファイリングの結果をAndroid Studioから表示するためにローカルで使用することもできます。詳細については、Google I/O のセッションをご覧ください。
Google アシスタントともっと密接した統合を希望しているデベロッパーのために、Google Shortcuts ライブラリは、既存の ShortcutInfo クラスを通じて、Google アシスタントやその他の Google サービスにアクションを公開する方法を提供します。
ShortcutInfo
ShortcutManager を介して一度に最大 15 個のショートカットを送信し、他のサービスの中から Google アシスタントに表示させ、音声やその他のインタラクションで利用できるようにします。
ShortcutManager
これを実装するには、ショートカットに Intentと機能バインディングを定義します。このバインディングは、Google サービスがユーザーに提供する最善の方法を見出すのに役立つ重要な情報を提供します。
// expose a "Cappuccino" action to Google Assistant and other servicesShortcutInfoCompat siCompat = ShortcutInfoCompat.Builder(ctx, "id_cappuccino") .setShortLabel("Cappuccino") .setIntent(Intent(ctx, OrderCappuccino::class.java)) .addCapabilityBinding( "actions.intent.ORDER_MENU_ITEM", "menuItem.name", asList("cappuccino") ) .build()ShortcutManagerCompat.pushDynamicShortcut(ctx, siCompat)
ShortcutInfoCompat siCompat =
ShortcutInfoCompat.Builder(ctx, "id_cappuccino")
.setShortLabel("Cappuccino")
.setIntent(Intent(ctx, OrderCappuccino::class.java))
.addCapabilityBinding(
"actions.intent.ORDER_MENU_ITEM",
"menuItem.name",
asList("cappuccino")
.build()
ShortcutManagerCompat.pushDynamicShortcut(ctx, siCompat)
アプリ内でユーザーが作成したすべてのコンテンツには 🎉 が含まれ、最新の絵文字をサポートすることは、あなたのアプリまたはゲームを ✨ にするために重要な要素です。API 19以降で最新の絵文字をサポートする EmojiCompat ライブラリは、従来の :emoji:emoji アーティファクトに代わる新しいアーティファクト emoji2:emoji2 に移行しました。新しい emoji2 ライブラリでは AppStartup ライブラリを使用た 🪄 自動設定が追加されています( 🐻❄️を表示するためのコード 👩🏿💻 は必要ありません)。
emoji2:emoji2
emoji2
AppCompat では、AppCompat 1.4 以降から emoji2 が追加されています。あなたのアプリまたはゲームがAppCompat を使用している場合、ユーザーは追加設定なしで最新の絵文字 ⭐ を見ることができます。AppCompat を使用していないアプリまたはゲームは emoji2:emoji2-views を追加できます。カスタム TextViews の場合は、emoji2:emoji2-views-helpers のヘルパーを使用するか、AppCompat のビューをサブクラス化することで、最新の絵文字をサポートすることができます。
emoji2:emoji2-views
TextViews
emoji2:emoji2-views-helpers
Jetpack Compose は、Android のネイティブ UI 開発用の最新ツールキットです。Android での UI 開発をシンプルにし、高速化します。Jetpack Compose は現在ベータ版で、7 月に安定版に移行する予定です。ここに掲載されているライブラリや皆さんがすでに使用している可能性のあるライブラリの多くは、Jetpack Compose との統合を目的とした機能を導入しています。Activity から ViewModel、Navigation、Hilt まで、これらすべてのライブラリを使うと、アプリに Compose をスムーズに導入できます。これらの使い方に関する詳細については、この Google I/O セッションをご覧ください。
Jetpack は、折りたたみ式デバイス、大画面デバイス、Wear デバイスなど、さまざまな形状での作業をしやすくします。大画面デバイスに対応するアプリ開発のための新しいガイドラインを導入し、、WindowManager や、SlidingPaneLayout などの Jetpack ライブラリを改善しています。詳しくは、こちらのブログ記事をご覧ください。
WindowManager
SlidingPaneLayout
以上、Jetpack の新機能を(比較的)簡単にご紹介しました。各ライブラリのアップデートの詳細については AndroidX リリースノートをご覧ください。また、Google I/O セッションでは、一部のライブラリについての詳細についてご説明しています。
この記事は Sara N-Marandi による Android Developers Blog の記事 "What’s new in Android Privacy" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
人々は、自分にとって最も大事な個人情報や機密情報を信頼して託すことができる OS とアプリを求めています。プライバシーは、Android の製品理念の中核です。Google I/O の「What’s new in Android Privacy」セッションでお話しした通り、Android 12 は、プラットフォームをさらにいっそうプライベートなものにすることで、この既存の基盤を広げ続けています。
このリリースによって、ユーザーは、アプリにアクセスされるデータに関する透明性を確保でき、かつ、シンプルなコントロールで情報に基づく選択ができるようになります。Android は、アプリが自らが提供する機能で必要なデータにのみアクセスするように、アクセス権限のスコープを小さくすることにも投資しています。ユーザーのプライバシーを保護するために私たちが Android 12 で行った、これらの重要な変更について見てみましょう。
プライバシー ダッシュボード:ユーザーの皆さんからはアプリがどのようなデータを利用しているのか知りたいというご要望をよく受けています。新しいプライバシー ダッシュボードでは、位置情報、マイク、カメラへの過去 24 時間のアクセス記録を、シンプルでわかりやすいタイムラインで確認できます。また、Android 12 に搭載された新しいパーミッション インテント API により、アプリのデータ使用に関するより詳細な情報を共有することができます。プライバシー ダッシュボードは、Beta 2 から利用可能になります。
デベロッパーの皆さんには、現在のアプリやゲームのコードを見直し、サードパーティ製 SDK を含め、データへのアクセスの必要性を把握し、すべてのアクセスが正当な利用方法か確認することをお勧めします。これをサポートするために、Android 11 にデータアクセス監査 API を追加し、現在のデータアクセスを簡単に監視できるようにしました。この API を使用してコードのどの部分が個人データにアクセスしているか追跡することで、コードのマッピングを解明できます。プライバシー ダッシュボードは Android 12 Beta 2 でお試しいただけます。
図 1.プライバシー ダッシュボードと過去 24 時間の位置情報アクセス タイムライン
マイクおよびカメラ インジケータ:Android 12では、マイクとカメラへのアクセスに透明性を持たせています。今後は、アプリやゲームがマイクやカメラの映像にアクセスしたことを、ユーザーはリアルタイムで確認できます。また、ユーザーは、クイック設定で自分のデータにアクセスしているアプリを確認でき、不審なアクセスがあった場合は、アプリの許可ページに素早く移動して、許可を取り消すことができます。
デベロッパーはマイクやカメラの使用方法を見直し、アプリやゲームからの予期せぬアクセスを積極的になくす必要があります。例えば、ユーザーがアクセスを必要とする機能をクリックする前に、アプリがこれらのセンサーにアクセスしないようにしてください。マイクとカメラ インジケータは、Android 12 Beta 2で試すことができます。
図 2.マイクおよびカメラ インジケータとトグル
マイクおよびカメラ トグル:カメラにステッカーを貼ったり、携帯電話にオーディオブロッカーを取り付けたりしている人を見たことがあるかもしれません。Android 12では、ユーザーがアプリによる端末のマイクとカメラへのアクセスを迅速かつ簡単に遮断できる 2 つの新しいコントロール機能を導入します。ユーザーの安全性を確保するため、緊急通話は対象外となります。
ユーザーがセンサーをオフにしているにもかかわらず、アクセス許可を得ているアプリまたはゲームがマイクやカメラにアクセスを試みると、そのアプリやゲームの機能を使用するためにはセンサーをオンに戻す必要があることを知らせるメッセージが表示されます。アプリがアクセス権限のベスト プラクティスに従っている場合、トグル状態を組み込むために特別なことをする必要はありません。マイクおよびカメラトグルは、Beta 2 でお試しいただけます。
おおよその位置情報:過去 2 回のリリースにおいて、私たちは位置情報へのアクセス権限を細分化しました。まず、バックグラウンド アクセスとフォアグラウンド アクセスを分離しました。次に、「今回のみ」のオプションを追加して、バックグラウンド位置情報へのアクセスをさらに制限できるようにしました。ユーザーは積極的にこれらのコントロール機能を活用し、より頻繁に選択するようになっています。このオプションが与えられたユーザーは約 80% の割合で、フォアグラウンドの位置情報へのアクセス許可を選択しません。
Android 12 では、ユーザーが自分の位置情報の共有方法と共有先をさらにコントロールできるようになり、アプリやゲームへ提供される位置情報の精度について、「おおよその位置情報」を選択することで、明確に選択できるようになります。
デベロッパーの皆さんは、ご自身のアプリやゲームの位置情報の利用方法を確認し、その機能を提供するにあたってユーザーの正確な位置情報が必要ない場合は ACCESS_COARSE_LOCATION をリクエストすることをお勧めします。また、ユーザーが位置情報の精度を下げることも想定しておく必要があります。ユーザーがおおよその位置情報を選択した場合でも、アプリが動作することを確認してください。おおよその位置情報は、Beta 1で試すことができます。
ACCESS_COARSE_LOCATION
図 3.「おおよそ」と「正確」の選択肢がある位置情報アクセス権限リクエスト ダイアログ
クリップボード読み取り通知:クリップボードにコピーされたコンテンツには、ユーザーがよくコピーするメール、住所、パスワードなどの機密情報が含まれている可能性があります。Android 12 では、アプリがクリップボードから読み取るたびに、ユーザーに通知します。アプリが getPrimaryClip() をコールするたびに、画面下部にトーストが表示されます。クリップボードのデータが同じアプリから送られてきた場合は、トーストは表示されません。初回のコールで getPrimaryClipDescription() をチェックして、クリップボードのデータのタイプを調べることで、アクセスを最小限に抑えることができます。推奨されるベスト プラクティスは、ユーザーがアクセスの理由を理解している場合にのみ、クリップボードにアクセスすることです。クリップボード読み取り通知は Beta 2 でお試しいただけます。
getPrimaryClip()
getPrimaryClipDescription()
近くのデバイスを探す権限:Android 12 では、位置情報を使わない「近くのデバイスを探す権限」に新しいランタイムアクセス権限を追加することで、データへのアクセスを最小限にします。これまで、時計などのアプリやヘッドフォンを使うアプリやゲームは、ペアリングする近くの Bluetooth デバイスをスキャンするために、位置情報へのアクセス権限をリクエストしていました。これが原因で混乱が生じ、必要ではないときに位置情報データへのアクセス権限を与えてしまう、というお声がありました。Android 12 をターゲットとするアプリでは、デバイスをペアリングするなどの利用方法で、正確な位置情報へのアクセス権限から、近くのデバイスの検出を切り離すことができます。そのためには、新しい BLUETOOTH_SCAN 権限を使用して、usesPermissionFlags=neverForLocation を宣言します。デバイスがペアリングされると、アプリは新しい BLUETOOTH_CONNECT アクセス権限を使用して、そのデバイスと通信できます。なお、位置情報を取得するために Bluetooth スキャンを使用するアプリやゲームは、引き続き位置情報へのアクセス許可が必要です。近くのデバイスを探す権限は、Beta 1 で試すことができます。
BLUETOOTH_SCAN
usesPermissionFlags=neverForLocation
BLUETOOTH_CONNECT
アプリの休止状態(ハイバネーション):昨年、Android に権限の自動リセット機能を追加しました。アプリが一定期間使用されなかった場合、Android が自動的に、ユーザーのデータにアクセスできないようにしますが、過去 14 日間で、850 万のアプリの権限がリセットされました。今年、権限の自動リセットをさらに発展させ、長期間使用されなかったアプリを自動的に休止状態に切り替え、デバイスのストレージ容量、パフォーマンス、安全性をより改善する機能を導入します。システムは、ユーザーが以前に許可した権限を取り消すだけでなく、アプリを強制停止してメモリやストレージ、その他の一時リソースを解放します。ユーザーは、アプリを起動するだけで、そのアプリを休止状態から戻すことができます。アプリの休止状態は Beta 1 でお試しいただけます。
Android 12 には、今までで最も野心的なプライバシー リリースが含まれています。これまで、デベロッパーの皆さんへの影響を考慮しながら、プライバシーを最優先にしたプラットフォームを構築するために、デベロッパー コミュニティの皆さんと連携してきました。皆さんからのフィードバックとご支援にお礼申し上げます。今回の変更点については、デベロッパー Web サイトをご覧ください。
この記事は Madan Ankapura による Android Developers Blog の記事 "Improve your app mileage with Android for Cars App library" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
4 月に、Jetpack の一部として Android for Cars App Library の最初のバージョンを発表し、デベロッパーが Google Play ストアでナビゲーション、駐車場、充電スポットのアプリを公開できるマイルストーンに到達したことをお知らせしました。
そして先日 2021 年 6 月 18日(現地時間 6 月 17 日)、デベロッパーに以下の機能を提供するバージョン 1.1 がアルファ版になりました。
すべての変更点のリストは、リリースノートをご覧ください。自動車用のアプリ開発を始めるには、最新版のデベロッパー ドキュメント、自動車向け品質ガイドライン、デザイン ガイドラインをご覧ください。
以上のライブラリ機能は、デスクトップ ヘッドユニットでのテストにのみ利用できます。これらの機能が自動車で実行できるようになった際は、改めてお知らせします。
今後の早期アクセスプログラムに参加したいデベロッパーの方は、こちらのフォームからご登録ください。また、g.co/androidforcars にアクセスすると、早速今日から Android for Cars App Library を使ってみることができます。ぜひお試しください。
Reviewed by Jake Hirakawa - Partner Development Manager, Android Auto and Hidenori Fujii - Head of APAC Developer Marketing, P&E
この記事は Alex Musil による Android Developers Blog の記事 "The top Google Play updates from I/O ‘21" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
今年の Google I/O では、Google Play を最大限に活用するために役立つたくさんのすばらしい新機能やツール、アップデートについてお知らせしました。I/O セッションですべてのアップデートを確認できますが、この記事では、インストール数の増加からエンゲージメントや収益の拡大まで、ビジネスの推進に役立つ新機能の概要をご紹介します。
この記事は The Android Team による Android Developers Blog の記事 "Android @ Google I/O: Recapping building across devices" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
今年の Google I/O では、どのようにすれば、アプリで大小さまざまな Android の画面を活用できるかについてお話ししました。この記事では、見逃してしまった方のために、知っておくべき重要なことをご紹介します。
タブレット、折りたたみ式デバイス、Chrome OS ノートパソコンなどの大画面でもうまく動作するアプリを開発することが、今までになく重要になっています。既に 2 億 5000 万台以上の大画面 Android デバイスが使われています。また、新しい折りたたみ式デバイスによってマルチタスクがさらに簡単になり、ハンズフリー アクティビティに対応したテーブルトップ モードなど、新たなエクスペリエンスが登場しています。Samsung Galaxy Z Fold2 のテーブルトップ モードで動作する Disney+ の例をご覧ください。
どんなデバイスのサイズにもシームレスに対応できるアプリの設計も、今までになく簡単になっています。たとえば、Jetpack Compose や ConstraintLayout を使ってレスポンシブ レイアウトを作成し、Chrome OS や折りたたみ式デバイスでサイズを動的に変更できます。さらに、どこに指を置くかなど、ユーザーが大画面をどのように使うかを調査したうえで、そのようなエクスペリエンスを簡単に実現できる API やツールを提供しています。
また、Android プラットフォーム、Chrome OS、Jetpack WindowManager もアップデートし、デフォルトの状態でのアプリの動作を向上させています。たとえば、デフォルトで多くの UI 要素に最大幅の値が設定されるようになったので、大画面での見栄えがよくなります。また、Display API の変更によって、既存のアプリが WindowManager を使ってウィンドウ指標を問い合わせなくても、折りたたみ式デバイスで正しくレンダリングされるようになっています。
大画面での開発サポートについての詳細は、以下の I/O セッションをご覧ください。すべての動画が日本語字幕に対応しています。
さらに詳しく知りたい方は、折りたたみ式デバイス、タブレット、大画面の最新情報のブログ記事や、エンゲージメントを向上させて評価を上げた Google Duo のケーススタディ(英語)をご覧ください。
これまでの Wear プラットフォームで最大のアップデートについてご紹介しました。このアップデートには、美しく高品質なウェアラブル エクスペリエンスを実現するために役立つ新しい機能や API、ツールが追加されます。
開発を効率化できる新しい Jetpack API も登場しました。Tiles ライブラリを使うと、特によく使う情報やアクションにすばやく直感的にアクセスできるようになります。また、もう 1 つの注目すべき追加機能が Ongoing Activities API です。これを使うと、アプリを閉じた(音楽の再生などの他のタスクを始めた)ユーザーをアプリに引き戻すことができます。現在、どちらのライブラリもアルファ版です。
健康とフィットネス向けの新たな API 群もリリースしました。デバイスのセンサーとそれに関連するアルゴリズムとの間を仲介してくれるので、アプリがアクティビティ、エクササイズ、健康に関連する高品質なデータを利用できるようになります。現在、Health Services プラットフォームのアルファ版が公開されています。
Android Studio Arctic Fox Beta をダウンロードすると、新しい Wear システム イメージのデベロッパー プレビューを試し、新しいプラットフォームでアプリの準備を始めることができます。さらに詳しく知りたい方は、以下の I/O セッションをご覧ください。すべての動画が日本語字幕に対応しています。
また、ブログ記事(英語)や、Spotify の Wear 開発ケーススタディも併せてご覧ください。
現在、Android TV OS は、毎月 8000 万台以上のアクティブなデバイスで使われ、米国では 80% の成長を遂げています。また、Android TV OS は、昨年秋に登場した Google TV エクスペリエンスの中核を担っています。Google TV は、Chromecast with Google TV、Sony のスマート TV、タブレットを含む Android デバイスのアプリなどのストリーミング デバイスで利用できます。
今年の I/O では、Android TV OS での開発を簡単にするいくつかの新しいツールや機能について発表しました。
以上のリリースにより、幅広いデバイス構成でアプリの開発やテストを簡単に行えるようになるだけでなく、最新の Android 12 や Google アシスタント、Cast 機能が TV で利用できるようになります。詳しくは、I/O の What's new in Android TV and Google TV セッションをご覧ください。なお、動画は日本語字幕に対応しています。
Android Auto のアプリは、多くの最新の自動車に搭載されているインフォテインメント ディスプレイに接続できます。これをさらに簡単にするために、先日、Jetpack の一部として Android for Cars App Library を公開しました。このライブラリを使うと、対応する自動車にナビゲーション、EV 充電スポット、駐車場のアプリを組み込めるようになります。
今後は、さらにアプリのカテゴリを拡張する予定です。Android Auto にアプリを提供することに興味がある方は、こちらのフォームから登録をお願いします。g.co/androidforcars にアクセスすると、早速今日から Android for Cars App Library をお使いいただけます。詳しくは、I/O の What’s new with Android for Cars セッションか、ブログ記事(英語)をご覧ください。
この記事は Dave Burke による Android Developers Blog の記事 "Android 12 Beta 2 Update" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
先月の Google I/O で、Android 12 最初のベータ版をリリースしました。Android 12 Beta 1 でリリースした注目の機能は、プライバシーとセキュリティを中核とした、ユーザーに適応する新しい UI や、パフォーマンスの向上が行われていることでした。デベロッパーにとって Android 12 は、スマートフォン、ノートパソコン、タブレット、ウェアラブル、TV、自動車で快適なエクスペリエンスを実現するための優れたツールです。
そして先日 2021 年 6 月 10 日(現地時間 6 月 9 日)、Android 12 Beta 2 をリリースしました。Android 12 Beta 2 では、プライバシー ダッシュボードなどの新しいプライバシー機能が追加されているほか、リリースを微調整する作業も継続しています。
Android 12 は、UI の再設計から、アプリ ウィジェット、高度な触覚機能、動画や画像の品質向上、おおよその位置情報などのプライバシー機能まで、あらゆる面で多くの変更が加えられました。関連する Google I/O セッションの要約は、後述の「Google I/O で発表した Android 12 関連情報」をご覧ください。
Android 12 Beta 2 は、 6 月 10 日より Pixel デバイスで利用でき、こちらから登録すると無線(OTA)アップデートを受信することができます。以前 Android 12 Beta 1 をインストールしているデバイスは、自動的に Beta 2 のアップデートを受信します。Android 12 Beta 2 は、一部のパートナーのデバイスでも利用できます。詳しくは、android.com/beta をご覧ください。
Android 12 Beta 2 をインストールする方法について、詳しくは Android 12 デベロッパー Web サイトをご覧ください。
今回の Beta 2 には、Google I/O でお話ししたいくつかの新しいプライバシー機能に加えて、機能、安定性、パフォーマンスを改善するためのさまざまな機能アップデートが含まれています。ここでは、いくつかのポイントをご紹介します。
プライバシー ダッシュボード - アプリがアクセスするデータについての視認性を向上させるため、プライバシー ダッシュボードを追加しました。このダッシュボードには、マイク、カメラ、位置情報にアクセスした最近のアプリが、シンプルで明確なタイムライン形式で表示されます。ユーザーはアプリに対して、プライベートなデータにアクセスする詳しい理由をリクエストできます。デベロッパーは、アクティビティで新しいシステム インテント ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD を利用してこの情報を提供できます。
アプリでこのインテントを活用し、指定された期間内のアクセスについてユーザーが理解できるよう積極的に対応することをお勧めします。自分のコードやサードパーティ製ライブラリのアクセスをトラッキングしたい場合は、Data Auditing API を利用できます。詳しくはこちらをご覧ください。
プライバシー ダッシュボードと位置情報アクセスのタイムライン
マイクとカメラのインジケーター - ステータスバーにインジケーターを追加し、アプリがデバイスのカメラやマイクを使っているときにユーザーがそれを認識できるようにしました。ユーザーがクイック設定に移動すると、どのアプリがカメラやマイクのデータにアクセスしているかを確認したり、必要に応じてパーミッションを管理したりできます。デベロッパーは、アプリでのマイクやカメラの使用について確認し、ユーザーが予期しない形で使用している場合はそれを削除するようにしてください。詳しくはこちらをご覧ください。
マイクとカメラの切り替え - マイクやカメラに対するアプリからのアクセスをすぐに簡単に無効化できるように、サポート対象のデバイスで、クイック設定に切り替え機能を追加しました。これをオフにすると、アプリからセンサーにアクセスしても、カメラや音声のフィードは空になります。その際にシステムは、アプリの機能を使うにはアクセスを有効化する必要があることを通知します。デベロッパーは、新しい API SensorPrivacyManager を使って、デバイスで切り替えがサポートされているかどうかを確認できます。
マイクとカメラの制御は、アプリのプラットフォームのターゲットにかかわらず、すべてのアプリに適用されます。詳しくはこちらをご覧ください。
クリップボード読み取り通知 - アプリがクリップボードを読み取っていることを明示的にするため、Android 12 では、アプリが getPrimaryClip() を呼び出すたびに画面下にトーストが表示されます。クリップボードにコピーしたのが同じアプリである場合、トーストは表示されません。アプリからのクリップボードの読み取りは最小限にとどめ、ユーザーが予測できる形でのみクリップボードにアクセスすることをお勧めします。詳しくはこちらをご覧ください。
接続エクスペリエンスの直感性向上 - ユーザーによるネットワーク接続の理解と管理を向上するため、ステータスバー、クイック設定、設定に、よりシンプルで直感的な接続エクスペリエンスを導入します。新しいインターネット パネルを使うと、ユーザーは簡単にインターネット プロバイダを切り替えたり、ネットワーク接続の問題のトラブルシューティングなどが行えます。
クイック設定による新しいインターネット コントロール
Android 12 のすべての新機能について知りたい方は、Android 12 デベロッパー Web サイトをご覧ください。
Google I/O では、Android 12 から最先端の Android 開発ツール、Wear や折りたたみ式デバイスなどの新しいフォーム ファクタ、Google Play まで、デベロッパー向けの Android の新機能についてお話ししました。ここでは、Google I/O の Android 12 関連の話題のうち、押さえておきたいトップ 3 をご紹介します。
#1 Android 向けの新しい UI - Android 12 では、Android 史上最大のデザイン変更が行われました。色、形状、明るさ、動きなど、エクスペリエンス全体を再考し、Material You と呼ばれる 1 つのデザイン言語によって Android 12 の表現力、ダイナミックさ、パーソナル性を高めています。
#2 パフォーマンス - Android 12 では、根本的なシステムのパフォーマンス、バッテリーの寿命、フォアグラウンド サービスの変更、メディアの品質とパフォーマンス、アプリを最適化するための新ツールなど、パフォーマンスを向上する大規模な変更を行っています。
#3 プライバシーとセキュリティ - Android 12 でも引き続き、ユーザーのデバイスとデータのセキュリティを保護しながら、透明性と制御性を高めることに努めています。
デベロッパー向けの Android 12 の機能概要を確認したい方は、今年の What's new in Android セッションをご覧ください。アプリの互換性テストに関する概要を確認したい方は、Top 12 tips to get ready for Android 12 セッションをご覧ください。Google I/O のすべての Android 関連のコンテンツは、こちらからご確認ください。
Pixel などの対応デバイスで Android 12 Beta を利用するアーリー アダプターやデベロッパーが増えてきた今が、アプリを Android 12 Beta 2 対応にする絶好のタイミングです。
アプリの互換性テストを行うには、Android 12 Beta を実行しているデバイスかエミュレータに、Google Play や他のソースで公開されているバージョンをインストールします。そしてアプリのすべてのフローを試し、機能や UI の問題を確認します。
特に注意してテストを行うべき点については、動作の変更点を参照してください。現時点でアプリの targetSdkVersion を変更する必要はありません。そのため、問題を解決でき次第、Android 12 Beta ユーザーのためにできる限り早くアップデートを公開しましょう。
Beta 2 をリリースしたので、Android 12 は 2021 年 8 月の Platform Stability に近づいています。その時点で、アプリに関連するシステムの動作、SDK/NDK の API、非 SDK リストが確定します。このタイミングで最終的な互換性テストを終え、完全に互換性があるバージョンのアプリ、SDK、ライブラリをリリースしてください。デベロッパー向けのタイムラインの詳細は、こちらをご覧ください。
今回の Android 12 Beta 2 リリースには、Android 12 の最新機能を試し、あなたのアプリの動作をテストしてフィードバックを提供するために必要なすべてのものが含まれています。サポート対象となっている Pixel デバイスを登録するだけで、OTA(無線)でアップデートを入手できます。また、Android 12 に対応したアプリの開発を行うために、Android 12 SDK をセットアップしてください。
Android 12 Beta 2 は、Sharp などの一部の主要メーカー パートナーのデバイスでも利用できます。Android 12 Beta に対応しているデバイス パートナーの全リストは、android.com/beta に掲載されています。さらに幅広くテストしたい場合は、Android GSI イメージで Android 12 Beta をお試しください。デバイスをお持ちでない場合は、Android Emulator でテストできます。
Beta 2 は Android TV でも利用できるので、最新の TV 機能を確認したり、新しくなった Google TV エクスペリエンスでアプリの動作をテストできます。ADT-3 デベロッパー キットをお使いください。詳しくはこちらをご覧ください。
Android 12 Beta の詳細については、Android 12 デベロッパー Web サイトをご覧ください。
Reviewed by Takeshi Hagikura - Developer Relations Team and Hidenori Fujii - Head of APAC Developer Marketing, P&E
この記事は Oscar Wahltinez による Android Developers Blog の記事 "What's new in foldables, tablets, and large screens" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
ユーザーは より大きな画面で、かつ、1 台のデバイスのみを活用し、より多くのことができることに価値を見出しています。大画面デバイスに対応したアプリは、その価値をさらに高めることができます。
折りたたみ式デバイスは、大きな画面を持つデバイスの使い勝手を向上させました。タブレットのような画面サイズのデバイスをポケットに入れて持ち運べる様になり、従来型のスマートフォンでは実現の難しかった使い方ができるようになります。アプリのエコシステムへの影響について考えると、とてもワクワクします。このハードウェアの大きな変化は、スマートフォンで新しくできるようになることがあるに違いない、という期待をもたらしているからです。私たちは、この大画面化の流れは、タブレットにも及ぶと考えています。同じようなアプリ エクスペリエンスでも、画面の大きいデバイスで操作した場合は、段違いに評判が良くなります。
このブログ記事では、大画面向けにアプリを準備するときに何をすべきか、アプリの開発を効率化する最近のアップデートについてご説明します。まずはじめに、大画面についての私たちの考えと、アプリを最適化するべき理由についてお話しします。
この 1 年で、各社が新しい折りたたみ式デバイスやタブレットを発表しています。また、ユーザーが自宅で新型デバイスを使ってより多くのことをしようとしているため、需要も増加しています。つまりデベロッパーの皆さんは現在、Android の大画面デバイス向けにアプリを開発すると、2 億 5,000 万台以上のアクティブな折りたたみ式デバイス、タブレット、Chromebook にリーチすることができます。タブレット の売上は 2020 年に16% 増加し、アナリストは 2023 年までに 4 億台以上の Android タブレットが登場すると予想しています。また、Android アプリは、現在 2 番目に人気のあるデスクトップ OS である ChromeOS でも動作します。
大画面化によって、ユーザーのデバイスとの付き合い方が変わりつつあります。このようなデバイスでは、メモを見ながらスライドデッキを編集したり、夜の外出に備えておすすめのレストランを調べたり、友達とチャットしながらビデオを見たりすることができます。ここでは、アプリを大画面に対応するためにサポートしなければならない機能である、基礎レベルのサポートについて説明します。大画面に対応するためには、主に 大きく分けて 3 つのカテゴリに注目します。
これらについて以下にまとめますが、詳しくは大画面アプリの品質ガイドラインを必ずご覧ください。
最初のステップは、アプリを確実に大画面向けに設計することです。これを簡単にするために、特定のウィンドウサイズのブレイクポイントとデバイスクラスを定義して、デベロッパーが最適化できるようにしました。最短のサイズが 600dp 以上のディスプレイにはタブレットレイアウトを追加し、アプリが端から端まで表示されるようにします。また、大画面は横向きで使用されることが多いため、デベロッパーはアプリが縦向きと横向きの両方で使用されるように考慮する必要があります。画面のスペースをより有効に活用できるように、マテリアル アダプティブ コンポーネントをご用意しました。詳しくは後ほどご説明します。
分割画面(またはマルチウィンドウモード)への移行や、ドラッグ&ドロップのようなジェスチャーによる操作は、ユーザーが大画面デバイスでシームレスに動作することを期待する、自然なインタラクションになりつつあります。
アプリのサイズを変更可能にすることで、アプリをシームレスにマルチタスク対応にできます。また、画面の折りたたみ/ 展開イベントを適切に処理し、アプリをマルチウィンドウモードに対応させることで、アプリがレターボックス表示になることを防げます。
多くの人は生産性を高めるためにより大きな画面を使います。そのため、タブレットは基本のキーボード、マウス、スタイラスの使用をサポートする必要があります。
Jetpack と Material Design ライブラリの UI コンポーネントをアップデートし、スマートフォンの UI を大画面に拡大しても柔軟なユーザー エクスペリエンスを開発できるようになりました。
アプリを大画面に最適化するときに最もよく使われるアダプティブ レイアウトの 1 つが、一覧・詳細UI です。例えば、メッセージングアプリでは、片側にメッセージを一覧表示し、もう片側にメッセージの詳細を表示します。
SlidingPaneLayout ライブラリのアップデート版を使うと、小さな画面では上下に重なってしまう UI も、簡単に横に並べることができます。2 ペインスタイルのレイアウトをサポートするためにアップデートされた SlidingPaneLayout は、2 ペインの幅を使って UI のレイアウトを決定します。これは、コンテンツの幅と利用可能なスペースに基づいて、横に並べることができるかどうかを自動的に判断して実行します。例えば、リストペインの 最小幅が 200dp、詳細ペインが 400dp 必要と測定された場合、SlidingPaneLayout は、少なくとも 600dp の幅が利用可能であれば、自動的に2つのペインを横に並べて表示します。
折り目やヒンジなどのディスプレイの特徴を認識する機能も追加しました。例えば、ヒンジ付きのデバイスで画面の一部が遮られている場合、自動的にコンテンツをどちらかの画面に配置します。
ロックモードも導入しました。ロックモードでは、ペインが重なったときのスワイプ動作をコントロールできます(プログラムによる切替もサポートされます)。例えば、ユーザーがスワイプで空のペインに移動するのを防ぐために、リストのアイテムをクリックしてそのペインの情報を読み込ませ、スワイプでリストに戻れるようにすることができます。2 つのビューを横並びで表示する大きさがある折りたたみ式デバイスやタブレットでは、ロックモードは無視されます。
垂直ナビゲーション レールは、機能的にはボトム ナビゲーションと同等で、より大きな画面のナビゲーションの使用感を改善し、UI のサイズを調整する時に、NavRail が指が届く範囲内に配置することをサポートします。スマートフォンは下向きに持つユーザーが多いですが、タブレットなどより大きいサイズのデバイスは横向きに持つことが多いからです。
例えば、縦スクロールが重要なアプリの場合に、NavRai lが役立ちます。このような場合、ナビゲーション バーが下部にあると表示できるコンテンツの量が減ってしまいます。特に、タブレット デバイスを横向きに使っている場合に、より顕著になります。
他にも、複数のコンポーネントをアップデートしました。アプリを大画面対応するときの最大の落とし穴の 1 つは、UI要素が画面全体に引き伸ばされることです。これを防ぐために、この問題が最も多く発生する要素、例えば下のような要素にデフォルトのmax-width を追加しました。
今後、他の要素にも同じ対応を行う予定です。これらの変更により、独特のデフォルトが提供され、アプリを大画面デバイス対応にし、アプリのレイアウトが崩れないようにサポートします。追加設定は必要ありません。コンポーネントのサイズ制限に関する詳細は、マテリアル デザイン ガイドラインをご覧ください。
UI のサイズ調整をサポートするコンポーネントのアップデートだけではなく、これらのデバイスでより良いエクスペリエンスを開発するための WindowManager Jetpack ライブラリを提供しています。このライブラリは、現在アルファ版が公開されており、折りたたみ式デバイスやタブレットをはじめとするさまざまなデバイスタイプに対応する一般的な API サーフェスを提供しています。
WindowManagerを使用すると、折り目やヒンジなどのディスプレイの特徴を検出することができます。また、そのディスプレイ機能がアプリにどのような影響を与えるかについての情報も提供されるので、最適なエクスペリエンスを生み出すことができます。例えば、ユーザーが動画を見ているときにデバイスがテーブルトップ モードに折り畳まれた場合、折りたたみ式デバイスの状態変化に反応します。
WindowManager では、API レベル 14 以降の下位互換性のある方法で、現在および最大の WindowMetrics 情報を取得する便利なメソッドもいくつか提供します。
アプリは、各デバイスに適切にコンテンツを表示するために、画面またはディスプレイのサイズを決定する必要があります。WindowMetrics API を導入したため、ディスプレイ サイズに関連する多くのメソッドが非推奨となりました。下位互換性のある代替手段として、Window Manager Jetpack ライブラリを使用する必要があります。
Android 10 では、「トップの再開アプリ」が 1 つになり、複数の再開アプリを同時に実行することが可能になりました。ほとんどのアプリケーションは、アップデートの必要なくこの変更の恩恵を受けます。ただし、マイクやカメラなどの排他的なリソースを使用しているアプリケーションは例外です。詳細については、以前のブログ記事(英語)をご覧ください。
アプリを大画面に最適化することで、ユーザー エクスペリエンスが改善され、ビジネスの成果につなげることができます。Google Play では、大画面での利用機会を活用するアプリが増えています。例えば、Google Duo は、タブレットと折りたたみ式デバイスのサポートを実装してユーザー エクスペリエンスを向上させ、アプリの評価とユーザー エンゲージメントの向上に繋がりました。
Google Duo の折りたたみ式デバイス対応最適化エクスペリエンス(Samsung Galaxy Z Fold2 など)
Google Duo のユーザー エクスペリエンスの向上に加えて、多くのアプリでアダプティブ レイアウトを採用し、大画面や折りたたみ式デバイスでの利用が可能になりました。
折りたたみ式デバイスおよび大画面デバイスの詳細については、以下の関連情報も併せてご覧ください。