今回は、AIRのSDKについて説明した後、簡単なサンプルアプリケーションを作成/実行してみよう。SDKによるコマンドラインベースの開発は、前回紹介した統合開発環境を利用する場合に比べて原始的ではあるが、AIRプログラミングの基礎を理解するうえで重要だ。ぜひ一度は試していただきたい。
まず、SDKに含まれるコマンドラインツールを使用するには、バージョン1.4.2以上のJava実行環境が必要なので、こちらのページなどからJavaをダウンロードしてインストールしておく必要がある。
SDKの準備
AIR開発に使用できるSDKには2種類ある。
一つはこちらのページから入手可能なAIR SDK beta 1である。これは、HTML/JavaScriptを用いてAIRアプリケーションを作成するために使用する。
もう一つは、こちらのページから入手できるFlex 3 SDK beta 1で、こちらにはFlex開発環境のみならず、AIRアプリケーション開発用キットとフレームワークも含まれている。本連載は、Flexを用いたAIRアプリ開発を中心に解説していくので、こちらのSDKを使用する。
Flex 3 SDKをダウンロードして展開したら、binディレクトリにパスを通して各種コマンドを利用可能な状態にしてほしい。
サンプルアプリケーションの作成
環境の準備ができたら、「Hello」を表示するだけのAIRアプリケーションを作成していこう。以下のソースコードを「Hello.mxml」というファイル名で保存する(文字コードはUTF-8で保存する)。
Hello.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" title="Hello World" alpha="0.5">
<mx:Label text="こんにちは、AIR!" horizontalCenter="0" verticalCenter="0"/>
</mx:WindowedApplication>
AIRアプリケーションのエントリーポイントとなるMXMLファイルはルート要素が「WindowedApplication」だというのがポイントだ。また、alpha="0.5"
という指定により、半透明なウィンドウを作成しようとしている。
上のMXMLファイルをコンパイルし、SWF形式のファイルを作成するには、以下のコマンドを使用する。
amxmlc Hello.mxml
amxmlc
コマンドは、AIR用のFlexコンポーネントを参照するようにコンフィグレーションされたmxmlc
コマンドで、Flexソースコードのコンパイルに用いられる。このコマンドが正常に終了すると、Hello.swf
というファイルが作成されるはずだ。
次に、アプリケーションディスクリプタファイルを作成する。このファイルは、AIRアプリケーションには必須のもので、アプリケーションの各種属性を記述するために使用される。以下は、β版におけるアプリケーションディスクリプタファイルの完全なリファレンスとなっている。
Hello-app.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
ルート要素「application」
appId属性は、AIRアプリケーションを一意に識別するためのIDで、Javaのパッケージ名と同じくドメイン名をひっくり返した形式が推奨されている。
version属性は、アプリケーションのバージョンを表す任意の文字列。
-->
<application xmlns="http://ns.adobe.com/air/application/1.0.M4"
appId="jp.co.mycom.journal.examples.Hello" version="1.0">
<!-- アプリケーションの名称(必須) -->
<name>HelloWorld</name>
<!-- インストール時に表示されるアプリケーションタイトル -->
<title>Hello Worldアプリケーション</title>
<!-- インストール時に表示される説明文 -->
<description>はじめて作ったAIRアプリケーション</description>
<!-- アプリケーションの著作権情報 -->
<copyright>2007 Shumpei Shiraishi</copyright>
<!--
アプリケーションのメインコンテンツとなるファイルの指定で、SWFファイルかHTMLファイルである必要がある。
systemChrome属性は、"standard"か"none"を指定可能で、"standard"の場合はOS標準のタイトルバーが用いられる。"none"の場合は、そういったウィンドウコントロールを自前で用意する必要がある。MXMLが<mx:WindowedApplication>をルート要素に持つ場合は、デフォルトのタイトルバーが表示される。
transparent属性をtrueにすると、作成するウィンドウの透明度を変更できるようになる。systemChrome属性に"none"を指定している場合にのみtrueを指定可能。
visible属性は、デフォルトでウィンドウを表示するかどうかの指定。falseを指定した場合、ウィンドウのvisibleプロパティがtrueになるまでウィンドウが表示されない。
width属性とheight属性は、ウィンドウの幅と高さの初期値を指定する。
-->
<rootContent systemChrome="none" transparent="true" visible="true" width="200" height="150">
Hello.swf
</rootContent>
<!--
デフォルトのインストール先フォルダを相対パスで指定。
(親フォルダはプラットフォームによって異なる)
-->
<installFolder>mycom/air/examples/hello</installFolder>
<!--
アプリケーションのオリジナルアイコンを指定する場合、PNG、GIF、JPEGファイルの場所をAIRパッケージ内におけるパスで指定する。
-->
<!--
<icon>
<image16x16>icons/AIRApp_16.png</image16x16>
<image32x32>icons/AIRApp_32.png</image32x32>
<image48x48>icons/AIRApp_48.png</image48x48>
<image128x128>icons/AIRApp_128.png</image128x128>
</icon>
-->
<!--
このタグを含めておくと、appIdが同じで、より新しいバージョンのAIRアプリケーションをインストールしようとした時、アプリケーション内でそれを検知して独自のアップデート処理(カスタムダイアログを出す、など)を行うことが可能になる。
-->
<handleUpdates/>
<!--
このAIRアプリケーションに関連付けるファイルの拡張子やコンテントタイプを指定する。
Windows環境では、すでに登録済みの拡張子の場合は「右クリック→プログラムで開く」の一覧に、未登録の拡張子の場合はデフォルトのアプリケーションとして登録される。
-->
<!--
<fileTypes>
<fileType>
<name>Text File</name>
<extension>txt</extension>
<description>Text File</description>
<contentType>text/plain</contentType>
</fileType>
</fileTypes>
-->
</application>
以上のファイルを準備し終わったら、AIRアプリケーションとして実行してみよう。
システムにインストールすることなくAIRアプリケーションを実行するためのコマンドとしてadl
コマンドが用意されている。以下のように、アプリケーションディスクリプタファイルのパスを引数に与えてコマンドを実行する。
adl Hello-app.xml
実行した結果は以下の通りだ。
Helloアプリケーション。半透明なウィンドウになっているのがおわかりだろう。 |
最後に、AIRファイルにパッケージングすれば配布準備は完了だ。AIRファイルの作成には以下のようにadt
コマンドを用いる。
adt -package Hello.air Hello-app.xml Hello.swf
adt
コマンドの、-package
に続く引数は作成するAIRファイルの名称だ。続いて第二引数はアプリケーションディスクリプタファイルのパス、第三引数以降(複数)はAIRファイルに含めるリソースを指定する。
こうして出来上がったHello.air
ファイルをダブルクリックすると以下のようにインストーラが起動する。
Hello.airを起動して立ち上がったインストーラ |
最後に、AIRファイルの形式はZIP圧縮されたアーカイブファイルなので、拡張子を「zip」に変更することで中身を展開することができることをつけ加えておく。
今回は、SDKを使用した簡単なプログラミングの手法をご紹介した。次回からは、いよいよAIR ベータ版で行うことのできる先進的な機能を掘り下げて行きたいと思う。