大画面のスタートガイド

大画面は、アプリ開発のチャンスを広げます。タブレット、折りたたみ式デバイス、ChromeOS デバイスの大画面は、コンテンツを見やすく表示し、マルチタスクを容易にし、小さな画面では不可能なユーザー インターフェースを実現します。

大画面向けの開発を始めるにあたっては、大画面アプリの品質に関するガイドラインに準拠してください。このガイドラインは、大画面でのアプリの最適化を容易にするために設計された要件を包括的にまとめたものです。

この品質に関するガイドラインは、「大画面に対応」、「大画面向けに最適化」、「大画面によって差別化」の 3 階層で構成されています。大画面の機能をアプリに追加するには、「大画面に対応」から開始し、順を追って各階層の開発を進めます。既存のアプリがある場合は、品質に関するガイドラインを使用して、現在アプリがサポートしている階層を確認し、アプリが大画面によって独自に差別化されるまで、階層ごとに機能を実装します。

大画面に対応

ユーザーが大画面デバイスでアプリのすべての機能を利用できれば、アプリは大画面に対応しているといえます。アプリは縦向きと横向き、マルチ ウィンドウ モードをサポートする必要がありますが、それらをサポートしていても、アプリ レイアウトとユーザー インターフェースが最適でない場合があります。

構成と連続性

デバイスの回転、マルチ ウィンドウ モードでのウィンドウ サイズの変更、折りたたみ式デバイスの折りたたみまたは展開などの構成の変更により、ユーザーが状況を把握できなくなる場合や、もっと悪いことにデータを失う場合があります。

構成の変更時にアプリが状態を保持または復元し、メディア再生などの進行中のプロセスを再開できるようにします。

詳しくは、以下のデベロッパー ガイドをご覧ください。

マルチ ウィンドウ モード

大画面では、マルチ ウィンドウ モードがより使いやすく作業効率の高いものになります。分割画面モードまたはフリーフォーム モードで、アプリを他のアプリと同時にマルチ ウィンドウ モードで実行できます。

アプリがマルチ ウィンドウ モードのときは、WindowMetrics API を使用して、アプリ ウィンドウのサイズを正確に判別します。

マルチウィンドウのサポートをご覧ください。

複数のアプリの再開

Android 10(API レベル 29)以降では、デバイスがマルチ ウィンドウ モードのとき、フォーカスされていないアクティビティは RESUMED 状態のままになります。Android 10 より前のバージョンでは、フォーカスされていないアクティビティは RESUMED 状態ではなく STARTED 状態のままでした。

アプリがフォーカスされているアプリでないとき、メディア再生やファイルのダウンロードなどの進行中のプロセスを続行することにより、アプリが複数のアプリの再開をサポートするようにします。また、アプリはデバイスのカメラやマイクなどの排他的リソースの喪失も処理する必要があります。

マルチウィンドウのサポートマルチウィンドウのライフサイクルをご覧ください。

カメラ プレビュー

アプリにカメラ プレビューが含まれている場合は、大画面での画面の向きとアスペクト比をプレビューで検証します。縦向きの大画面の折りたたみ式デバイスでは、横向きのアスペクト比を使用できるようにします。マルチ ウィンドウ モードでは、デバイスが横向きのときに、縦向きのアプリをサイズ変更が可能なウィンドウに表示できるようにします。

以下をご覧ください。

メディア プロジェクション

メディア プロジェクションでは、実際の(ソース)ディスプレイの境界に基づいて仮想ディスプレイが作成されます。実際のディスプレイは、デバイスがマルチ ウィンドウ モードになっていて、メディア プロジェクションを作成するアプリがウィンドウで実行されている場合でも、デバイス画面全体になります。

大画面でのメディア プロジェクションの正しい境界を取得するには、Android 11(API レベル 30)で導入された WindowMetrics API を使用するか、API レベル 14 までの互換性をさかのぼって確保するために Jetpack WindowManager の WindowMetrics API を使用することをおすすめします。

大画面でのメディア プロジェクションをご覧ください。

外部入力デバイス向けの基本的なサポート

ユーザーは、多くの場合、タブレットに外付けキーボードまたはマウスを接続します。Chromebook はキーボードとトラックパッドを内蔵しています。外部入力デバイスをサポートするには、アプリがキーボード、マウス、トラックパッドの次のような操作を処理できるようにします。

  • ボタン、入力フィールド、ナビゲーション アイコンの選択
  • メニュー項目、ラジオボタン、チェックボックス、テキストの選択
  • リストなどのスクロール可能な要素での垂直方向と水平方向のスクロール

大画面での入力の互換性をご覧ください。

大画面向けに最適化

アプリが大画面向けに最適化されると、ユーザー エクスペリエンスは没入感と作業効率の高い魅力的なものになり、ユーザーは大画面デバイスでそのアプリを使用するのを好むようになります。

レスポンシブ / アダプティブ レイアウト

大小さまざまな画面をサポートするには、あらゆる種類のデバイスで最適なユーザー エクスペリエンスを提供できるレスポンシブ / アダプティブ レイアウトをデザインします。

まず、以下をご確認ください。

ウィンドウ サイズクラス

ウィンドウ サイズクラスは、レスポンシブ / アダプティブ デザインの実装に役立つ独自のビューポート ブレークポイントのセットです。ウィンドウ サイズクラスを使用すると、アプリで利用可能な表示領域を COMPACT、MEDIUM、EXPANDED に分類し、最適化なレイアウトを適用できます。

