11/05/2012

[&] Core App Quality Guidelines



このドキュメントは
Core App Quality Guidelineshttp://developer.android.com/distribute/googleplay/quality/core.html
Creative Commons ライセンスに基づく日本語訳です。
十分に注意して翻訳しておりますが、正確な内容や詳細に関しては原文をご確認ください。

Core App Quality Guidelines


インストール、ユーザーの評価やレビュー、契約、及びユーザーの保持に関して、アプリの品質は直接的にあなたのアプリの長期的成功に影響を与えます。それらのアプリにお金を費やしてきた場合は尚更のこと Android ユーザーは、高品質のアプリを期待します。


このドキュメントは、中心となるアプリの品質基準及び関連するテストのコンパクトな組み合わせを通して、あなたのアプリの品質の基本的側面を評価するのに役立つものです。すべての Android アプリが、これらの基準を満たす必要があります。


あなたのアプリを公開する前に、多くのデバイス上でそれが上手く機能し、ナビゲーション及びデザインのためのAndroid基準を満たしているか確認してください。Google Play Store のプロモーション機会のための準備が確実かどうか、これらの基準に照らして、テストして下さい。実際のところ、あなたが実施するテストは、ここに記載されているものを凌駕して上手く行くことでしょう。このドキュメントの目的は、あなたのテスト計画に基本的な事柄を加えることができるように、基本的品質に必須の事柄を明記することです。


あなたのアプリがタブレット・デバイスをターゲットにしている場合には、タブレットの利用者に贅沢で説得力のある経験をもたらすことを確認して下さい。あなたのタブレット用アプリを最適化する方法に関する、お薦めの頃柄については Tablet App Quality Checklist を参照して下さい。



Visual Design and User Interaction


首尾一貫した、直感的なユーザー・エクスペリエンスのために、適切な場所で、あなたのアプリが標準的 Android ビジュアル・デザイン及びインタラクションパターンを提供することを、これらの基準は保証します。



Area

ID

Description

Tests
Standard design
UX-B1

アプリは Android デザイン・ガイドライン に準拠しており、共通の UIパターンとアイコンを使用しています:

  1. アプリはシステムアイコン(例えば、戻るボタンなど)の規定された機能を再定義しません。
  2. 標準的なUIの振る舞いを使う場合、アプリは標準とは完全に異なるアイコンを使用してシステムアイコンを置換してはいけません。
  3. アプリが標準的システムアイコンのカスタマイズ版を提供する場合、そのアイコンはシステムアイコンによく似たもので、標準的な振る舞いをするものでなければいけません。
  4. アイコンや振る舞いに誤解を招いたり、ユーザーを混乱させるような Android UI パターンを、アプリは再定義したり、誤用してはいけません。
CR-all
Navigation
UX-N1

アプリは標準システムである戻るボタン・ナビゲーションをサポートしますが、任意でオーダーメイドされた、画面上の”戻るボタン”プロンプトを使用はしません。
Back button navigation

CR-3

UX-N2

戻るボタンを使用して、すべてのダイアログを却下することができます。

CR-3

UX-N3

任意の時点でホームボタンを押すと、デバイスの [Home screen] に移動します。
CR-1
Notifications
UX-S1

通知(ノーティフィケーション) は、Androidデザイン・ガイドラインに準拠します。特に以下のとおりです:

  1. 複数の通知が可能な場所で、単一の通知オブジェクトに積層される。
  2. (音楽再生や電話など)進行中のイベントに関連する場合のみ、通知は永続的です。
  3. ユーザーがオプトインで許可していない場合、通知には広告やコア機能とは無関係の内容は含まれません。

CR-11

UX-S2


通知(ノーティフィケーション)のみを使用するアプリ:

  1. (着信メッセージなど)ユーザー個人に関連するコンテキスト上の変化を示すため、或いは
  2. (音楽再生や電話など)進行中のイベントに関連する情報/コントロールを表すため。
CR-11

Related resources:

  • Android Design — Android アプリのデザイン概要およびユーザー体験の成功事例
  • Navigation with Back and Up — 標準ナビゲーションパターンを説明する Android Design の文書
  • Action Bar — アクションバーの使用方法を説明する Android Design の文書
  • Iconography — 各種のアイコンの使用方法を説明する Android Design の文書
  • Notifications — ノーティフィケーションのデザインおよび使用方法を説明する Android Design の文書

Functionality


これらの基準により、あなたのアプリが適切な水準のパーミッションで、確実に期待通りに機能が作動するようにします。



Area

ID

Description

Tests
Permissions
FN-P1
アプリは、コア機能をサポートするために必要な最低限の絶対的水準のパーミッションしか要求しません。
CR-11

FN-P2

