L Developer Preview Notification向けデザイン

2014/7/30 10026hit

L Developer Preview目次
原文

Notificationシステムによりあなたのアプリは、友人からのチャットメッセージやカレンダーイベントのような関連性が高くタイムリーなイベント情報を渡すことが出来ます。
Notificationはユーザーに重要なイベントを通知するニュースチャンネルであり、新しい情報が入ってきた時や、ユーザーが注意を払っていない間の情報を時系列にまとめたログと考えることが出来ます。加えてユーザーが所有するAndroid端末全てで適切に同期してください。

Lにおける新しいこと

LのNotificationでは視覚的構造と機能のアップデートが行われています。
・マテリアルデザインの一部としてビジュアルが変更されました。
・Notificationがデバイスのロックスクリーンでも使用可能になりました。機密情報をロックスクリーン上には表示しないことも出来ます。
・デバイスを使用中に重要なNotificationを受け取ったときのためにHeads-upという新しい書式で表示できます。
・クラウド同期NotificationによりAndroidタブレット上でNotificationを処理すると、スマートフォンからも処理済みとして取り除かれます。
・さらに(Android Wear向けのプラットフォームAndroid 4.4W API Level20により)NotificationはAndroid Wearデバイスにも届けられるようになります。Wear上では2つの方法でNotificationの機能を拡張出来ます。
1.Wear上での音声入力やアクションの返信機能を追加してユーザーが手首の上でタスクを完了させられるように出来ます。
2.notificationをフックするアプリを書いて通知以上に対話的なエクスペリエンスを作ることも出来ます。

Notificationの分析

この章では、Notificationの基本的な部分と、それらが異なる種類のデバイスでどのように表示されるかについて見ていきます。

基本的なレイアウト

全てのNotificationは最低限以下の基本的レイアウトを含んでいます。
・Notificationアイコン オリジナルアプリを象徴し、異なる種類のNotificationを持つことも出来ます。
・Notificationタイトルと追加のテキスト
・タイムスタンプ
Notification.Builderを使ったL以前のAndroidバージョン向けに作られたNotificationは、ソースコードに僅かな修正を加えるだけでLと同じ見た目と働きで動かすことができます。


ユーザー写真とNotificationアイコンを使用した基本的レイアウトの通知を携帯端末で表示した場合と、同じ通知をWear上で表示した場合。

拡大されたレイアウト

Notificationにより多くの詳細を提供するため事もできます。この機能はメッセージの最初の数行を表示したり大きな画像のプレビューを表示するために使用できます。これにより、追加の情報をユーザーに提供でき、場合によってメッセージ全体を読むことが出来るかも知れません。ユーザーはズームピンチか1本指を滑らせることで縮小と拡大レイアウトを切り替えることが出来ます。1イベントのNotificationのために、あなたのアプリで利用できる3つの拡張されたレイアウトテンプレートをAndroidは提供します(テキスト、インボックス、画像)。以下の画像は携帯とウェアラブルでそれらがどのように表示されるかを示します。


テキスト

インボックス

画像

アクション

AndroidはJelly BeanよりNotificationのボタンとして表示される追加のアクションをサポートしています。アクションによりユーザーは通知元のアプリケーションを開くことなく、Notication shade内からそのNotificationにおける一般的なタスクを行うことが出来ます。これは対話の速度を上げて、スワイプして消去と共に、ユーザーが優先度ををつけてNotificationで操作する経験を効率化します。


NotificationにどれくらいのActionを含めるべきか。
より多くのアクションを含めるとより複雑になってしまいます。最も重要で価値があり差し迫っている最小限のアクションだけを含めるようにしてください。

