[Analysis]
デスクトップにWeb開発フレームワークは流れ込むか
2009/12/14
![icon.gif](icon.gif)
Web開発で使っているプログラミング言語やフレームワークを、そのままデスクトップアプリやモバイルアプリの開発に流用しようという動きがある。ますますWeb開発の比重が高まる中、開発者たちが日々使い、日々進化しているフレームワークを使いたいというニーズが出てくるのは自然なことだ。
それぞれアプローチに違いはあるが、こうした分類に当てはまる具体的なプロダクトとして、RubyStation、Titanium、bowline、JQTouch、RHodesなどがある。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環境だ」と考えて、これを積極的にローカルで利用するという方向性はあるのかもしれない。
情報をお寄せください:
- GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (2017/7/12)
資料を作る際に、「グラフ」は必要不可欠な存在だ。今回は、「グラフの新規作成」「グラフの変更」「グラフの削除」について解説する - GET/POSTでフォームから送信された値をPHPで受け取る「定義済みの変数」【更新】 (2017/7/10)
HTMLのフォーム機能についておさらいし、get/postメソッドなどの内容を連想配列で格納するPHPの「定義済みの変数」の中身や、フォーム送信値の取り扱いにおける注意点について解説します【PHP 7.1含め2017年の情報に合うように更新】 - PHPのfor文&ループ脱出のbreak/スキップのcontinue【更新】 (2017/6/26)
素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。for文を使ったループ処理の基本とwhile文との違い、無限ループなども併せて紹介します【PHP 7.1含め2017年の情報に合うように更新】 - Spreadsheetデータの選択、削除、挿入、コピー、移動、ソート (2017/6/12)
Spreadsheetデータの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
![]() |
|
|
|
![]() |
キャリアアップ
- - PR -
転職/派遣情報を探す
「ITmedia マーケティング」新着記事
「モンスト」「ウマ娘」は安定 中華系パズルゲームに怒涛の勢いetc. 2024年のゲームアプリトレンド
AdjustとSensor Towerが共同で発表した「モバイルアプリトレンドレポート 2024 :日本版...
Xが「YouTube TV」と見た目そっくりなCTVアプリを公開 目玉コンテンツは?
動画ファーストのプラットフォームを目指すXが次なるステップを踏み出そうとしている。Yo...
「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2024年9月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...