前回までのレポートでNTTドコモ向け新iアプリ端末504iシリーズを取り上げてきましたが、その中で後回しとしていたソニー・エリクソン・モバイルコミュニケーションズ製のSO504iに触れる機会があったので、そのことについて書きたいと思います。
触れることができたのはマットブラックとビクトリアンホワイトです。両者ともマット仕上げとなっており、非常に高級感のある肌触りとなっています。また、同じ504iシリーズである松下通信工業製のP504iと異なる方向性の製品で、大きさも小さいほうとはいい難く、また重さについても同様です。しかし、大きい代わりにホールド感が十分あり、感触や操作性も十分確保されています。私がFOMAのページ「第3世代移動通信システムFOMA」でも書いたように、操作するときにはそれなりの大きさが必要であり、同時に持ち運ぶ際にはできる限り小さいほうがいい、というのが、このSO504iでも体感できたように思います。
さて、このあたりのことは他の504iシリーズと同様に一般向け携帯電話およびモバイルサイトや雑誌等で十分に語られていると思いますので、iアプリに限定して私の感想を書きたいと思います。
まず基本的な性能ですが、一世代前のSO503iと比較してかなり高速化していることが感じられました。Java仮想マシンも前機種から引き続いてアプリックスのJBlendを採用しています。このことは一部の実装クラスのパッケージ名からも伺うことができます。
2Dの機能は504iシリーズの中でも比較的多く実装されており、若干の速度の問題はありますが、従来のiアプリからは考えられないほどの表現力があります。専用にiアプリを構成することにより、かなり高度なことができます。ただし、実質的な速度面はP504iやF504iよりも劣ります。
次に504iの特色のひとつであるポリゴンの描画機能ですが..。これには少し困ってしまう制限があります。それはcom.nttdocomo.ui.Canvas
クラスのgetGraphics()
メソッドで取得したcom.nttdocomo.ui.Graphics
オブジェクトではポリゴンの描画ができないというものです。実際にはcom.nttdocomo.ui.UIException
クラスがthrowされることもなく、ただ淡々と処理が無視されます。最初、この制限に気づけず、書いたコードがポリゴンを表示してくれないことに悩みました(^^; ビューポイントが違うのか、何なのかと…。 結果はここで書いたとおりのものです。Canvas
クラスのrepaint
メソッドやその他の要因によって引き起こされるpaint(Graphics)
メソッドによって描画を行うようにコードを組み立てたところ、まったく問題なくポリゴンを描画することができました。
その他で困ったのがcom.nttdocomo.ui.Image
クラスのcreateImage(int, int)
メソッドで作成することができる描画可能なImage
オブジェクトのサイズが600ドット以内に制限されることです。このような制限はP504iとD504iにも存在しています。P504iでは一辺が256を超えるとjava.lang.IllegalArgumentException
クラスをthrowしますし、D504iでは自動的にディスプレイサイズと同じサイズ以内に丸め込みが行われます。しかし、SO504iではアプリケーションコードからはわからない形で一辺を600ドット以内に丸め込みを行います(Image
クラスのgetHeight()
メソッドおよびgetWidth()
メソッドによって取得できるサイズは指定どおりでありながら実際の描画域に対する丸め込みが行われます)。このことに気づけないと、意図しないところで描画ができない、といった不具合を作りこむことになってしまいます。
とりあえずいろいろと書いてきましたが..。全体としては「まぁ、こんなものかな」という感想を持ちました。
あともう少し書こうと思っていたのですが、時間がないので明日以降に書きたいと思います m(__)m