適切なNotificationアクションは以下の様な物です。
・コンテンツに対して重要かつ頻繁で典型的な選択肢である。
・ユーザーが素早くタスクを行えるようにしたい。
以下のようなアクションは避けるべきです。
・曖昧である
・Notificationの標準アクションとかぶっている(「読む」と「開く」など)
最大3つまでのアクションを設定して、それぞれにアクションアイコンとアクション名を含めることが出来ます。Notificationが拡張レイアウトを持っていなくても、Actionを加えると基本レイアウトが拡張可能になります。
アクションは拡張時のみ表示され、それ以外の時は表示されないため、Notificationで呼び出す関連アプリケーション内では全てのアクションが実行できるようにしておく必要があります。

Android Wear上でのNotification

加えて、Notificationとそのアクションは標準でWearデバイスにも送られます。開発者は携帯と腕時計の間で渡されるNotificationを双方向でコントロールできます。開発者はアクションについても同様にコントロールできます。あなたのアプリがシングルタップで完了しないアクションを含む場合、腕時計上にアクションを表示しないか、ユーザーが腕時計上でタスクを完了できるように、ウェアアプリでその通知をフックすることを検討してください。

Notificationの受け渡し

ウォッチに受け渡すのがふさわしいNotification

・新しいインスタントメッセージ
受け渡すのにふさわしくないNotification
・ポッドキャストアプリで新しいエピソードがダウンロード可能になった場合。(このNotificationは携帯端末のみで表示されるべきです。)

アクションの受け渡し

受け渡すのにふさわしいアクション
・いいね!や+1、お気に入りなどのシングルタップアクション
受け渡すべきでないアクション
・腕時計上で操作できないような機能に割り当てられたアクション
腕時計向けの特殊なアクション
・「折り返し連絡します」のような素早い応答コマンドリスト
・着信する
・「コメント」あるいは「返信」アクション。 - 音声入力画面を表示します
・アクションでWear専用アプリを起動することも出来ます


Hands-up Notification

優先度にHigh(ふさわしい物)が設定されているNotificationを受信したとき、拡張レイアウトによりアクションが表示された状態で短時間デバイスの上位に表示されます。

その後Notificationの中に退かれます。もしフルスクリーンのActivityが動いているときにNotificationがHighあるいはMaxが設定されている場合LにおいてはHUN(訳注:Heads-up notifications=アクティビティ上に重ねて表示されるNotification)として表示されます。

Heads-up notificationsとして表示するのに良い例
・デバイスを使用中に着信
・デバイスを使用中のアラーム
・新しいSNSメッセージ
・バッテリーの減少

Immersiveアプリ上に表示されるHeads-up notificationの例(優先度Highの着信通知)

ガイドライン

個人的に

他人から送らてくるNotification(メッセージやステータスのアップデートなど)ではsetLargeIconを使用してその人の画像を含めてください。notificationのメタデータにその人の情報も追加してください。(EXTRA_PEOPLEを見てください)

Notificationにはmain iconも表示されるため、ユーザーはステータスバーの見た目と紐付けることが出来ます。

送信者とあなたに送られたコンテンツを表示するNotification

正しい場所にナビゲートする

ユーザーがNotificationの本体(アクションボタン以外)にタッチした時、ユーザーがアプリ内でNotificationに表示されたデータに対して、見て、アクションを行える場所を開いてください。多くの場合、それはメッセージなどいつのアイテムが表示される詳細ビューです。しかしながら、StackされたNotificationの場合(Stacked notificationについては後述)複数のアイテムを見ることが出来るサマリービューを表示すべきかもしれません。上記のような場合、ユーザーはあなたのアプリのトップレベルより下の階層に移動させられます。ユーザーがシステムの戻るボタンを使ってアプリの上位階層に移動できるように、あなたのアプリのback Stackにナビゲーションを挿入します。詳細はNavigationデザインパターンのシステムからアプリへのナビゲーションの章を呼んでください。

通知の優先度を正しく設定し管理する

Jelly BeanよりAndroidはNotificationの優先度フラグをサポートしました。それによりあなたのNotificationを他のNotificationに対して相対的にどの位置に表示するかを指定でき、ユーザーが一番最初にユーザーにとってもっとも重要なNotificationを見ることを助けます。あなたはNotificattionを送るときに以下の優先度レベルから選択することが出来ます。