アプリは、コア機能に関連しない限り、秘密性の高いデータ([Contacts]や[the System Log]等)や、ユーザのメモリを消費するサービス(通話やSMS等)へアクセスするパーミッションを要求することはありません。

Install location
FN-L1

アプリは、通常、SDカード(アプリがサポートしている場合)にインストールされたときに機能します。


ほとんどの大容量(10MB以上)のアプリについては、SDカードへのインストールをサポートすることをおすすめします。どの種類のアプリでSDカードへのインストールをサポートするべきかについての情報は、アプリ・インストールロケーション開発者向けガイド(App Install Location) をご覧ください。

SD-1
Audio
FN-A1

オーディオは、それがコアな特徴でない限り(例えば当該アプリが音楽プレイヤーである場合等)、スクリーンがオフのときには再生されません。
CR-7

FN-A2

オーディオは、それがコアな特徴でない限り、ロック・スクリーンの背面で再生されることはありません。
(play behind the lock screen)
CR-8

FN-A3

オーディオは、それがコアな特徴でない限り、ホーム・スクリーン上やその他のアプリの上で再生されることはありません。

CR-1,
CR-2

FN-A4

オーディオは、アプリが前面に戻ってきたときに再開、またはユーザに再生が一時停止の状態になっていることをお知らせします。
CR-1, CR-8
UI and Graphics
FN-U1

アプリは、横画面と縦画面の両方をサポートします (可能な場合)。

画面方向を問わずほぼ同じ機能とアクションが表示され、機能的同等性を保ちます。コンテンツや表示の小さな変更は許容できます。

CR-5

FN-U2

アプリは両方の画面方向で全画面を用い、画面方向の変更に対応するためにレターボックス表示を用いることはありません。

画面ジオメトリの小さな多様性に対応するために若干のレターボックス表示を用いることは許容できます。

CR-5

FN-U3

アプリは、描画問題を生じることなく、画面方向の素早い変更に適切に対応します。

CR-5
User/app state
FN-S1

アプリは、そのサービスがアプリの中核的な機能に関連するものである場合を除き、アプリがバックグラウンドで実行中の場合は、いかなるサービスも動かし続けるべきではありません。

例えば、アプリは、通知(ノーティフィケーション)のためのネットワーク接続を維持するためや、Bluetooth接続を維持するため、あるいはGPSをオンにしたままにするためにサービスを動かし続けるべきではありません。

CR-6

FN-S2

アプリは、ユーザーやアプリの状態を適切に保存し、復旧します。

アプリは、フォアグラウンドから離れる際、ユーザーやアプリの状態を保存し、バック・ナビゲーションやその他の状態変更に伴う偶発的なデータ損失を防止します。フォアグラウンドに戻る際は、アプリは、編集可能なフィールドへの変更、ゲームの進行、メニュー、動画、およびアプリやゲームのその他のセクションといった、各種の保存した状態およびあらゆる重要な保留中のステートフル・トランザクションを復旧する必要があります。

  1. アプリが最近使ったアプリの一覧からレジュームされた際、アプリはユーザーのためにそれが最後に使われた際の状態を厳密に復旧します。
  2. アプリが、デバイスがスリープ (ロック中) 状態から戻った後にレジュームされた際にも、アプリはユーザーのためにそれが最後に使われた際の状態を正確に復旧します。
  3. アプリがホーム画面もしくは全てのアプリの一覧から再起動された際は、アプリは以前の状態になるべく近い状態を復旧します。
  4. Backキーが押された際には、アプリは、保存しなければバック・ナビゲーションで失われるアプリやユーザーの状態を保存するかどうかをユーザーに確認します。
CR-1, CR-3, CR-5

Related resources:

  • Making Android Apps that Play Nice — オーディオ・ライフサイクルおよび Androidアプリで予想されるオーディオの挙動について説明した開発者ブログ記事
  • Tasks and Back Stack — バック・ナビゲーションの実装方法を説明する開発者ガイド。
  • Recreating an Activity — アプリ状態の保存と復旧の方法を説明するAndroidトレーニング・クラス


Performance and Stability


高いユーザーレイティングを確保するには、アプリは、ターゲットとするあらゆるデバイス、フォームファクターやスクリーン上で、うまく機能しかつ優れた応答性を継続的に示す必要があります。こうした基準に従うことで、アプリは、ユーザーが期待する基本的なパフォーマンス、安定性、応答性を確実に提供します。



Area

ID

Description

Tests
Stability
PS-S1

アプリは、どんなターゲットデバイス上でも、クラッシュしたり、強制終了したり、フリーズしたり、その他機能異常を示したりしません。
CR-all, SD-1, HA-1
Performance
PS-P1

