HTMLでユーザー・インターフェースを構築するWebアプリケーションは既に様々なシステムで利用されているが,最近になって,デスクトップ・アプリケーションにも同じHTML化の波が押し寄せてきている。その一例が,Windows Vistaに実装される新機能の1つ「ガジェット」だ。

 ガジェットは,Windows Vistaのサイド・バーに格納したり,デスクトップに置いたりして利用する小型のツールである(図1)。Windows Vistaには標準で,時計やCPUメーター,タイマー,電卓,付箋など,いくつかのガジェットが用意されている。さらに,「Microsoft Gadgets」のWebサイトでもいくつかの追加ガジェットが公開されている(Windows Vistaのガジェット・ギャラリからアクセス可能)。

図1●Windows Vistaのガジェット。サイド・バーに格納したり,デスクトップに置いたりして使える。画面中央はガジェット・ギャラリ

 このガジェットは,HTMLでユーザー・インターフェースを構築し,処理内容をJavaScriptで記述するような仕組みである。そして,ガジェット用の専用オブジェクトが用意されており。それらのオブジェクトから,例えば「サイド・バーに格納された」などのイベントが取れる。ファイル操作も可能だ。それらのオブジェクトを操作することで,プログラムを構築する。

 実は,ベータ2以前のWindows VistaのCTP版では,.NET Framework 3.0に含まれる「WPF(Windows Presentation Foundation)」と呼ぶGDI(Graphics Device Interface)に代わる新しいユーザー・インターフェース用APIを利用して,ガジェットを作るようになっていた(ちなみにMicrosoftは,これまで「WinFX」と呼んでいたAPI群の名称を,「.NET Framework 3.0」に最近変更した)。WPFからHTMLへと仕様を変更したのは,HTMLベースの方がユーザーにとって開発しやすいからだという。

 確かに,WPFを利用したのでは,Visual Studioのような専用のデザイナ(ユーザー・インターフェース構築ツール)を備えた開発ツールを使わないと,ユーザー・インターフェース周りを作るのは大変だ。それ以前に,80年代/90年代からプログラミングの経験があるユーザーならともかく,これからプログラミングをしてみようかというユーザーにとっては,コンパイラ言語を利用する時点でハードルが高くなってしまうだろう。

 その点HTMLなら,各種オーサリング・ツールがあるのでユーザー・インターフェースの構築にはそれらのツールを使える。慣れれば,テキスト・エディタだけでユーザー・インターフェースを構築できるかもしれない。コードはJavaScriptなので,コンパイルする必要がない。つまり,メモ帳などのテキスト・エディタさえあれば開発でき,プログラムを記述したらすぐに動かして試せる。8ビットPC時代のROM BASIC感覚でプログラミングできる。

 ちなみに,Windows Vista ベータ2版は,一般のユーザーにも広く配布されている。もしもWindows Vistaを動かしてみる機会があれば,「C:\Program Files\Windows Sidebar\Gadgets」フォルダを見てほしい。このフォルダの中に,Windows Vistaに標準で付属する各ガジェットの本体が格納されている。

 例えば,「Clock.Gadget」フォルダ内には,「images」フォルダと「ja-JP」フォルダがある。「images」フォルダには,時計を表現するために必要な文字盤や針などの各画像が格納されている。そして「ja-JP」フォルダには,設定ファイル「gadget.xml」と,プログラム本体のHTMLファイルが格納されている(時計ガジェットの場合は,JavaScriptのコードは,「js」フォルダ内に別ファイルとして分離されている)。ソース・コードを見ると分かるが,処理内容は,現在時刻を取得し,それに応じて回転させた針の画像を,文字盤の画像の上に重ね合わせて表示する,というものだ。ソース・コードがそのまま見えるので,プログラミングの教材にも適している。

 なお,プログラミング方法やオブジェクトのリファレンスは,先に紹介した「Microsoft Gadgets」のWebサイトに書かれている。ITproTechでも,ガジェットの簡単なプログラミング方法を紹介する予定である。