Adobe AIRで作るデスクトップアプリケーション

第10回Adobe AIR ベータ2公開

Beta 2のダウンロード

米シカゴにてMAX 2007が開催される中、10月1日にAdobe AIR Beta 2が公開されました。Beta 1からは大きな変更点もあり、これまで作成したAIRアプリケーションはそのままでは動作しなくなっています。開発ツールもバージョンアップしているので、それらも含めて主な移行のポイントを見ていきましょう。

新しい外観のインストーラ
新しい外観のインストーラ
AIRファイルの
アイコンも変わった
AIRファイルのアイコンも変わった

AIRランタイムや開発ツールはいつものようにAdobe Labsからダウンロードできます。Beta 1とBeta 2のランタイムは共存が可能ですが、Beta 1の有効期限は2007年12月11日となっています。それまでに既存のアプリケーションの移行を進めたほうがよいでしょう。Beta 2用の開発ツールとしては、Adobe Flex Builder 3 Public Beta 2Flex 3 SDK beta 2Adobe AIR SDKAdobe AIR Extension for Dreamweaver Beta 2Adobe AIR update Beta 2 for Flash CS3 Professionalが公開されています。

なお、Flash CS3用のアップデータは前回と同じく日本語版が用意されていますので間違えないよう入手してください。インストール前には旧バージョンのアンインストールが推奨されています。以下がその手順です。

[Macintosh]
  • ドライブ名:/Applications/Adobe Flash CS3/ 以下の AIK フォルダを削除
  • ドライブ名:/Applications/Adobe Flash CS3/First Run/Commands 以下の次のフォルダ/ファイルを削除
    • AIR フォルダ
    • AIR - Application and Package Settings.jsfl
    • AIR - Package AIR File.jsfl
  • ドライブ名:/Users/<ユーザ名>/Library/Application Support/Adobe/Flash CS3/ja/Configuration/Commands/ 以下の次のフォルダ/ファイルを削除
    • AIR フォルダ
    • AIR - Application and Package Settings.jsfl
    • AIR - Package AIR File.jsfl
  • ドライブ名:/Applications/Adobe Flash CS3/Configuration/External Libraries 以下の FLAir.bundle を削除
  • ドライブ名:/Applications/Adobe Flash CS3/Configuration/ Players 以下の AdobeAIR1_0.xml を削除
[Windows]
  • ドライブ名:\Program Files\Adobe\Adobe Flash CS3\ 以下の AIK フォルダを削除
  • ドライブ名:\Program Files\Adobe\Adobe Flash CS3\ja\First Run\Commands\ 以下の次のフォルダ/ファイルを削除
    • AIR フォルダ
    • AIR - Application and Package Settings.jsfl
    • AIR - Package AIR File.jsfl
  • ドライブ名:\Document and Settings\<ユーザ名>\Local Settings\Application Data\Adobe\Flash CS3\ja\Configuration\Commands\ 以下の次のフォルダ/ファイルを削除
    • AIR フォルダ
    • AIR - Application and Package Settings.jsfl
    • AIR - Package AIR File.jsfl
  • ドライブ名:\Program Files\Adobe\Adobe Flash CS3\ja\Configuration\External Libraries 以下の FLAir.dll を削除
  • ドライブ名:\Program Files\Adobe\Adobe Flash CS3\ja\Configuration\Players 以下の AdobeAIR1_0.xml を削除

上記の作業を行わない場合は、アップデータを上書きインストールした後にクリーンアップスクリプト(Beta 1 CleanUp Script)を使って不要なファイルを削除します。クリーンアップスクリプトはアップデータと同じ場所から入手できます。これを実行するには、JSFLファイルとして保存しFlashの[コマンド]→[コマンドの実行...]から選択します。

アプリケーション記述ファイルの変更点

では、Beta 2で仕様が変更された主なポイントを追っていきましょう。まず、アプリケーション記述ファイルの書式が一部変わっています。変更点は次の通りです。

  • xmlnsの値が⁠http://ns.adobe.com/air/application/1.0.M5⁠となった。
  • <rootContent>要素が削除され、代わりに<initialWindow>要素が追加された。
  • <rootContent>要素の各属性は<initialWindow>要素の子要素になった。
  • <initialWindow>要素下の<visible>要素を省略した場合のデフォルト値はfalseになった。

以下は新しい書式のサンプルです。

<?xml version="1.0" encoding="utf-8" ?> 
<application appId="jp.anthill.SampleApp" version="1.0" 
	xmlns="http://ns.adobe.com/air/application/1.0.M5"> 
	<name>SampleApp</name> 
	<title>Sample Application</title> 
	<description>A sample application</description> 
	<copyright>(c)2007 ants Inc.</copyright> 
	<initialWindow> 
		<title>Sample Application</title> 
		<content>SampleApp.swf</content> 
		<systemChrome>none</systemChrome> 
		<transparent>true</transparent> 
		<visible>true</visible> 
		<width>640</width> 
		<height>480</height> 
	</initialWindow>