アプリは迅速に起動するか、あるいは、起動に2秒以上かかる場合、ユーザーに画面上のフィードバック (進行状況のインジケーターか同様のキュー表示) を提供します。

CR-all, SD-1

PS-P2

StrictModeを有効にすると (以下の StrictMode Testing を参照してください)、アプリの実行中、どんなレッドフラッシュ (StrictMode からのパフォーマンス警告) も見えません。こうしたアプリの実行には、ゲームプレイ、アニメーションや UIトランジション、アプリのその他の部分が含まれます。

PM-1
Media
PS-M1

アプリを普通に使用・ロードしている間、音楽と動画の再生はスムーズで、音が詰まったり、パチパチというノイズが載ったり、その他の歪みはありません。

CR-all, SD-1, HA-1
Visual quality
PS-V1

目立つ歪み、ブレ、或いはピクセルのずれが無いか。アプリは正しく、グラフィクス、テキスト、画像、及びその他のUI要素を表示するか。


  1. タブレットなどの大画面デバイス用も含めて、アプリは対象となるすべての画面サイズとフォームファクタのための高品質なグラフィクスを提供します。Tablet App Quality Checklist
  2. メニュー、ボタン、及びその他のUI要素のエッジで、にじんだようには表示されないことを確認します。
CR-all

PS-V2

間違いなく、アプリはテキストとテキストブロックを表示します。


  1. タブレットなどの大画面デバイス用も含めて、画面構成はサポートされているすべてのフォームファクタ上で差し支えない範囲で表示されています。
  2. 表示が欠けた文字や単語はありません。
  3. ボタンやアイコン内での不適切な文字の折り返し表示はありません。
  4. テキストと周囲の要素との間に十分な間隔があります。

Related resources:

  • Using StrictMode の使い方を解説した開発者ブログ、及びあなたのアプリ上でのパフォーマンス監視のための StrictMode の使い方。
  • Designing for Responsiveness あなたのアプリの応答速度をよくするための開発者ガイド。
  • Multithreading for Performance マルチスレッドで、パフォーマンスの向上方法を議論する開発者ブログの記事


Google Play


作成したアプリを Google Play でスムーズに販売するためには、まずアプリの評価を上げ、必ず下記内容に従ってストア内でのプロモーション準備を行ってください。



Area

ID

Description

Tests
Policies
GP-P1

アプリは Google Play Developer Content Policy に記された規約を遵守するものとします。不適切な内容や他者の特許を侵害したもの、他者のブランドを侵害したもの等は認めません。

GP-all

GP-P2

アプリの対象年齢は
Content Rating Guidelines をもとに適切に設定してください。


特にデバイスの位置情報を使用する許可が必要なものは、対象を全年齢としないでください。


GP-1
App Details Page
GP-D1

アプリの内容を判断することができるガイドラインに沿った画像を。
この Blog に掲載します. 以下の点をご確認ください:


  1. 必ず、高画質の画像を準備してください。
  2. デバイスの画像、スクリーンショット、アプリ検索用に画像サイズを縮小したうえで小さなディスプレイに表示すると読み取れないサイズの文字は使用しないでください。
  3. 広告のような画像は認めません。



GP-1, GP-2

GP-D2

アプリのスクリーンショットおよび動画は非 Android デバイスを表示または参照していません。
GP-1

GP-D3

アプリのスクリーンショットおよび動画は、あなたのアプリのコンテンツや経験を誤解を招く方法で示すものではありません。
User Support
GP-X1
Google Play ページのレビュータブ内で一般ユーザーから報告されたバグは、再発の可能性があり、多くの異なるデバイス上で発生する場合があります。バグが特定の機種だけ起こるとしても、それらのデバイスが特に人気のある、または新しいものである場合は対処しなければなりません。

GP-1

Related resources:

Setting Up a Test Environment

アプリの品質評価には、テストのために適切なハードウエアもしくはエミュレータ環境を準備してください。

重用視されるフォームファクタ(画面解像度などの物理的条件)、一般顧客が通常入手できるハード/ソフトの組み合わせを代表する、少数の実機を含めたテスト環境が理想的です。市場に出ているあらゆるデバイスでテストを行う必要はありません。代表的なものを少数検査すればよく、フォームファクタごとに1~2台で十分です。

実際のデバイスをテスト用に準備するのが難しい場合は、最も広く用いられているフォームファクタやハード/ソフトの組み合わせの代表的な設定の エミュレータ(AVDs) を準備してください。

さらに高度なテストを行うためには、追加のテスト環境としてデバイスやフォームファクタを追加したり、ハードとソフトの新しい組み合わせを試すこともできます。ほかにも、テストや品質基準の検査数や複雑さを高めてもよいでしょう。

Test Procedures

