6/26/2012

[&] Android : Improving App Quality



Google の松内さん一押しの
Improving App Quality(アプリの品質向上)をざっと日本語にしてみました。
元は 2010年のGoogleIOのセッションと、Andoroid公式サイトのブログ記事ですが、
だいぶ補足されてまとまったものが公開されたのがこの "Improving App Quality" です。
CCライセンスなので、この日本語版も CC を継承します。

原文:
https://developer.android.com/distribute/googleplay/strategies/app-quality.html

●アプリの品質向上

何千種類もの新しいアプリがGoogle Playで毎週発表されています。
優れた見栄え、また可能な限り評価の高いアプリを見つけることが重要です。
あなたのアプリ開発のエコシステムの中で露出度を向上させる一つの方法は、
ターゲットを絞ったモバイル広告、またアプリ同士による販売促進キャンペーンを展開することです。
もう一つ、利用者の評価を確実にあげる方法は、単にアプリを素晴らしいものにすることです!
良いアプリは継続性があり長く使われます。
高品質アプリはより高いユーザー評価へと変わり、
一般的には、より高いランキングのアプリは、より多くダウンロードしてもらえ、
より長い持続性 (より長いインストール期間)をもたらします。
高品質アプリはまた、Google Playだけではなく
ソーシャルメディアバズのような予期しない良い伝搬性を持つ可能性が高いものです。
より高品質のアプリを手に入れるのが一番良いことは明らかです。
しかし、どのようにアプリを「良く」するかが、常に分かるわけではありません。
アプリの品質向上への道は常に明るく照らされているわけではありません。
「洗練」「バランスと仕上がり」とセットになった「品質」という言葉は、
いつもハッキリと定義されているわけではありません。
私たちは、アプリの品質において重要な「鍵」を考察することによって、
あなたのアプリを向上させる道を明るく照らしていきます。

●ユーザーの声を聞く
アプリの「成功」を測る方法は、ユーザーの行動です。
ダウンロード数、一日当たりのインストール数、
継続率のようなユーザーに関連する統計情報がユーザーの重要性を強調します。
もしあなたが既にそうしていないのであれば、
あなたのアプリの品質がユーザーと直結していると考え始めるのはいいことだと思います。
ユーザーの声を聞くはっきりとした方法は、
Google Playで、アプリについてのコメントを読んだりユーザーと話したりすることです。
コメントは常に生産的、あるいは建設的であるわけではありませんが、
いくつかのコメントは、あなたがこれまで気付いていなかった価値のある「気づき」をもたらしてくれます。
留意するべき大事な点は、ユーザーが彼ら自身の評価を変更し、
アプリについて好きなだけコメントできる機会があるということなのです。
ユーザーとつながり、 彼らの問題解決の手助けをする一つの方法は、
あなた自身のサポートと議論の目的を作ることです。
また、Google GroupsやZoho Discussions、 getsatisfaction.com、
そしてuservoice.comなどの優れたサポートツールを通じて直接ユーザーと連絡を取ることを可能にすることです。
一旦そのようなツールを設置したら、あなたのGoogle Play製品詳細ページの
サポートリンクに書きこむことを忘れないでください。
ユーザーはこれらをクリックして利用します。
ユーザーの声を聞くもう一つの方法は、公開ベータあるいは信頼できるテスタープログラムを持つことです。
Google Playで何かを発表する前に、
一部の人たちに実際に利用してもらうユーザーテストを行うことは非常に重要です。
ユーザーテストは簡単にできます。
ウェブサイトを通じてGoogle Play以外のユーザーにあなたのアプリを配信することができるのです。
そのウェブサイトは、会員登録を要求したり、あるいはログイン無しでアクセスさせてもかまいません。
それは全てあなた次第です。
あなたが次に計画するアップデートをGoogle Playに出す前に何人かの人々にベータ版のアプリを提供し、
この機会を利用してください。
あなたはきっと、小さくてもインパクトのある品質向上のヒントが、
実際のユーザーテスティングから出てくることに驚くことでしょう。

●安定性の向上とバグの削除
レーティングとユーザー満足度の、全体的なアプリ安定性の効果はとてもよく知られており、
あなたのアプリを異なるデバイスとユーザーシナリオでテストし、
プロファイル分析する多くのツールとテクニックがあります。
安定性の問題は注目に値し、かつ、比較的使われていないUIをテストするために
Application Exerciser Monkey (Monkey)というツールを使います。
MonkeyはあなたのアプリのアクティビティにランダムUIイベントを送り、
安定性の問題を明らかにでき、ユーザー操作向上のきっかけを与えます。
また、多くのアンドロイドデバイスに組み込まれているGoogle エラー報告機能で、
ユーザーは開発者にアプリケーションがクラッシュした状況を報告する方法があります。
エラー報告がGoogle Play Developer Consoleの集計に表示されます。
これらのレポートを読み、適切にそれらに対処するようにしてください。
最後に、バグ報告、リクエストトラッカーを用意し、そしてユーザーに知らせます。
これが、次バージョンの機能拡張とバグフィックスの元となり、より良いアプリになることを可能にします。
アプリの問題によるユーザーの不満は、こまめな不具合の追跡とコミュニケーションで効果的に対処できます。
上記のコミュニティーサポートツールのいくつかは、不具合追跡機能を提供しており、
もしあなたのプロジェクトがオープンソースである場合、
Google CodeやGitHubのような知名度のあるレポジトリサイトが同様にこの機能を提供します。

●UI 応答性の向上
あなたのユーザーを失う確実な原因は、遅くて反応の悪いUIを与えることです。
ユーザインタフェースの研究では、デスクトップ、ウェブ、あるいは携帯電話など、
どのインターフェースにもスピードが重要であることを示しています。
事実スピードは、携帯するデバイスになればなるほど重要性が増します。
それは、携帯デバイスであるほど、ユーザーが情報を常に素早く、また急いで必要としているからです。
あなたは、メインスレッドの長期実行オペレーションからワーカースレッドへ移すことにより、
アプリのUI応答性を向上することができます。
Androidはメインスレッドで、あなたのアプリのパフォーマンスとアクティビティを分析用に、
StrictModeのような、あらかじめ組み込まれているデバッグ機能を提供します。
あなたはGoogle I/O 2010で紹介されたWriting Zippyアンドロイドアプリで、
より多くのレコメンデーションを見ることができます。
UIのパフォーマンスを向上させるには、レイアウトの複雑性を最小限にすることです。
もし階層ビューアを開き、あなたのレイアウトが5階層以上であれば、おそらくレイアウトを簡単にする時期だと思います。
これらのLinearLayoutsをRelativeLayoutにリファクタリングすることを考えてください。
View objectのインパクトは累積的です。
それぞれ、約1〜2KBのメモリが必要であり、深い階層が問題の引き金になる可能性があります。
メイン(UI)スレッドをブロックするフリクエントVM garbage集合パスを引き起こします。
Google I/Oの別なセッションで、World of ListViewについてより詳しく知ることができます。
最後に、Traceview War Story、traceviewやddmsのようなツールは、
プロフィール分析やVM memory allocationsのモニタリングにより、アプリ性能を向上させる最良のパートナーになります。

Designing for Performance
http://developer.android.com/guide/practices/performance.html
Designing for Responsiveness
http://developer.android.com/guide/practices/responsiveness.html

●ユーザビリティの向上
ユーザビリティやアプリデザインにおいても、ユーザーの声を注意深く聞くべきです。
実際のAndroid携帯電話ユーザー (友人、家族など)にあなたのアプリを使ってもらい、
それを使用している様子を観察します。
どのように使えばいいか迷ってしまうケースを見つけ出します。
これらのケースを最小化するには、あなたのアプリに対するいくつかの操作を再度考え直すことです。
おそらくAndroid UIチームがGoogle I/Oで提示したユーザーインターフェースのパターンが役立つでしょう。
同じように、いくつかのAndroidユーザーインターフェースにみられる2つの問題は、
小さなタップ範囲と極端に小さいフォントサイズです。
これらは通常簡単に修正でき、ユーザビリティとユーザー満足度に対して大きな効果を与えることができます。
一般的なルールとして、使いやすさと明瞭性のバランスを最適化し、情報密度を最小化、あるいは慎重に調整します。
実社会データを基にしたユーザビリティの漸次向上のもう一つの方法は、
あなたのアプリを通してAnalyticsを特定セクションの使用ログに実行することです。
あまり頻繁に使用しないセクションをアクションバーのオーバーフローメニューに引き落とすか、
あるいはそれらを一緒に削除します。
頻繁に使用するセクションとUIエレメントについては、それらがすぐにはっきりと、
簡単にあなたのアプリにアクセスできるUIであることを確認してください。
そうすることにより、ユーザーが簡単にそれらを取得することができます。
最後に、ユーザビリティは大変広範囲にわたり、インターフェースデザイン、認知科学、
そして他の様々な専門分野と密接な関係を持つのです。

●プロフェッショナルな外観と審美性
実際のリアルインターフェースデザイナーに代わるものはありません。
携帯電話とAndroid端末をよく理解しており、インタラクションと視覚デザインの両方に長けている人物が理想です。
デザイナーの求人・求職をする人気の高い場所の一つにjobs.smashingmagazine.comがあります。
またソーシャルコネクションを向上させるTwitterやLinkedInが優れた才能を発掘することができます。
もしあなたが、UIデザイナーと協業することができないのであれば、
あなたのアプリの見た目を向上させることができるいくつかの方法があります。
まず始めに、Adobe Photoshop、Adobe Fireworks、あるいは他のいくつかのラスタ画像修正ツールに慣れることです。
これらのアプリの使用方法を習得するのには時間がかかりますが、
このスキルを得ることであなたのインターフェースデザイン能力を上げることができます。
また、フレームワーク UIとレイアウト、そして新しいリソースの書き方を勉強することで
リソースフレームワークを習得することができます。
9-パッチやリソースディレクトリのようなテクニックはAndroidに特徴的な要素であり、
これは、画面サイズにフレキシブルであるが美しいUIを作るのに非常に重要なことです。
アプリをデザインし、コードを書き進める前に、Android Design サイトを訪れ、
ビジョン、デザインパターン、そして美しく想像性あふれるユーザーインターフェースについて学ぶことを忘れてはいけません。

User Interface Design Tips
http://www.slideshare.net/AndroidDev/android-ui-design-tips

●必要な機能の正しい選択
あなたのアプリに、必要な正しい機能を持たせることが重要です。
うっかりしているとアプリに可能な限り多くの機能を持たせてしまう機能過多に陥ってしまいがちです。
最も重要な事柄、あるいは関連情報をすぐに表示することによって、
すぐに得られる満足を素早く提供することは携帯デバイスでとても重要なことです。
過度な情報を提供することはフラストレーション (あるいはそれ以上の悪い印象)につながります。
繰り返しますが、リクエストに応え、あなたのユーザーの声を聞いてください。
注意すべきことですが、ユーザーの要求に対して耳を傾けたほうがよい結果をもたらします。
リクエストは集計の点でとても有用であり、どのような機能性に対して力を入れればよいかヒントを与えてくれます。
しかし、全ての要望を実現する必要はありません。

●システムと第三者アプリの統合
快適なユーザー体験を実現する優れた方法は、オペレーティングシステムと緊密につながることです。
Home Screen Widgets、Rich Notifications、Global Search Integration、またQuick Contactsのような機能は、
この点ではかなり手頃です。
いくつかのアプリのカテゴリーでは、Home Screen Widgetsなどの基本機能はもちろん標準です。
それらを含まないことは、確実に良いユーザー体験をだめにしてしまします。
いくつかのアプリは、OSとAndroidのコンタクト、アカウント、そしてSync APIsとの、
より緊密な連携を達成することができます。サードパーティの統合は、より多くのユーザー体験を提供し、
アプリ同士が統合されているかのようなユーザー体験を与えることができます。
それはまた、たいして余分なコードを書くことをせずに、
あなたのアプリに機能性を付加する本当に良い方法です (他のアプリの機能性を活用することにより)。
例えば、もしあなたがカメラアプリを作る場合、彼らがサードパーティ製アプリケーションで
それらの写真をコレクションに保存する前に、Photoshop Expressを使って修正を可能にします。
このテーマについての詳細情報はクラスのドキュメントで入手可能です。

Designing for Seamlessness
http://developer.android.com/guide/practices/seamlessness.html

●詳細に対して注意すること
特に気をつけてほしい事は、あなたのアプリのアイコンの品質と一貫性です。
あなたのアプリアイコン(特にあなたの起動アイコン)が明快で、全ての解像度において完全であり、
そしてできる限りアイコンガイドラインに従っていることを確認してください。
もし何か問題が起きた場合、あるいはアイコンをデザインする素材やツールを持っていない場合は、
新しいアンドロイドAsset Studio ツールを使い設定素材を作ることを考えてください。

Icon Design Guidelines
http://developer.android.com/guide/practices/ui_guidelines/icon_design.html
Android Asset Studio
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html

Except as noted, this content is licensed under Creative Commons Attribution 2.5. For details and restrictions, see the Content License
(https://developer.android.com/distribute/googleplay/strategies/app-quality.html)