2011年7月4日月曜日

Railsとスマートフォン対応

これからのサービスはフィーチャーフォンだけでなく、スマートフォンへの対応が必須だと思います。ただ、スマートフォンをもっていないため、いまいちぴんときていません。そこで、まずはiPod touchを購入して、iPhoneでの関連技術について調べてみました。

1)ネイティブアプリ
アプリといえばこれですね。有料や無料のアプリをApp Storeで展開します。Appleの審査が必要で、開発にはObjective-Cを使用します。いまはRubyに特化して開発を進めていますが、もう一つ言語を習得し、Xcodeという開発環境にも慣れる必要があります。すこし敷居が高そう。

評判のよかった下記の本を参考にすこし試してみました。
よくわかるiPhoneアプリ開発の教科書

確かにわかりやすいが、やはりObjective-Cは気持ちいいとはいえない。しかも、ローカルで動くアプリはできても、インターネットにあるサーバーとの連携は手強そうだ。これは最終手段で、何か他によい方法がないか調べてみます。

2)ObjectiveResource
ObjectiveResourceはRailsとiPhoneネイティブアプリの連携をかんたんにする仕組みです。RailsとObjectiveCのコードに少し付け足すだけで、簡単に連携ができるようになります。

しかし、どうやらiOSのバージョンアップで動作しなくようになり、しかも、開発がコントロールできていない模様。Githubでフォークされたものも試してみたが、どうも動作しない。クッキーなどのブラウザの機能に対応できているか不安になり、不採用。

3)PhoneGap
HTML + CSS + JavaScriptでネイティブアプリを開発する環境。セミナーに参加して、何者かを調べてみました。

どうやらカメラやGPSなどのiPhone特有の機能はJavaScriptをつかって制御し、見栄えをHTMLで記述するもののようです。

一番気になっていたサーバーとの連携はできないのではないかと想像しています。(検証していません)あくまでもHTMLは静的なもので、それをPhoneGapのWebViewというコンポーネントで表示しているように思えます。ということで不採用。

<PhoneGap>
http://www.phonegap.com/

4)JQuery MobileとJQTouch
Webアプリはブラウザ技術と一体で考えなければなりません。ブラウザ技術は未だに発展中ですし、Railsとの連携を前提すると、ブラウザ上で動作するものが最もリスク、コストが低くなるのかもしれません。

調べてみるとネイティブアプリ風に見せる仕組みがあることがわかりました。それが「JQuery Mobile」と「JQTouch」です。

<JQuery Mobile>
http://jquerymobile.com/

<JQTouch>
http://jqtouch.com/

RailscastsにJQTouchをつかったビデオがあったので、これを見ながら試してみましたが、最新のRails、JQueryだとアニメーションがうまく動作しませんでした。

そこでJQuery Mobileを試してみると、最新の技術でもうまくいきました。ネイティブアプリと比べると動きなどいまいちですが、まだJQuery Mobileはベータですし、今後もちゃんとサポートされていきそうなので、ひとまずこれを採用することにしました。

試していないのですが、このほかに「Titanium」「Rhodes」といったものもありました。この分野は競争が激しそう。しばらくは目が離せませんね。

0 件のコメント:

コメントを投稿