優先度使用用途
MAX命に関わりかつ緊急性のあるNotificationでユーザーを警戒させ、現在行っているタスクより先に解決する必要がある場合に使います。
HIGH重要なコミュニケーション(ユーザーが特に興味を持っている内容を含むメッセージやチャットなど)に使います。 優先度HightのNotificationはL以降Heads-Up Notificationに表示できます。
DEFAULT他の優先度レベルのいずれにも該当しない場合この優先度のままとしてください
LOWEREDユーザーに通知はされて欲しいが、ほとんど緊急性がない場合に使用します。LOW notificationsはリストの一番下から表示されます。一般公開向けで名指しされていないSNSの更新などでふさわしいです。ユーザーはそれらを通知してほしいが、それを他の緊急性があったり、直接的なコミュニケーションに対して優先してほしくはありません。
MINユーザーに関連した背景情報、(例えばユーザーの位置情報に基づく天気予報)優先度MinimumのNotificationはステータスバーに表示されることはありません。Notification一覧を開いた時だけユーザーはNotificationを見つけることが出来ます。

優先度を選ぶ方法

優先度Default , High , Max は割り込み優先度です。それはユーザーが現在行っているタスクを中断するリスクが有ります。そのため、これらのNotificationは軽々しく表示されるべきではなく、以下のような場合に限定しなくてはいけません。
・別の人が関係している。
・緊急性がある。
・ユーザーが現実の世界での行動をすぐさま変えることがある。

優先度Low, Minもユーザーに大きな価値を与えることが出来ます。ほとんどの通知とは言わないにせよ、多くの通知でユーザーへ即時に応答してもらうために注意を引いたり、彼らの腕を振動させる必要はありません。しかし、ユーザーがそれを見たいと思った時に価値のある情報を含めてください。以下の様な通知に対して優先度LowとMinを選びます。
・他のユーザーが関係していない
・緊急性がない
・ユーザーが内容に興味を持っている可能性があるが暇な時に選んでみてもらえばいい場合

極めて致命的かつ緊急性がある
 MAX
 電話の着信・発信、ナビにおける交差点での右左折指示、緊急速報

多くのNotificationはこの中に含まれるべきです
 HIGH
  重要なメール、リアルタイムチャット、SMS
 DEFAULT
  それ以外全て(優先度の設定されていない古いNotificationの全て)
 LOW
  ソフトウェアの更新

 便宜主義
  MIN
   終了したイベント、おすすめ、お天気、ローカル情報

Notificationのカテゴリーをセットする

あなたの通知が予め定義されているカテゴリー(下記参照)に分類されるなら、それを割り当ててください。
Notification Shade(あるいはその他Notification一覧)として表示されるシステムUIはこの情報を使ってランキングやフィルタリングにこの情報を使うことがあるかもしれません。













Notification.CATEGORY_CALL音声、あるいは動画による着信、あるいは同期したコミュニケーションリクエストなど
Notification.CATEGORY_MESSAGE直接的なメッセージの着信(SMSやインスタントメッセージ等)
Notification.CATEGORY_EMAIL非同期の多くのメッセージ(メール)
Notification.CATEGORY_EVENTカレンダーイベント
Notification.CATEGORY_PROMOプロモーションあるいは広告
Notification.CATEGORY_ALARMアラームあるいはタイマー
Notification.CATEGORY_PROGRESS時間がかかるバックグランド操作の進捗
Notification.CATEGORY_SOCIALソーシャルネットワークあるいは共有の更新
Notification.CATEGORY_ERRORバックグラウンド操作や認証状態のエラー
Notification.CATEGORY_TRANSPORT再生のためのMedia transportのコントロール
Notification.CATEGORY_SYSTEMシステム、あるいはデバイス状態の更新。システムが予約済み
Notification.CATEGORY_SERVICE背後で動いているサービスを表示する
Notification.CATEGORY_CATEGORY_RECOMMENDATION特にタイムリーなおすすめを1つ 例えばニュースアプリの場合、ユーザーが続きを読みたいと考えていると思われるニュース
Notification.CATEGORY_STATUSデバイスやステータスに基づく進行中の情報


