Joshfire Framework
マルチデバイスフレームワークといえば、
XMLなどの中間データをデバイスに合わせてレンダリングするのが一般的でした。(そういえばXSLT使ってHTMLを生成するといった今となっては非現実的な製品に苦しめられたことももありました。懐かしい。)
専用フレームワークを使わない方法では、MVCアーキテクチャのViewをUserAgentに合わせて切り替える方法がありますが、いずれにしてもサーバサイドでHTMLをレンダリングするのが従来のやりかたでした。
Joshfireはそれとは異なり、すべてJavaScriptでクライアントサイドでレンダリングする。デバイスに依存して異なるJSが動作することによって、マルチデバイスを実現しています。
当然JavaScriptが動作しない環境では動作しないので、普通のケータイでは使えない。逆にJavaScript環境とは何でも連携できるしくみになっていて、Android、iOS、GoogleTVなどの今風端末に加えて、Node.jsとの連携もできる。
レンダリングだけではなく、ユーザーアクション(UIイベント)に対する枠組みも用意されていて、スクロールイベントなど、デバイス特有のイベントにも対応。jQueryなどのUIコンポーネントとの連携も簡単なようです。
チュートリアルをやってみるとわかるのですが、結構手だれのJavaScripterじゃないとサンプルが読めないのではないか?とか、APIやルールがちょっと複雑っぽい?とか、やや敷居が高そうではありますが、jQueryをサラッと使いこなしちゃうくらいのデザイナーならなんとかついて行けるレベルかもしれません。
使いどころは、Web APIで無理なく表現できる程度に簡単なデータに対して、PCやタブレット、スマフォでグリングリンしたいケース。
Web APIはJSON形式でRails3実装、煩雑なJoshfireコードはCoffeeScriptで簡潔に、とか想像してみると、かなりおしゃれなサクサク感たっぷりのアプリと開発環境が出来上がるような妄想が働きます。(このわくわく感を形にできるアイディアは私にはまだナイですが ;x;)
Node.jsによるサーバーサイドアプリケーションの使いどころが想像つかないですが、Arduinoとの連携や、JoshfireのWebサイト自体のソースでNode.js Adaptorが利用されているようなので、あとで把握しておきたい。
ビジネスをしている人の意見はおそらく、「現時点でケータイを捨てるなんて考えられない」と思います。が、マルチデバイス対応となると、どうしてもスペックの低い方(例えばケータイ)に合わせた設計に縛られがちになって、結果的にツマラナイものになっていたという事実。は確実にあると思う。
JavaScript非対応端末を「捨てる」ことによるメリットは大きいのかもしれない。と、頭に入れておきたい。