これらのテストの手順は、あなたのアプリの多種多様の品質問題を発見するのに役に立ちます。あなた独自のテストプランでテストを組み合わせたり、テストのグループを統合することができます。上記のセクションで、特定の分野が特定のテストに関連する参考資料をご覧ください。


Type

Test

Description
Core Suite
CR-0

アプリのすべての箇所を操作します-すべての画面、ダイアログ、設定、およびすべてのユーザーフロー


  1. アプリケーションでコンテンツの編集および作成、ゲーム、またはメディア再生が可能な場合は、コンテンツを作成または変更するためのこれらのフローを必ず実施してください。
  2. アプリ使用中のネットワークの接続性、バッテリー機能、GPSまたは使用可能な場所、システム負荷など一時的な変更を実施してみてください。

CR-1
アプリの各画面から、デバイスの[ホーム]キーを押して、[すべてのアプリ]画面からアプリを再起動します。

CR-2
アプリの各画面から、ご使用中の別のアプリに切り替えて、[最新]のアプリ切り替えを使用してアプリをテスト状態に戻します。

CR-3
アプリの各画面(およびダイアログ)から、[戻る]ボタンを押します。

CR-5
アプリの各画面から、デバイスをランドスケープ(横)とポートレート(縦)の方向に最低3回回転させます。

CR-6
テストアプリをバックグラウンドに送るために別のアプリに切り替えます。[設定]に行き、バックグラウンドにいる間テストアプリにサービスが実行されているかどうかを確認します。Android 4.0 およびそれ以降では、[アプリ]画面に行き[実行中]タブでアプリを見つけます。それ以前のバージョンでは、[アプリケーションの管理]を使用して実行中のサービスをチェックします。

CR-7

電源ボタンを押してデバイスをスリープ状態にしてから、電源ボタンを再度押して画面を復帰させます。

CR-8

電源ボタンを押したときにロックするようにデバイスを設定します。電源ボタンを押してデバイスをスリープ状態にしてから、電源ボタンを再度押して画面を復帰させ、デバイスのロックを解除します。

CR-9

キーボードを引き出すデバイスでは、キーボードを最低1回引き出したり入れたりします。キーボードドックがあるデバイスでは、キーボードドックにデバイスを取り付けます。

CR-10

外部ディスプレイポートがあるデバイスでは、外部ディスプレイを差し込みます。

CR-11
ノーティフィケーション通知領域にアプリが表示できる全種類の通知を表示させて観察します。必要に応じて通知を展開し(Android 4.1 およびそれ以降) 、提供されたすべてのアクションをタップしてみます。

CR-12
[Settings > App Info] で、アプリより要求された許可を検討します。
Install on SD Card
SD-1

(アプリでサポートされている場合)本体のメモリや SD カード にインストールされたアプリのインストール先を移動させてみます。


SD カードにアプリを移動するには、[Settings > App Info > Move to SD Card]を使用します。

Hardware acceleration
HA-1

ハードウェアアクセラレーションが有効になった状態で中心となる機能を繰り返します。


ハードウェアアクセラレーションを有効にするには(デバイスによってサポートされている場合)、アプリの一覧とリコンパイル時に hardware-accelerated="true"<application> を加えます。

Performance Monitoring
PM-1

以下のように StrictMode プロファイリングが有効になった状態で基本的な機能を繰り返します。ガベージコレクションのタイミングとそのユーザ体験への影響によく注意してください。

Google Play
GP-1

あなたの開発者プロファイル、アプリの説明、スクリーンショット、特色グラフィック、マチュリティ設定、及びユーザのフィードバックを見るためには、Developer Console にサインインします。

GP-2

あなたの特色グラフィックとスクリーンショットをダウンロードし、それを標的としているデバイス及びフォームファクター上のディスプレイのサイズに適合するよう縮小します。

GP-3

すべてのグラフィック資料、メディア、テキスト、コードライブラリ、及びその他のアプリや拡張ファイルダウンロードに格納された内容を見ます。
Payments
GP-4

あなたのアプリのすべての画面へナビゲートし、すべてのアプリ内購買を確認します。

Testing with StrictMode

パフォーマンスのテストのためには、あなたのアプリで StrictMode を有効にし、パフォーマンス、ネットワーク接続、ファイルの読み込み/書き出し等に影響する可能性のあるメインスレッドやその他のスレッド上での作動を把握するために使用することをおすすめします。

StrictMode.ThreadPolicy.Builder を使ってスレッドごとにモニタリング・ポリシーを設定し、detectAll() を使って ThreadPolicy 内でサポートされた全てのモニタリングを有効にすることができます。 .

penaltyFlashScreen() を使って ThreadPolicy のためのポリシー違反の visual notification が有効であることを確かめてください。