各種の画面サイズのサポートウィンドウ サイズクラスをご覧ください。

アダプティブ アプリのナビゲーション

小さい画面にはボトム ナビゲーション バーが適していますが、大きい画面では、ナビゲーション レールまたはナビゲーション ドロワーを使用することで、拡大された画面スペースをより有効に活用できます。画面サイズの変化に合わせてアプリのナビゲーションを調整します。

マテリアル デザイン - レイアウトの適用をご覧ください。

レスポンシブ UI 要素

画面サイズに基づいて UI 要素の形式を合わせます。小画面で全幅サイズのボタン、カード、テキスト フィールドの幅を、大画面で機能的に適切なサイズに制限します。ダイアログ ボックスなどのモーダル ウィンドウが画面いっぱいに表示されないようにします。コンテキスト メニューなどの要素に関連するポップアップ表示は、画面の中央ではなく、ユーザーが選択した要素に隣接するように配置します。

マテリアル デザインの ComponentsButtonsText fieldsMenusDialogs などがあります)をご覧ください。

ユーザー補助

Tab キーや矢印キーによるナビゲーションを含むユーザー補助(a11y)機能向けにアプリを最適化します。選択、コピー、切り取り、貼り付けなどのよく使用される操作のキーボード ショートカットを提供します。たとえば、メディア再生のキーボード操作(メディアの再生や一時停止を Space キーで行うなど)を有効にします。また、通信アプリでメッセージの送信を Enter キーで行えるようにします。

ユーザーが利用しやすいアプリを作成するをご覧ください。

外部入力デバイスのサポートの強化

アプリを大画面向けに最適化することには、キーボード、マウス、トラックパッドによる入力のサポートの強化も含まれます。マウスとトラックパッドの右クリック操作でオプション メニューにアクセスできること、マウスのスクロール ホイールとトラックパッドのピンチ操作を使用してアプリ コンテンツをズームできること、UI 要素にカーソルを合わせた状態があることなどです。

大画面によって差別化

アプリが大画面によって差別化されると、アプリストアの中で目立つようになります。差別化されたアプリは、小さな画面には不向きなユーザー エクスペリエンスを提供します。

マルチタスク

大画面ではマルチタスクの実行が容易になります。マルチタスクは、マルチ ウィンドウ モードに加えて、ピクチャー イン ピクチャーとマルチインスタンスという特別な表示モードでも可能です。

ピクチャー イン ピクチャー モード

アプリが動画コンテンツを再生する場合は、ピクチャー イン ピクチャー モードを実装して、ユーザーが別のアプリを操作している間も動画再生を続けられるようにします。

ピクチャー イン ピクチャー(PIP)のサポートをご覧ください。

マルチインスタンス モード

アプリの複数のインスタンスを同時に実行できるため、ドキュメント エディタやコンテンツ マネージャなどのアプリを使用する際の作業効率が向上します。

マルチウィンドウのサポートマルチインスタンスをご覧ください。

折りたたみ式デバイス

大画面の折りたたみ式デバイスは、スマートフォンとタブレットを一体化したようなものです。テーブルトップとブックの形状を取る折りたたみ機能は、ユーザー エクスペリエンスに新しい可能性をもたらします。折りたたみ式デバイスの独自の機能をサポートすることで、アプリを差別化できます。

以下をご覧ください。

ドラッグ&ドロップ

大画面は、アプリ内でのドラッグ&ドロップ操作に最適です。Android 7.0(API レベル 24)以上では、マルチ ウィンドウ モードのときにアプリ間でもドラッグ&ドロップ操作を行えます。

ドラッグ&ドロップ機能をアプリに追加することで、ユーザーの作業効率とエンゲージメントを高めることができます。

ドラッグ&ドロップをご覧ください。

外部入力デバイスのサポートの差別化

パソコンに近い感覚で操作できるように外部入力デバイスをサポートすることが可能です。カスタマイズ可能なキーボード ショートカットの包括的なセットを作成します。キーボードとマウス、またはキーボードとトラックパッドの組み合わせ(例: Ctrl+クリック、Ctrl+タップ、Shift+クリック、Shift+タップなど)を有効にして、拡張された機能を提供します。

ユーザーがマウスまたはトラックパッドを使用してコンテンツをスクロールするときに、スクロールバーを表示します。マウスまたはトラックパッドでカーソルを合わせたときに、隠しコンテンツ要素(フライアウト メニューやツールチップなど)を表示します。パソコンと同様のスタイルのメニューおよびコンテキスト メニューを使用します。マウスまたはトラックパッドで UI パネルのサイズを変更できるようにします。マウスでの複数のクリック、トラックパッドでの複数のタップを有効にします。

タッチペン

最高水準のアプリは、タッチペン搭載の大画面デバイスをサポートします。ユーザーは、タッチペンを使用して、描画、書き込み、消去、ドラッグ&ドロップなど、さまざまなタッチとジェスチャーによる操作を行えます。

タッチペンの高度なサポートには、感圧、傾き検出、パーム リジェクションおよびフィンガー リジェクション(画面との意図しない接触を除外)などの機能が含まれます。

タッチペン入力のサポートを充実させることで、高性能なデバイス上でのユーザー エクスペリエンスが向上します。

大画面での入力の互換性タッチペンをご覧ください。

次のステップ

大画面アプリの品質に関するガイドラインを参照しながら、大画面に対応し、大画面向けに最適化され、大画面によって差別化されたアプリの作成を開始します。

参考情報

動画コレクション: