何十億人ものユーザーに受け入れられるアプリを構築する
2016年7月25日月曜日
[この記事は Sam Dutton、Ankur Kotwal、デベロッパー アドボケート、Liz Yepsen、プログラム マネージャーによる Android Developer Blog の記事 "Building for Billions" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]
「充電してください」「ネットワーク接続がありません」「このリソースの再生に十分な帯域がありません」
こういった警告は、世界中の多くのスマートフォンに表示されています。
何十億人ものユーザーに受け入れられる製品を構築するためには、ネットワーク接続の制限や断続的な接続、端末の互換性、スクリーンの大きさの違い、高額なデータコスト、すぐなくなるバッテリーといった大きな課題に対処する必要があります。先月の Google I/O では、developers.google.com/billions や関連する Android やウェブのリソースを公開しました。それに続き、本日(訳注:原文公開日)は Android およびウェブについてのビデオ プレゼンテーションを公開いたします。
こういったベスト プラクティスは、ネットワーク接続、データプラン、端末にかかわらず優れたパフォーマンスを提供することによって、何十億人ものユーザーに受け入れられることを目指すものです。g.co/dev/billions には、次のような役立つ内容が記載されています。
ネットワークにつながりにくい状況や低価格端末に対して、もう一歩踏み込んだ検討を行うか、成功につながる展開策を考えてみてください。よいアイデアは、ぜひ Google+ に投稿してください。
Posted by Yoshifumi Yamaguchi - Developer Relations Team
「充電してください」「ネットワーク接続がありません」「このリソースの再生に十分な帯域がありません」
こういった警告は、世界中の多くのスマートフォンに表示されています。
何十億人ものユーザーに受け入れられる製品を構築するためには、ネットワーク接続の制限や断続的な接続、端末の互換性、スクリーンの大きさの違い、高額なデータコスト、すぐなくなるバッテリーといった大きな課題に対処する必要があります。先月の Google I/O では、developers.google.com/billions や関連する Android やウェブのリソースを公開しました。それに続き、本日(訳注:原文公開日)は Android およびウェブについてのビデオ プレゼンテーションを公開いたします。
こういったベスト プラクティスは、ネットワーク接続、データプラン、端末にかかわらず優れたパフォーマンスを提供することによって、何十億人ものユーザーに受け入れられることを目指すものです。g.co/dev/billions には、次のような役立つ内容が記載されています。
低速環境、中速環境、オフライン環境間のシームレスな遷移
ユーザーがある場所から別の場所に移動すると、高速な無線環境から断続的にしかつながらない環境に変わったり、データにかかるコストが跳ね上がったりします。データの保存、リクエストのキューへの格納、イメージ処理の最適化、完全オフライン状態でのコア機能の実行などによって、このような遷移に対応します。適切な状況で適切なコンテンツを提供する
ユーザーがどこでどうやってコンテンツを参照しているのか、常にその状況を意識してください。ビューポートの大きさが変わっても問題なく機能するテキストやメディアの選択、短いテキストの維持(移動中のスクロール)、コンテンツの邪魔にならないシンプルな UI の提供、冗長なコンテンツの削除などは、すべてアプリの品質に対する 認識 の向上に貢献します。それとともにデータ転送量を減らすなど、実際のパフォーマンス向上を図ります。このような対策を済ませたうえでローカリゼーション オプションを提供すると、新たなユーザー層の取り込みやリピート率の向上につなげることができます。モバイル ハードウェア向けの最適化
できる限り広いマーケットにアプリやウェブ コンテンツを提供し、それらが問題なく利用されるように、すべての主要な OS のバージョンをカバーします。さらに、対象マーケットの仮想端末や実際の端末でテストするというベスト プラクティスにも従います。ネイティブ Android アプリには、必要となる最小限の SDK と、対象 SDK を適切に設定します。さらに、低価格の携帯端末は RAM のサイズが小さいことも意識します。そのため、アプリのメモリ使用量が適切になるよう調整し、バックグラウンドでの動作も最小限にとどめます。APK サイズの最小化についての詳しい情報は、こちらのMedium の投稿をご覧ください。ウェブでは、JavaScript の CPU 使用量を最適化し、ラスター画像によるレンダリングを控え、リソースのリクエストを最小限にとどめます。詳しい情報は、こちらをご覧ください。バッテリー消費量の削減
一般的に、携帯端末の価格が安いと、バッテリーの寿命も短くなります。ユーザーはバッテリー消費レベルに敏感で、バッテリーの消費が激しいと、アプリがアンインストールされやすくなったり、サイトが閲覧されなくなったりします。ベンチマーク テストを行って他のページやアプリとバッテリー消費量を比較するか、Battery Historian などのツールを使って、長時間動き続けてバッテリーを消費するプロセスをなくします。データの集約利用
何を作る場合でも、データの集約利用は、ロード要件の理解、インタラクションに必要なデータ量の削減、ユーザーがすばやく目的の場所にたどり着くためのナビゲーションの効率化という 3 段階の簡単なステップで実現できます。ユーザーのためにデータ集約を行う(ネイティブ アプリでは、ネットワークの使用方法を設定する機能を提供することもできます)ことによって、プリペイド プランのユーザーやデータ利用料に制限のある契約のユーザーなど、データの利用に敏感なユーザーをつなぎとめることができます。また、「無制限」プランのユーザーであっても、ローミングを行ったり、予期せぬ費用が適用されたりすると、通信費が高額になる可能性もあります。ネットワークにつながりにくい状況や低価格端末に対して、もう一歩踏み込んだ検討を行うか、成功につながる展開策を考えてみてください。よいアイデアは、ぜひ Google+ に投稿してください。
Posted by Yoshifumi Yamaguchi - Developer Relations Team