hyoromoのブログ

iOS/AndroidもしくはCocos2dxネタを書いています

IS01 -AppWidgetに関して-

KDDIデザイニングスタジオIS01端末の展示が行われていたので触ってきました。
既にファーストインプレッション記事が多く上がっており、今更ですが主にAppWidget周りを見てきたので書いておきます。

Homeの特徴

解像度は960×480ですが、右側にメニューがあるためアプリが使用できる領域は854×480です。
今出回っている高解像度携帯の1画面のサイズは480×854なのに対し、IS01は推測ですが854×480くらいだと思います。端末を見るとよく分かるのですが、縦横の比率が逆になっています。
この比率の違いは、Activityには無影響ですがAppWidgetに大きく影響を与えます。本来、同じ比率だからこそスケールしたときでも同じレイアウト構成を保てているのに対し、逆比率だと意図したサイズにスケールしません。
この問題は絵を見た方が分かりやすいため、以下のように2枚の絵を用意しました。検証端末はHT-03aです。

1画面の解像度が320×480

1
AppWidget配置エリアは赤く透過させた320×400となります。
1×1サイズのAppWidgetが縦横ともに4つ配置可能なので、1×1サイズのAppWidgetサイズは80×100。

1画面の解像度が480×320

2
こちらもAppWidget配置を赤く透過させた400×320となります。
1×1サイズのAppWidgetは100×80。

つまり80×100の比率作られたAppWidgetを100×80で配置する端末で見ると、横に伸びた分だけスケールされながらも比率を守ろうとするので、100×125サイズにスケールされる事になります

「なんだそれだけかよ」と思うかもしれませんが、AppWidgetでサイズが想定外に膨れた場合は他AppWidgetエリアを侵す。。。端末がIS01のようです*1。結果、本来複数個ほど置けるハズなのに、1個しか置けなくなる場合があります。
簡単な対策は、スケールされても比率に依存されない正方形の絵を低いサイズに合わせて用意すると問題無く表示されそうです。
ただし、どうしても横解像度に合ったWidgetにはならないため違和感が生じるので、横端末用に別に作り直すのが一番綺麗な対処法ですが。掛かるコストを考えると気軽に対応できるものでは無いです。

カレンダーAppWidget系の問題

IS01にはAndroid標準のカレンダーアプリがプリインストールされていないため、明示Intentを投げているアプリは致命打を受けます。
カレンダーAppWidgetの場合、表示上は独自アプリだけど、タッチすると標準カレンダーを起動するタイプが多いため利便性が低下します。
対処方法はモデル番号を元に端末毎のプリインストールされているカレンダーアプリに対し、Intentを投げる事が開発者に出来る事だと思います。

シャープ独自AppWidget

プリインストールされている独自AppWidgetだとWidgetの重ね置きが可能なようです。
これは全てではなくそう作られたWidgetのみなため、そういった独自APIが用意されてるのだと思います。既存AppWidgetへの影響は無さそうです。

AppWidget以外のトコで感じたこと

  • setWallpaper のAPIを利用したアプリで何故か途中で落ちる。でも壁紙は設定されてるので、ACTION_WALLPAPER_CHANGEDを使ってレシーブした後に何か独自処理してるんじゃないかと思う。
  • mailがGmailerとCmailerの二つがプリインストールされていた。プリインストールアプリでの一元管理は出来ないみたい。
  • widgetが全て置き換えられていた少しカッコ良く見える反面、チェックボックスでチェックが付いてるときにBoxが緑色になるなど画面デザインに大きく影響を与えそうな事をしている*2

総合的に見てどうだったか

全体的にゴチャっとしてて何をどうすればどうなるかが分かり難く、デバイスに疎い人が初めて触っても5分と持たずに手放しそうに思えました。「スマートフォン+ネットブック=ノートブック」と言っているので、そもそも一般ユーザーをターゲティングしていないのかも知れませんがね。
開発者としては今後auから出る端末にアプリを対応させて行きたいなら持っておきたい一台となりそうです。デバイスの形状は関係なく、Au独自APIは今後も使われていくでしょうし早めにノウハウを蓄積しておいた方が良いかもしれません。

*1:標準Homeの場合は他エリアを侵さないよう指定エリア外に絵が出た場合は絵は見切れる

*2:たとえば背景が緑色の場合にチェックボックスが同化してしまう