</application>

なお、アプリケーション記述ファイルとは直接関係ありませんが、アイコンとして指定できる画像フォーマットがPNGのみになっているので注意してください。

AIR APIの変更点

AIR APIも下記のように更新されています。比較的メジャーな部分の変更もありますので、既存のコードで該当する箇所があれば対応しておきましょう。

  • ByteArray.inflate()とByteArray.deflate()の両メソッドが無くなり、代わりにByteArray.compress()とByteArray.uncompress()メソッドで引数を指定する形式になりました。引数にはCompressionAlgorithm.DEFLATEまたはCompressionAlgorithm.ZLIBを渡します。
  • TransferableDataクラスとClipboardManagerクラスが無くなり、代わりにClipboardクラスを使うことになりました。クリップボードの読み書きを行う際は、ClipboardManager.accessClipboard()ではなくClipboard.generalClipboardというシングルトンオブジェクトを使います。
  • DragManager.isDraggingはメソッドからプロパティに変更になりました。
  • Doorクラスが無くなり、LoaderInfoクラスのDoor関連APIの名前が変更されました。
    • LoaderInfo.parentDoor → LoaderInfo.parentSandboxBridge
    • LoaderInfo.childDoor → LoaderInfo.childSandboxBridge
  • File APIのメソッド名がいくつか変更されました。
    • File.listDirectories() → File.getDirectoryListing()
    • File.listDirectoriesAsync() → File.getDirectoryListingAsync()
    • File.listRootDirectories() → File.getRootDirectories()
    • File.relativize() → File.getRelativePath()
    • File.resolve() → File.resolvePath()
  • NativeWindowコンストラクタのvisibleパラメータが無くなりました。NativeWindowオブジェクトを生成してからvisibleプロパティを設定することになります。
  • NativeWindowCapabiltiesクラスが無くなり、各プロパティはNativeWindowクラスに移動しました。
    • NativeWindowCapabilities.hasWindowIcon → NativeWindow.supportsIcon
    • NativeWindowCapabilities.hasMenu → NativeWindow.supportsMenu
    • NativeWindowCapabilities.windowMinSize → NativeWindow.systemMinSize
    • NativeWindowCapabilities.windowMaxSize → NativeWindow.systemMaxSize
  • Stage.windowプロパティはStage.nativeWindowプロパティに変更されました。
  • System.pause()、System.resume()、System.gc()の各メソッドは、デバッグモードでのみ有効になりました。ADLでの動作確認中はデバッグモードになります(-nodebugオプションを指定しない場合⁠⁠。
  • System.exit()メソッドはAIRでは使えなくなりました。代わりにShell.exit()メソッドを使います。
  • Beta 1までは相対URLはapp-resource:/ディレクトリを基準としていましたが、Beta 2からはSWF/HTMLコンテンツが基準となります。

Flex Builderでの変更点

Flex Builderでは新規メニューからAIRプロジェクトが無くなり、Flexプロジェクトのオプションという扱いになりました。新規にAIRアプリケーションを開発する際は、[File]メニューの[New]から[Flex Project]を選択し、続いて現れるダイアログの[Application type]で[Desktop application]を選択します。

新規に作成する場合はFlexプロジェクトを選択
新規に作成する場合はFlexプロジェクトを選択
[Application type]で[Desktop application]を選択
[Application type]で[Desktop application]を選択

また、AIRファイルの書き出しは[Project]メニューの[Export Release Version...]から行うようになっています。

書き出しは[Export Release Version...]から
書き出しは[Export Release Version...]から

デジタル署名

これまで未実装だったデジタル署名もBeta 2で実装されています。デベロッパーはAIRファイルをパッケージングする際に署名を付ける必要があります。Flex Builderの場合は書き出しウィザードの途中で、Flashの場合はAIRの設定画面内でデジタル署名を付加します。署名を付けることで、ユーザの手元のAIRファイルに改ざんが無いことを証明できます。

FlashではAIRの設定画面からデジタル署名を設定する
FlashではAIRの設定画面からデジタル署名を設定する

また、署名にはVerisignまたはThawteの発行した証明書が使えるので、AIRファイル作成者の本人確認が可能です。そうした証明書がなければ自己署名の証明書を作成して使います。この場合は誰でも署名ができますが、本人確認ができないためユーザに対しては出所が不明なアプリケーションということになります。

証明書を選択するダイアログ。自己署名の証明書は[Create...]から作成できる(Flex Builderでも同様)
証明書を選択するダイアログ。自己署名の証明書は[Create...]から作成できる(Flex Builderでも同様)

アプリケーションの開発と署名を別のマシンで行うといった場合は、署名を後で追加することもできます。その場合はAIRI(AIR Intermediate)という中間ファイルを書き出しておき、ADTで署名を追加します。

以上がBeta 2で大きく変わった点です。他にも細かい変更はありますが、上記のポイントを踏まえておけばスムーズに移行できるでしょう。

おすすめ記事

記事・ニュース一覧