2013年1月27日日曜日

AndroidアプリをNexus 7へ対応させるTips

EGG曽川です。

Nexus7対応についての公式アナウンスを翻訳してみました。
原文は以下のURLからです。
Getting Your App Ready for Jelly Bean and Nexus 7

翻訳に誤りやさらに良い表現が有りましたら、お知らせください。


Jelly BeanとNexus7のためのアプリの準備

Android4.1のための完全なSDKを開発者が利用可能で、SDKマネージャからダウンロードできることをお知らせいたします。
現在、新しいJelly Bean APIを使用して、API16対象のアプリを開発しリリースすることができます。
また、SDK Tools revision 20.0.1とバグ修正のみが含まれているNDK revision 8bをリリースしています。

多くの人にとって、最初に味わうJelly Beanは美しいNexus7です。
ほとんどのアプリはNexus7上で正しく動作するでしょうが、アプリを最適化したくはありませんか?
ここデバイスを最大限活用するためにアプリケーションを最適化するいくつかのTipsを紹介します。

スクリーン
Nexus7という名前を与えられたのは、7インチ画面だからです。
開発者としては、約600*960のピクセル密度でtvdpiの密度として参照してください。
Dianne Hackbornが詳述したように、この密度は驚くかもしれませんが慌てることはありません。
私たちは、驚きとこの密度の新しいリソースの作成を防ぎます。
Androidは既存のリソースをスケーリングします。
実際には全てのJelly Bean OSはtvdpiリソースのみを含み、残りはhdpiリソースから縮小されます。
システムがhdpiのリソースをtvdpiに完全にスケーリングすることを確実にするために、有効に縮小させるために特別配慮した9-patch画像を作成します。
  • 伸縮領域は少なくとも2x2ピクセルサイズであることを確認してください。そうでなければ、縮小した際に消滅する危険性があります。
  • 画像の伸縮領域の前後に、余分で安全な1ピクセルを与えてください。そうでなければスケーリング時に変更する境界で色の補間が発生します。

7インチのフォームファクタは、内容の表示のために多くのスペースを与えます。
このサイズの画面レイアウトの代替を提供するために、sw600dpのリソース修飾子を使用できます。
例えば、あなたのアプリは起動アクティビティのレイアウトを含んでいるとします。
res/layout/activity_home.xml

7インチスクリーンの余分なスペースを活用するためには、別のレイアウトを提供してください。
res/layout-sw600dp/activity_home.xml

sw600dpの修飾子は、これらのリソースが短辺が少なくとも600dpの画面を持つデバイスで利用可能であることを宣言します。

さらに、10インチタブレット用の異なるレイアウトを提供するには
res/layout-sw720dp/activity_home.xml

このテクニックは、1つのアプリケーションでコンテンツの最適なレイアウトを示すために、デバイスの構成に応じて定義されている、スイッチングポイントとして使用することができます。

同様に、携帯電話のレイアウトは7インチの画面上でうまく動作しますが、少し大きめのフォントや画像のサイズを必要とするなら、あなたは、1つのレイアウトを使用してdimensionファイルで代替サイズを指定できます。
例えば、res/values/dimens.xml はフォントサイズのディメンジョンを含んでいるとします。
<dimen name="text_size">18sp</dimen>

しかし、res/values-sw600dp/dimens.xmlで7インチタブレットの代替テキストのサイズを指定することができます。
<dimen name="text_size">32sp</dimen>

ハードウェア
Nexus7は多くの携帯電話と異なるハードウェア機能を持っています。
  • 電話機能がない
  • 1つのフロントカメラ(android.hardware.cameraを要求するアプリはNexus7では利用できません。)

宣言した(または暗黙で)システムの機能は、アプリケーションの実行時に要求する、またはPlay StoreがNexus7ユーザに利用できないことを示すことに注意してください。
あなたのアプリにとって重要でないハードウェア機能は常にrequired="false"として宣言することで、機能が存在するかどうか実行時に検出し、機能的に広い人に使ってもらうようにします。
例えば、アプリがカメラを使用するが動作に必須でない場合、これを宣言します。



詳細については、Reto MeierのFive Steps to Hardware Happinessを参照してください。

結論
Nexus7はJellyBeanが付属しており、更新された一揃いのシステムアプリは新しいJellyBeanのAPIを活用するために構築されています。
これらのアプリは、あなたのアプリを判断にするにおいて標準のものです。これらのアプリに従っているか確認してください。

アプリが通知を表示する場合は、新しいリッチな通知スタイルの利用を考慮してください。
没入型コンテンツを表示している場合は、システムUIの外観を制御してください。
オプションメニューを使用している場合は、アクションバーのパターンを使用してください。

多くの作業がJellyBeanはバターのような滑らかな作りになっています。
アプリが同様になっていることを確認してください。
ハードウェアアクセラレーションレンダリングをオプトインしていない場合は、今すぐ実装しテストしてください。

Android4.1の詳細については、Android Developersサイトをご覧になるか、Liveに参加してください。

0 件のコメント:

コメントを投稿