[Analysis]

デスクトップにWeb開発フレームワークは流れ込むか

2009/12/14

icon.gif

 Web開発で使っているプログラミング言語やフレームワークを、そのままデスクトップアプリやモバイルアプリの開発に流用しようという動きがある。ますますWeb開発の比重が高まる中、開発者たちが日々使い、日々進化しているフレームワークを使いたいというニーズが出てくるのは自然なことだ。

 それぞれアプローチに違いはあるが、こうした分類に当てはまる具体的なプロダクトとして、RubyStationTitaniumbowlineJQTouchRHodesなどがある。JavaScript、PHP、Ruby、Pythonを使ってWebアプリケーションを作成し、それをランタイムなどの環境ごとパッケージ。これをデスクトップやモバイル向けに配布して「アプリケーション」としてしまう、というものだ。多少の資源の無駄遣いよりも、手馴れた開発ツールで素早くアプリを構築したいというニーズに応える、富豪的な開発スタイルとも言える。

 原悠氏が開発した「RubyStation」は、その名の通り、デスクトップ開発にRubyが使えるアプリケーション開発のためのソフトウェアだ。Rails、Sinatra、Merb、RamazeなどRuby向けWebフレームワークを使ってWebアプリケーションを作り、後はそれをローカルで動かせば、デスクトップアプリケーションとなる。RubyStationはまだコンセプトプルーフという段階だが、アプリケーションのパッケージングと、ポート番号が80以外となる各アプリの起動・終了の面倒を見てくれるという。

 Appceleratorが開発する「Titanium」シリーズは、デスクトップ向け(Windows、Mac、Linux)とモバイル向け(iPhoneおよびAndroid)のアプリケーションを、JavaScript、HTML、CSS、PHP、Ruby、Pythonなどを使って行える開発フレームワークだ。作成したアプリケーション関連のファイルだけでなく、各プラットフォーム向けの言語処理系や各種ライブラリ(jQueryやprototype.jsなど)を、全部パッケージして配布してしまうというものだ。モバイル向けにはデバイス機能やネイティブアプリと連携するためのブリッジ・レイヤも用意されていて、「Webアプリ開発+最小限のプラットフォーム依存コード」で開発できるというのがウリのようだ。

なぜWeb開発フレームワークなのか?

 デスクトップやモバイル向けのアプリを、なぜWeb開発フレームワークで作るのか、という問いにはいくつか答えがありそうだ。

 最大のものは、ネイティブアプリは学習・開発コストが高すぎるというものだろう。iPhoneは空前のブームによって大量のアプリケーションが登場したが、これはブームによる特殊例と見るべきではないだろうか。それほどMac OS上のObjective-Cを使った開発経験者がいたようには思えない。極端な話、あなたの会社のIT担当部署が、ちょっとしたツールをiPhoneで作ってくれるだろうか、ということだ。PHPやJavaScript、Rubyであれば、ちょっとしたツールなら、すぐに作ってくれる可能性が高い。

 一般的なiPhoneアプリと遜色のないタッチUIが実現できる「JQTouch」は、ネイティブ開発を避けたいという気持ちが結実したようなプロダクトだ。名前から想像できるように、これはjQueryのプラグインだが、若干反応が遅いという点をのぞけば、JavaScript+HTML+CSSだけでiPhone独特のUIと同等のことが実現できる。すでにあるWebサービスをiPhone対応にしたいが、ネイティブ開発を行うほどコストをかけられないという場合に利用できそうだ。

 なぜWeb開発フレームワークをデスクトップで使うのかという理由のもう1つは、開発スピードだ。もともとスクリプト系言語が多用されていることとも関係があると思うが、C/C++で書かれたライブラリやミドルウェア、あるいはRESTのAPIを叩いて何か目的を達成するという仕事は、既存ツールやモジュールを糊付けする「グルー言語」(glue:のり)の性格が強いスクリプト言語のほうが向いている。かといって、こうしたスクリプト言語を使って、今さらGTK+やTcl/TkといったGUIツールキットを使いたくはない。一方、WebブラウザならHTMLを出力すればいいし、最近のWebKitなどでは、CSSを使って3D表現を行うようなことも容易にできる。もちろん、CanvasやSVGをはじめとする表現力が向上したHTML5も利用できる。

 Titaniumのようにアプリケーションにランタイムをパッケージするのなら、WebKit依存の機能を使ってはいけない理由はあまりない。WebKitなら、iPhone/Androidに加えて、今後はBlackBerryでも動く可能性が高い(RIMはWebKitベースのブラウザ開発を行うTorch Mobileを買収している)。

なぜWebサーバに置かない?

 逆に、WebアプリであればWebサーバにおけば良さそうなものを、なぜ今ごろになってわざわざローカルPCで動かすのかという疑問もある。これに対して、RubyStationを開発している原氏は、いくつか理由を挙げている。

  • サーバ代は0円ではなく、実はアプリ公開には手間とコストがかかる
  • MP3プレーヤーやファイル管理ソフトなど、ローカルPC上で動くほうが自然なものがある
  • ソーシャルの反対に“パーソナル”なものを対象とするケース。公開を前提としていない写真や家計簿などはローカルで管理するニーズがあるかもしれない
  • ブラウザUIにしておけば、あるマシンで立ち上げたアプリを、LAN内の別マシンからも使える。デスクトップアプリとWebアプリの中間

 そもそも、Chrome OSが問題提起するようにローカルPC上ではなく、クラウドにパーソナルデータも含めてすべてを置く日がくるのだとしたら、こうしたアプローチは意味がない。ただ、もともとRIAプラットフォームというもの自体、過渡的存在なのだと考えれば、「WebKitは第3のRIA環境だ」と考えて、これを積極的にローカルで利用するという方向性はあるのかもしれない。

(@IT 西村賢)

情報をお寄せください:

HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

- PR -

注目のテーマ

ソリューションFLASH

「ITmedia マーケティング」新着記事

“AI美女”を広告に起用しない ユニリーバ「Dove」はなぜそう決めたのか
Unilever傘下の美容ケアブランド「Dove」は、「Real Beauty」の20周年を機に、生成AIツー...

有料動画サービス 34歳以下では過半数が利用経験、4割は1日1回以上利用
「ニールセン・ビデオコンテンツ アンド アド レポート 2024」を基に、テレビ画面での動...

2024年のGW予算は横ばい 賃上げよりも物価高と円安の影響が勝る?――インテージ調査
インテージが全国の15歳から79歳の男女を対象に実施したゴールデンウイークに関する調査...