Adobe AIR をはじめよう
開発環境として、Flash、Flexとかあるけど、今慣れているjavascript+HTMLでやってみよう。
日本語のリソースがまだ少ないので、基本的なところからまとめてみる。
環境はとりあえずwindows。
とりあえずHello world
アプリ作成に必要なリソースは最低限2つ。
- アプリケーション記述ファイル(application descriptor)
- ルートアプリケーションファイル(html)
descriptorのほうはxmlファイルで、アプリケーションとして必要な情報が書かれている。SDKのtemplateディレクトリの下にテンプレートがあるが、必要最低限のものを書くとこんな感じ。
<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://ns.adobe.com/air/application/1.0"> <id>jp.wakufactory.test.hw</id> <name>AIRHelloWorld</name> <version>1.0</version> <filename>hw</filename> <description>Simple Hello World Example using HTML</description> <copyright>wakufactory</copyright> <initialWindow> <title>AIRHelloWorld Installer</title> <content>hw.html</content> <systemChrome>standard</systemChrome> <transparent>false</transparent> <visible>true</visible> <width>500</width> <height>500</height> </initialWindow> </application>
ルートアプリケーションは、メインとなるhtml。hw.htmlという名前で作成。
hello worldはこんなの。javascriptは何もない。
<html> <body> <h1>Hello World</h1> </body> </html>
このhw.xmlとhw.htmlの2つのファイルを作成し、実行してみる。
実行は、SDKのadlコマンドを使う。コマンドラインから、
>adl hw.xml
のようにすると、ウインドウが開きHello Worldが表示される。
これでAIRのランタイムを使ってhtmlが表示されたことになる。もちろん、htmlにjavascriptを組み込んで動かすこともできる。
インストールパッケージを作る
adlで動作確認できたところで、インストールパッケージを作ってみる。
パッケージ化には、電子署名が必要になる。本来ならば認証機関から発行してもらうのだが、ここではオレオレ署名でやる。
署名を作成するには、SDKのadtコマンド(中身はバッチ)を使う。
>adt -certificate -cn wakufactory -o wakufactory 1024-RSA wakufactory.pfx password
wakufactorとpasswordのところは適当に変えて。これでwakufactory.pfxという署名ファイルができる。以降パッケージ化にはこのファイルを使う
パッケージ化コマンドは、
>adt -package -storetype pkcs12 -keystore wakufactory.pfx -storepass password hw.air hw.xml hw.html
storepassでは、署名を作成したときのパスワードを指定する。
作成されるパッケージファイルはhw.air、その後にアプリケーション記述ファイルと、ルートアプリケーョシンファイルを指定して、その他に必要なファイルがあれば列挙する。
これで、hw.airというファイルが作成されれば、これが配布可能なインストールパッケージになる。
AIRのランタイムがインストールされていれば、hw.airをダブルクリックでインストールが始まる。認証機関による署名が無い、という警告が出るが無視してインストールする。
これで晴れて、独立したフツーのアプリケーションが作成できた。
簡単でしょ。
ドキュメントまとめ
javascriptでAIRアプリを作るのに必要なドキュメント類をいろいろ探してみた。
これを一通り読めば、開発の最初から各種tipsまで分かるはず。
- 日本語のチュートリアル
β版をベースにしているので、バージョン1.0とかなりいろいろ違うところがあるので注意。
AIRアプリのネイティブ機能を使うためのAPIリファレンス。ブラウザでのjavascript+DHTML以外の部分。