x-Servlet 2.8.2 iPhone機能の紹介と応用
ご挨拶
こんにちは!フレックス・ファームBU 技術チームの鈴木です。
このほど、『x-Servlet version 2.8.2』のリリースが決定いたしました!
今回の開発にはとても深く関わっておりましたので感慨一入です。巣立ちを迎える我が子を送る親のような気持ちで、期待と不安が入り混じっております。この製品が多くのお客様のお手元に届き、たくさんの笑顔に繋がることを信じております。
と言うわけで、今回追加された新機能「iPhone対応」を、サンプルコンテンツを使用して紹介させていただきたいと思います。またさらに、この機能を応用してこんな事ができるんだと言う事を実践してみたいと思います。
iPhone 対応ってどんな機能?
そもそも x-Servlet は「コンテンツ変換エンジン」ですので、ユーザーエージェントに応じた変換をしてくれます。ただし、あくまでも「ケータイサイトを携帯で見るため」の変換なので、基本的には見栄えに影響を与えるような変換は行っていませんでした。
大きいコンテンツをフリックで簡単に移動できる iPhone にとって、携帯の画面サイズで作られたコンテンツは必ずしも「使いやすい」大きさとは言えないのです。そこで、考え出されたのが今回の『iPhone 対応』機能なのです。実際にサンプルコンテンツを見ながら説明していきます。
以下のような一般的(?)な iモードコンテンツが…(図1)
[図1]一般的なiモード対応携帯で見た様子
今までの x-Servlet をとおすと以下のようになっていました。(図2)
(※ x-Servlet をとおさないと絵文字コードの問題でエラーになることがあります)
[図2]同じコンテンツをiPhone 3GSで見た場合
ぱっと見ただけでも非常に残念ですね…。x-Servlet をとおすことにより絵文字コードのエラーは出なくなるものの、文字は小さいですし、CSS も効いておらず更に分割されている。これは、x-Servlet に「不明な機種」と認識されてしまっているためです。発売直後など、x-Servlet のユーザーエージェントの更新が間に合わなかった機種などでもサイズオーバーすることなく表示できるようにする為にこのような仕様になっています。
ですから、x-Servlet が iPhone を認識できるようにすると言うだけでも当然効果はあるわけですが、そこをさらに一歩踏み込んで考えたのが、今回の『iPhone 対応』機能です。iPhone の画面サイズやコンテンツを直接指で操作するというユーザーインターフェースを考慮して
- 画面サイズにコンテンツの表示を合わせる
- 文字の大きさを大きくする
という操作を行っています。これによる効果も言葉で説明するより一目瞭然。以下のとおりです。(図3)
[図3] iPhoneに対応した『x-Servlet Version2.8.2』をとおして見た場合
iPhone だけじゃない!?Xperia だってこうなる!
以上のような『iPhone 対応』機能ですが、実際は「指定したユーザーエージェントグループに対して、HTMLヘッダを付加する」ことを実現できるようにした機能です。x-Servlet 2.8.2 に対して、iPhone のユーザーエージェントを配信し、UAGroupSetting.xml にグループ iPhone を設定します。この iPhone グループに対してコンテンツルールを適用する形で、HTMLヘッダを出力するように出荷時の設定をしてあるわけです。このようにターゲットは狭いですが、とても汎用的な実装となっている『iPhone 対応』機能ですので、他にも様々な応用が出来てしまいます。
例えば、今話題の docomo 発のスマートフォン『Xperia』に対応させようとするとどうなるか。実際に試してみました!
ユーザーエージェント配信サーバーからは、残念ながら Xperia についての情報は取得できません。そこで staticUA.xml に Xperia の情報を追加します。そして iPhone と同様に UaGroupSetting.xml にグループを追加してコンテンツルールに HTMLヘッダ出力を適用すれば準備オーケー!元々は x-Servlet が知らない機種なので iPhone と同様に残念な画面が出力される Xperia に、最適化した設定を施すと…(図4)
[図4]Xperia X10に最適化して表示した様子
終わりに
いかがでしたでしょうか?今回は『iPhone 対応』機能と、その応用例を紹介させていただきました。今まで、ケータイブラウザにこだわってきた我々が、スマートフォン対応に乗り出したのは、偏に『時代の流れを読み、変わり続けなければならない』というスタッフ全員の思いがあるからです。今回の研究結果は当然、次期バージョンである『x-Servlet 2.9』に反映され、さらにパワーアップする計画です。ご期待ください!