Notificationsのサマリー

同一アプリ、同一タイプのNotificationが処理されずに残っている時は新しいNotificationをアプリで作らないでください、代わりにサマリーNotificationに変更してください。Summary Notificationは概要を説明し、ユーザーにどの程度Notificationが未完了になっているかを伝えます。
以下のように複数のNotificationを並べてはいけません


以下のようにSummary Notificationにまとめてください

拡張ダイジェストレイアウトを使用してサマリー内の各Notificationについてより詳細を提供できます。これにより、ユーザーはどんな通知が未完了で、関連するアプリで詳細を見るにふさわしいかを判断することが出来ます。

サマリーNotificationの拡張・縮小(Inboxスタイルを使用)

Notificationオプションを作る

ユーザーはいつでもNotificationをコントロールしたいです。アプリケーションの設定にNotificationの設定項目を追加し、ユーザーがNotificationを無効にできたりアラートプロパティ(着信音を使用するか、バイブレーションを使用するかなど)を使用できるようにしてください。

明確なアイコンを使用する

ユーザーがNotification領域をユーザーが眺めるだけで、どのような種類のNotificationが現在未完了となっているかを確認できなくてはいけません。

やるべきこと
既存のAndroidアプリが提供しているNotificationアイコンを参考にして、非常に明瞭なNotificationアイコンを作る。
スモールアイコンのためにAndroidデザイン アイコンデザインの通知デザインのスタイルを使い、アクションアイコンのためにマテリアルライトアクションバーアイコンスタイルを使用する。
スモールアイコンとアクションアイコンは半透明にしない。境界線部分にアンチエイリアスを持たせるために半透明を使うことは出来ますが、Lはアイコンをマスクとして使用する(アルファチャンネルのみを使用する)ため画像部分は通常半透明にしてはいけません。

シンプルな見た目とし、識別するのが困難な複雑さを排除する。

やってはいけないこと
他のアプリと区別するために色をつける。 (Notificationアイコンは透明な背景に白だけでないといけません。)


適切にNotification LEDの点滅を使用する

多くのAndroidデバイスにNotification LEDが含まれています。それによりスクリーンがオフの時でもイベントをユーザーに知らせることが出来ます。LEDを点滅させるNotificationは優先度が、MAX,HIGH,DEFAULTでないといけません。優先度が低いNotification(LOWとMIN)では使用してはいけません。
ユーザーがNotification LEDのコントロールを出来るようにする必要もあります。DEFAULT_LIGHTS を使用した時、LEDは白色に輝きます。ユーザーが明示的にカスタマイズしない場合、それ以外の色を使ってはいけません。

ユーザーに愛されるNotificationの作成

ユーザーに愛されるアプリを作るにはNotificationの設計を慎重に行うことが大切です。Notificationはあなたのアプリからの声であり、アプリの個性を形作ります。不要だったり重要でないNotificationはユーザーをイライラさせ、アプリに必要以上の注意を払わないといけなくなりストレスを感じます。そのためNotificationは適切に使用する必要があります。

Notificationを表示するとき

人々が使って楽しいアプリを作るためには、ユーザーの注意と焦点が保護されるべきリソースであることを認識することが大事です。
Android Notificationシステムはユーザーの注意に対する影響を最小限になるようにデザインされていますが、それでもNotificationはユーザーのタスクの流れを遮断している事実を認識することも大事です。Notificationを使おうと思った時は、それらがユーザーのタスクを中断するだけ重要であるか自問してください。もし自信がなければユーザーがアプリの設定でNotificationを使用するかどうかを選べるようにするか、ユーザーが他のタスクを行っているときに注意を惹かないようにNotificationの優先度フラグをLOWあるいはMINに設定出来るようにしてください。

時間に密着したNottificationの例

