日経ソフトウエア2008年6月号にて掲載した「特選フリーソフト170」をお届けします。Partごとにテーマを決めて,そのテーマに沿ったフリーソフトを最後のページでまとめて掲載しています。2008年6月号の付録DVD-ROMには一部のフリーソフトを収録したため,それに関する表記がありますが,ご容赦ください。また,「お役立ちフリーソフト一覧」でもフリーソフトを紹介しています。
※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。

Webの世界で発展した美しいユーザー・インタフェースをデスクトップ・アプリケーションに持ち込む「リッチ・クライアント」の動きが活発化しています。ここでは2008年2月に正式版(英語版)が登場した「Adobe AIR」のほか,「Curl」「Yahoo!ウィジェット」を紹介します。

 Webアプリケーションが広く使われるようになり,その見た目や使い勝手をより美しく,使いやすくするための技術が続々と登場しています。それをデスクトップ・アプリケーションでも使おうというのが「リッチ・クライアント」です。リッチ・クライアントの基盤ソフトとしては,米Microsoftが推進する「Silverlight」(詳しくは連載中の「Silverlightの全貌」を参照してください),デザイナ向けツールで知られる米Adobe Systemsの「Adobe AIR(Adobe Integrated Runtime)」が有名です。

 AIRは,2005年にコードネーム「Apollo」としてその存在が明らかになりました。2008年2月末にいよいよ正式版「1.0」が公開されました。1.0は英語版ですが,2008年中旬にリリース予定の次期バージョンでは日本語環境の正式サポートが予定されています。

 AIRはHTML(HyperText Markup Language),CSS(Cascading Style Sheets),JavaScript,ActionScript,Flex,PDF(Portable Document Format)といった,Webアプリケーションの技術を使って,デスクトップ・アプリケーションの開発を可能にするプラットフォームです。開発したアプリケーションはWindowsだけでなく,Mac OS Xでも動作します。今後Linuxにも対応する予定です。携帯電話への対応も計画されています。パソコンの枠を大きく超えたプラットフォームに成長する可能性を秘めているのです。

 本稿では,簡単なAIRアプリケーションを作りながら,その開発スタイルと,AIRが持つ機能の一部を紹介します。「Adobe AIR SDK」と実行環境「Adobe AIR Runtime」に基づいて説明します。これらのソフトを使って,AIRアプリケーションを作って動かしてみてください。

Adobe AIRで使えるプログラミング言語は二つ

 AIRで使えるプログラミング言語はJavaScriptとActionScriptです。JavaScriptを使う場合はHTML,CSSといったページ記述言語と組み合わせます。HTML/CSS/JavaScriptで開発できるということは,これまでWebアプリケーション開発のために身に付けた技術を応用できるということです。Ajax(Asynchronous JavaScript+XML)を利用して,動的なユーザー・インタフェースを実現することも可能です。もちろん「prototype.js」「jQuery」「Ext JS」といった各種JavaScriptライブラリも利用できます。HTML/CSS/JavaScriptを使うなら,AIRでの開発にあたって覚えなければならないことは,XML(Extensible Markup Language)ベースの設定ファイルの書き方と,AIRが独自に提供するAPI(Application Programming Interface)の使い方だけです。今回は,この方法を紹介します。

 ActionScriptを使う場合は,AdobeのWebアプリケーション開発/実行環境である「Adobe Flex」を利用できます。Flexは,動画やアニメーションを再生するプラットフォームである「Adobe Flash」を利用したものです。Flexは,ユーザー・インタフェース部品やWebサービスへの接続機能などを含む「Flex Framework」というライブラリを備えています。Flexでは,ユーザー・インタフェースの見た目をMXML(Macromedia Flex Markup Language)という言語で記述し,アプリケーション・ロジックをActionScriptで記述します。AIRアプリケーションの開発も同様の手順になります。

Webアプリケーションの制約に縛られないアプリを作れる

 AIRの特徴は,Webアプリケーションの技術を使いながら,Webアプリケーションの限界を超えるアプリケーションを作れる点です。Webアプリケーションでは,ローカル・ファイル・システムへのアクセス,クリップボード*1の操作,OS標準のウィンドウやメニュー,システムトレイの利用はほぼ不可能です。しかし,デスクトップ・アプリケーションではこれらの機能は不可欠です。そこで,AIRは独自のライブラリを用意して,表1のような機能を利用可能にしています。リレーショナル・データベース管理システム「SQLite」はAIRに内蔵されています。

表1●Adobe AIRが独自に提供する機能の例。その機能を参照するための名前も併記した。ただし,先頭に付く「window.runtime」は省略している
[画像のクリックで拡大表示]
表1●Adobe AIRが独自に提供する機能の例。その機能を参照するための名前も併記した。ただし,先頭に付く「window.runtime」は省略している

 ただし,OS標準の機能と比べて不足する部分もあります。例えば,AIRアプリケーションから別の実行ファイルを起動することはできません。レジストリの操作もできません。とはいえ,このような機能がなくても,実用的なデスクトップ・アプリケーションを作成できます。