今週末ワシントン DC で開催された JSConf イベントでは、さまざまな新しい JavaScript 関連ツールがデモされ、専用のブラウザ プラグインを必要とせず、完全に HTML5 内でリッチ Web アプリを作成するという分野で、現行の Adobe Flash に新たな競争相手が登場しました。
SproutCoreのようなJavaScriptフレームワークは、本格的なウェブアプリの開発を容易にするために使用されます。Adobe Flashはウェブページにインタラクティブなアニメーション、動画、広告を追加するためだけに使われることが多いですが、SproutCoreは外部プラグインアーキテクチャを必要とせず、完全にウェブ標準に基づいたリッチインターネットアプリケーションを作成することを目的としています。
Apple は、2008 年半ばにデビューした MobileMe アプリで、SproutCore を使用して何ができるかを実証しました。SproutCore は、ユーザーが目にする高度にインタラクティブなフロント エンドを作成するために使用されました。Web アプリは最新のブラウザー内で動作し、Apple のバックエンド サーバーと通信して、メール、カレンダー、連絡先、写真ギャラリー、iPhone のリモート検出およびワイプ機能、その他の MobileMe 機能を提供します。
SproutCoreは、Appleのエンジニアやこのオープンプロジェクトに貢献する人々によって生み出された製品として進化を続けています。SproutCoreは、2005年にSprout Systemsを設立したCharles Jolley氏によって設立されました。彼はその後、2006年後半からAppleに採用され、HTML5 WebアプリとMobileMeのシニアアーキテクトを務めました。
スプラウトコアタッチ
JSConfでは、チームはHTML5を活用した一連の新ツールを発表しました。SproutCore Touchは、iPhoneとiPadのタッチイベントとハードウェアアクセラレーションをサポートしています。また、AndroidとPalmのwebOSへのサポートも拡張する予定です。
この新しいフレームワークにより、Safari、Chrome、Firefoxの標準HTML5ウェブページに、タッチ、ドラッグ、ピンチによるサイズ変更機能を簡単に組み込むことができます。Internet Explorerのバグはまだ修正中です。グループは、SproutCore Touch内で完全に作成されたiPad向けネイティブNPRアプリのウェブアプリケーション版をデモンストレーションしました。
SproutCore Touch のデモは http://touch.sproutcore.com/hedwig で入手できます。このデモでは、マルチタッチ ジェスチャの使用、勢いとバウンスのあるリストのスクロール、タッチ対応グラフィックのサイズ変更と拡大縮小、iPad の向きを認識するナビゲーション (縦向きから横向きに切り替えるときに Mail と同様に機能する) のサポートなど、サンプル ソース コードと機能例が紹介されています。
Seeds.js: JavaScript のパッケージ マネージャー
SproutCore チームは、JavaScript 開発者がコードのパッケージをライブラリとして共有する方法という問題の解決にも取り組んでいます。これは、Ruby や Python などの他の言語では一般的で簡単に実行できることです。
共有ライブラリの更新版のインストールと統合は、パッケージマネージャツールのおかげで他の環境では簡単に行えますが、JavaScriptではその領域が十分に整備されていません。これは、ブラウザで実行されるクライアントサイドコードの言語としてJavaScriptが利用されているWeb開発者にとって問題となります。
SproutCoreのソリューションはSeed.jsと呼ばれています。既存のCommonJSモジュールパターンを基盤としていますが、ユニバーサルなCommonJSモジュールランタイムとして機能する柔軟なパッケージマネージャー、JavaScriptパッケージのインストール、更新、削除、フォークのためのツール、そして様々なランタイムでコードをロードできるJavaScriptランナーが追加されています。
SproutCoreは、数ヶ月にわたりMozillaのBespinチームとSeed CommonJSランタイムの開発に取り組んでおり、「非常に満足している」と報告しています。Bespinは、HTML5、特にCanvasタグを使用して構築されたMozillaのWebベースのコードエディタプロジェクトです。
Greenhouse: Web 用のインターフェース ビルダー
SproutCoreチームは、SproutCore開発用のグラフィカルインターフェースビルダーの開発にも取り組んでいます。この新しい環境に関する詳細は不明ですが、Ajaxianのレポートには「SproutCoreはツール開発を念頭に置いて開発されました。例えば、このツールはSproutCoreアプリを読み込み、メインループを抑制し、カスタムビューにアクセスすることができます」と記されています。
SproutCoreの進歩は、Flashに投資してきたユーザーの主な主張、つまりHTML5にはコンテンツ作成を支援するツールがないという主張を覆すものです。HTML5にはプレゼンテーション指向のコンテンツを作成するための「Creative Suite」スタイルのアプリケーションはほとんどありませんが、HTML5の真の目的は自己完結型のアニメーションを作成することではなく、セマンティックなページマークアップに重点を置いた真のWebコンテンツを構築することです。このWeb本来の目的は、モバイルデバイスから特別なニーズを持つ様々なユーザーが利用できる機器に至るまで、最適化された環境に合わせてブラウザがページを解釈できるようにすることです。
つまり、Adobe のような企業が Dreamweaver のようなコード生成アプリケーションから HTML5 出力のサポートを最終的に追加する可能性がある一方で、正当な HTML5 開発の大部分は、AJAX などの新しいテクノロジーが開発されたのと同じ方法で継続されます。つまり、媒体に関係なく同じ外観のコンテンツを作成することを目的としたコードを自動的に生成するデザイナー ツールではなく、コーディング ツールを使用して開発者が構築する Web サイトになります。