一般的に行儀がいいアプリは呼び出した時だけ応えるべきですが、いくつかの限られた場合においてはアプリが能動的にNotificationでユーザーに割り込むべきです。

主に時間に密着しており、特にその同期されたイベントに他の人が関係しているならNotifiationが使われなければいけません。例えばチャットの着信はリアルタイムであり同期されたコミュニケーションの例です。もう一人のユーザは応答を活発に待ってきます。
カレンダーイベントもNotificationを使って注意を惹くべきもう一つの良い例です。なぜなら、イベントは差し迫っており、カレンダーイベントはしばしば他の人に関係します。

Notificationを表示すべきではない時

・しかしながら、Notificationを使ってはいけない多くのケースが有ります。ユーザーが名指しされていない情報、あるいは時間に密着していない情報。例えばSNS内の非同期で、ユーザーが名指しされていない更新情報はリアルタイムな中断を正当化しません。
それらが好きなユーザーのためにユーザーに選択肢を与えてください。

・新しい情報が現在画面上に表示されているならNotificationを作らないでください。代わりにコンテキスト内で直接ユーザーに新情報を通知するために、アプリケーション自身のUIを使用してください。例えばユーザーが他のユーザーとチャット中の場合、チャットアプリケーションはシステムのNotificationを作ってはいけません。

・データの保存や情報の同期、アプリケーションの更新など、低レベルな技術的なオペレーションでユーザーが操作する必要なく、放っておくだけで解決出来るならば、ユーザーを遮らないでください。

・ユーザーの操作を必要とせずにアプリケーション自身で復帰できるエラーを伝えるためにユーザーを遮らないでください。

・伝えるべきことを持っておらず、単にアプリを広告するだけのNotificationは作ってはいけません。Notificationは便利で、タイムリーな新しい情報を提供しないといけません。単にアプリケーションを起動するためにNotificationを使用してはいけません。

・ユーザーの前にブランドを表示するためだけに余計なNotificationを作ってはいけません。そのようなNotificationは単にユーザーに嫌われてユーザーが離れていくだけです。ユーザーに僅かな更新情報を提供しつつ、ユーザーをアプリケーションにつなぎ止めておく最もいい方法は、Widgetを作りユーザーの手によってホームスクリーンに置くことが出来るようにすることです。

Notificationとの対話

Notificationはアイコンによりステータスバーの中に表示され、Notification drawerを開くことでアクセスできます。

NotificationをタッチするとNotificationに一致する詳細情報のために関連したアプリケーションが起動します。
左右にスワイプするとNotificationをリストから削除します。

進行中のnotification

進行中のNotificationはバックグラウンドで進行中のプロセスに関する情報を表示します。たとえば、音楽プレーヤーは現在再生中のトラックをNotificationシステムで表示しユーザーが再生を終えるまで表示し続けます。ファイルのダウンロードやビデオのエンコードのような長いタスクのためにユーザーにフィードバックを見せることも出来ます。進行中のNotificationはNotification drawerから手動で取り除くことは出来ません。

Lのロック画面ではRCC(RemoteControlClient)の再生画面を表示しなくなりました。代わりにLockscreen上にNotificationを表示するため、それぞれのアプリケーションプレイバックNotificationが、ロック状態で再生をコントロールするメインの方法となりました。
これによりアプリはどのボタンをどのように表示するかのより多く制御できます。また、ロックスクリーンでもそうでない時でも一貫したユーザーエクスペリエンスを提供できます。


DialogやToastをNotificationへの応答に使用しない

アプリケーションが現在画面上に表示されていない時はDialogやToastを作ってはいけません。DialogおよびToastは直接ユーザーから瞬時に応答するためにあなたのアプリの中でのみ表示されなければいけません。DialogやToastを使うためのより詳しいガイドラインはConfirming & Acknowledgingを参照して下さい。

ランキングと表示順

