何十億人ものユーザー向けの UI とコンテンツ

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

ユーザー入力にすばやく反応するインタラクティブな UI を提供し、必要に応じて起動を遅らせるようにします。 さまざまな言語のバージョンに対応することで、アプリのローカライズを簡単に行えるように設計します。たとえば、空白、密度、順序、強調、表現の違いを許容します。また、スマートフォンの設定に沿って、日付、時刻、その他の単位が国際化されて表示されるようにしてください。

高速で応答性が高いユーザー インターフェース

アプリのパフォーマンスをユーザーがどう感じるかは、アプリの応答性によって大きく左右されます。たとえば、ユーザーとのインタラクションと鮮明な表示は、パフォーマンスの高いアプリに求められる 2 つの重要な特性です。ここでは、それらとその他の要素の速度と応答性を最適化するためのヒントを紹介します。

タップ可能なすべてのアイテムに対するタッチ フィードバック

  • タッチ フィードバックにより、ユーザー インターフェースに触感が加わります。アプリでタップ可能なすべての要素にタッチ フィードバックを適用し、ユーザーにできるだけ遅延を感じさせないようにする必要があります。
  • 反応性の高い操作は、ユーザーの入力に対して適切なタイミングで、わかりやすく、楽しい画面の反応を出現させることで、アプリの魅力を一層高めてくれます。 反応性の高い操作には、情報配信サービスとしてのアプリに、視覚と触覚に訴えるいくつかの反応を使って情報を伝えるという一歩進んだ体験を加える効果があります。
  • 詳細については、タッチ フィードバックのカスタマイズに関する Android トレーニングをご覧ください。

UI を常にインタラクティブにする

  • バックグラウンド アクティビティを実行しているときに応答しないアプリは遅く感じられ、ユーザーの満足度が低下します。バックグラウンド アクティビティにかかわらず、アプリの UI は常に応答するようにします。そのためには、ネットワーク オペレーションや負荷の高い操作をバックグラウンド スレッドで実行し、UI スレッドをできる限りアイドル状態にしておきます。
  • マテリアル デザインのアプリは、コンテンツを読み込む際の視覚的な変化について、それぞれの処理を 1 つのアクティビティ インジケーターで表すことにより、最小限に抑えるようにします。 読み込み中のインジケーターでダイアログをブロックしないようにしてください。
  • ビューに表示するコンテンツがない場合、空の状態が発生します。たとえば、アイテムのないリストや結果の返されない検索などが考えられます。スターター、情報共有、または関連コンテンツを使用して空の状態を避けるようにします。こういった対応ができない場合は、非インタラクティブな画像と、ユーザーが表示される内容を確認できるタグライン テキストを表示します。
  • 詳しくは、アプリの応答性の維持に関する Android トレーニングをご覧ください。

低価格デバイスで 60 フレーム/秒を目標にする

  • 低価格のデバイスでも、アプリが常に高速で滑らかに実行されるようにします。
  • オーバードローによってアプリの速度が大幅に低下する場合があります。これは、ピクセルが 1 回のパスごとに複数回描画されている場合に発生します。たとえば、ボタンが配置された画像があるとします。オーバードローが何度か発生するのは避けられませんが、滑らかなフレームレートを実現するにはこの回数を最小限にする必要があります。最小限にするには、アプリで GPU オーバードローのデバッグを実行してください。
  • Android デバイスは 1 秒あたり 60 フレーム(fps)で画面を更新します。つまり、アプリは約 16 ミリ秒で画面を更新しなければならないということになります。デバイス上のツールを使用してアプリをプロファイリングし、アプリがこの 16 ミリ秒の平均値を満たしているかどうか、またどのような場合に満たしていないのかを確認します。
  • 低価格デバイスではアニメーションを軽減または除去し、デバイスの CPU と GPU への負荷を低減させます。詳細については、レイアウト パフォーマンスの改善に関する Android トレーニングをご覧ください。
  • ビュー階層を効率化すると、メモリ消費量を増やすことなくアプリを高速化できます。詳細については、パフォーマンスとビュー階層をご覧ください。

アプリの起動が遅いときに起動画面を使用する

  • 起動画面は、アプリでユーザーが最初に接するものです。 アプリの起動中に空白のキャンバスが表示されていると、読み込み時間がより長く感じられるため、プレースホルダ UI またはブランド表示用起動画面を使用して、読み込み時間が短く感じられるようにしてください。
  • プレースホルダ UI は、起動時の遷移が最もスムーズで、アプリの起動とアプリ内アクティビティの遷移の両方に適しています。
  • ブランド表示用起動画面では、一時的にブランドを表示して、UI でコンテンツに焦点が絞られやすくします。
  • スプラッシュ画面の実装の詳細については、マテリアル デザイン仕様の起動画面をご覧ください。
  • 起動速度の低下に対処する最善の方法は、速度低下自体をなくすことです。起動時間のパフォーマンスでは、アプリの起動時間を短縮するために役立つ情報を参照できます。

ユーザー インターフェースのベスト プラクティス

  • マテリアル デザインとは、古典的な優れたデザインの原則と、テクノロジーと科学のイノベーションを組み合わせた視覚言語です。マテリアル デザインによって、複数のプラットフォームとデバイスサイズの間で統一感を出すことができる、単独の基盤システムが実現できます。ユーザーがアプリの使い方を直感的に理解できるように、主要なマテリアル デザイン コンポーネントの使用を検討してください。
  • すぐに使用できるマテリアル デザイン コンポーネントがマテリアル デザイン サポート ライブラリに含まれています。このコンポーネントは、Android 2.1(API レベル 7)以降でサポートされています。

ローカライズ

  • 世界各地のユーザーがアプリを使用する可能性があり、ユーザーの第 1 言語がデベロッパーの第 1 言語とは異なる場合があります。ユーザーが読める言語でアプリを公開しなければ、機会を逃してしまいます。したがって、アプリを主要な地域の言語にローカライズする必要があります。
  • 詳細については、さまざまな言語のサポートに関する Android トレーニングにアクセスして、ローカライズ チェックリストをご覧ください。
  • Android 7.0(API レベル 24)以降、Android フレームワークで ICU4J API のサブセットが利用できるようになりました。これにより、アプリを複数の言語にローカライズできるようになります。詳しくは、ICU4J Android フレームワーク API をご覧ください。

参考情報

このトピックの詳細については、次のリソースをご覧ください。

詳細トピック

ブログ投稿