SH903i 買ってみた……ってなんじゃこりゃぁ!

今まで、同じメーカーの携帯を 2 つ使ったことがなかった。

DoCoMo
N501i→SO503i→F504i→P2102VSH901iC
au
W11K
WILLCOM
WX310SA

で、順当に行けば次は D903i あたりかな、と思ってたんだけど、待ちきれずに SH903i を買ってしまった。
薄くて大画面になったので、今のところは満足している。不満点は、小 1 つと大 1 つ。以下、愚痴。

指紋つきすぎ

黒を買ったのがいけないかもしれないが、本体は黒、カーソルキーまわりがシルバーで、背面を除く全体がツルツルしている。触れば触るほど、問答無用で指紋がついていく。新手の指紋認証ですかこれは。

デフォルトだとアプリの描画領域が狭い

WQVGA 液晶が載っているってことで、プリインストールされてるアプリもワイド対応。なんで今更モンスターハンターなのかはよくわからないけど。で、自作のアプリが動くかな〜と思って入れてみたら、上下に白いスキマが……。どうやら、デフォルトの描画領域が、QVGA 用 (240x240) になっているらしい。
アプリを作るとき、画面 (描画領域) のレイアウトをするには 2 つの方法がある。ひとつは、画面やフォントのサイズを決め打ちにして、「得点は、12 ピクセルのフォントで (10,10) に表示する」というような方法。もうひとつは、実行時に画面やフォントのサイズを取得して、表示位置や文字数を計算する方法。前者の方が作り手としては楽だけど、後者には機種によって画面やフォントのサイズが違っても適切に表示できるという利点がある。傾向としては、ゲーム系では前者が、ツール系では後者が多いんじゃないかな。
で、決め打ち方式でアプリを作った場合、後でもっと画面の大きい機種が出たときの救済策として、i アプリの ADF ファイルには DrawArea という項目がある。例えば、DrawArea=120x120 と指定しておくと、240x240 の機種では、描画領域の外側をスキマにして、画面真ん中の 120x120 の広さにだけ描画される。古いアプリを新しい機種で動かすと真ん中にちっちゃく表示されるわけだ。
一方、実行時に計算する方式のアプリでは、DrawArea を指定しないでおく。すると、本来の描画領域全体に描画できるので、新しい機種が出ても、画面全体に対して適切な描画ができる。
……というのが、今までのお約束だった。
ところが、SH903i では、DrawArea を指定しなかった場合に、本来の描画領域全体じゃなくて、240x240 になってしまうらしい。おそらく、長く続いた QVGA 時代のアプリに配慮してってことだと思う。でも、でもですよ。
上下にスキマが出ると、割とショボく見える。そこで SH903i でもちゃんと描画領域全体を使おうとすると、DrawArea に SH903i 用のサイズ指定を入れないといけない。そして、入れちゃうと、これまでの QVGA 機種では、「オレ、こんな広い描画領域ないよ」ということで、ダウンロードできなくなる。「あちらを立てればこちらが立たず」。両方に対応したければ、それぞれ別の ADF ファイルを用意しなければならなくなったのだ。
僕の場合、自分が作ったアプリでは、実行時に計算していた。被害妄想全開で言わせてもらえば、今まで DrawArea を指定するのをサボった人がいるために、自分が割りを食ったかたちになる。結構いらだたしい。とても馬鹿げた仕様だと思う。