Notificationはニュースです。そのため、アプリが設定した優先度を考慮しつつ、基本的に時間の逆順で表示されます。LにとってNotificationはロックスクリーンの重要な一部であり、デバイスのディスプレイが表示される度に際立って表示されます。ロックスクリーンは狭いため、Notificationに緊急性あるいは関連性があることを確認しておくことがこれまで以上に大切です。
そのため、Lは以下を考慮したNotificationの高度な分類アルゴリズムを持っています。
・上記の通りタイムスタンプとアプリケーションが設定した優先度
・最近Notificationが音声、あるいはバイブレーションによりユーザーを驚かせたかどうか(もし、携帯が音を出したら、ユーザは「今何が起きたか?」を知りたがります。ロックスクリーンを一目で見て確認できるようにしなくてはいけません)
・NotificationがEXTRA_PEOPLEを使って誰かと紐付けられているか、そしてその人の連絡先に星が付けられているか
この並び替えのアドバンテージを最大限活かすには、開発者はリスト上のどの点よりも、ユーザーエクスペリエンスに焦点を合わせる必要があります。

GmailのNotificationは優先度がdefaultです。そのため、通常はHangoutなどのインスタントメッセージングアプリの下に表示されます。しかしながら、新着メッセージを着信した時は一時的に他のNotificationを押しのけてより上に表示されます。

ロックスクリーン上で

LからLockscreen上でNotificationが表示されるようになります。そのため私達はユーザーのプライバシーを考慮する必要があります。Notificationにはしばしば機密情報が含まれます。だれでもデバイスを拾って画面を見ることが出来ることを十分考慮しないといけません。
・デバイスにセキュアなロックスクリーンがなく、シンプルなスライドジェスチャーでデバイスをアンロックする場合、Androidは常に全てのNotificationをロックスクリーン上に表示します。
・デバイスがセキュアなロックスクリーン(PIN,パターン、パスワード)を持っている場合、2つの領域に分けられます。"public"はLockscreenに表示され誰でも見ることが出来ます。privateはロックスクリーンの後ろだけでしか表示されず認証に成功した場合だけ表示されます。

ユーザーデバイスがセキュアロックスクリーンの上に表示するもの

セキュアなロックスクリーンをセットしている時、ユーザーはセキュアロックスクリーン上から隠す機密の詳細を選ぶことが出来ます。この場合、システムは何を安全に表示してもいいかNotificationのvisibility levelを考慮します。

visibility levelをコントロールするためにNotification.Builder.setVisibility()を呼んで値を指定します。
・Notification.VISIBILITY_PUBLIC. Shows Notificationは詳細を全て表示します。これはシステム標準でもしも値を指定していなかった場合この値になります。
・Notification.VISIBILITY_PRIVATE. ロックスクリーンにNotificationのアイコンとNotificationをPostしたアプリの名前を含むNotificationの存在を表す情報を表示します。しかしながら、それ以上の詳細は表示されません。
 ○もしセキュアなロックスクリーン上に異なるタイプのNotificationを表示したいなら Notification.publicVersionフィールドに代替Notificationを渡してください。
 ○これにより、アプリは有用ながら個人情報は含まないように編集されたコンテンツを作成することが出来ます。
 ○例えば、SMSアプリが作成するSMSの本文と送信者の名前、連絡先が含まれたNotificationの場合、このNotificationはVISIBILITY_PRIVATEとすべきです。しかしながら、「3つの"新着メッセージが有ります」とだけ表示し、それ以上の詳細情報を含まない役立つコンテンツをpublicVersionに含めることが出来ます。
・Notification.VISIBILITY_SECRET.Notificationのアイコンも表示せず、最小限の情報しか表示されません。

ロックスクリーン上のNotificationはユーザーが端末をアンロックするためのパターンのあとに表示されます。



Except as noted, this content is licensed under Creative Commons Attribution 2.5. For details and restrictions, see the Content License.



前:L Developer Preview マテリアルデザイン - 互換性 次:ウェアラブル向けアプリを作る 目次

関連キーワード

[Android][Java][モバイル][IT][翻訳]

コメントを投稿する