カテゴリー別アーカイブ: AIR

FxUG 全国ツアー 2010 発表資料

FxUG 全国ツアー 2010 で発表した資料をアップしました。

熊本、沖縄 ( スライドとデモ )
http://labs.taiga.jp/presentationMaterial/FxUG/FxUG11520100703Slide.pdf
http://labs.taiga.jp/presentationMaterial/FxUG/FxUG11520100703Demo.zip

東京 ( スライド )
http://labs.taiga.jp/presentationMaterial/FxUG/FxUG11920100728Slide.pdf

フォントのライセンスや大人の事情により、公開しているデモは Ajax 版のソースのみです。ご了承ください。

Touch Viewer v1.1 released

先日公開された Adobe AIR 2 Beta 2 に対応した Touch Viewer v1.1 をリリースしました。
下記 URL より取得できます。

http://www.adobe.com/jp/joc/air2/samples/

インストール時の注意ですが、自動アップデート機能に対応していないので、旧バージョンをインストールされている方は、事前にアンインストールする必要があります。

なお、ソースコードは、Google Code にて公開しています。

現バージョン (v1.1) のソース
http://touchviewer.googlecode.com/svn/trunk/

旧バージョン (v1.0) のソース
http://touchviewer.googlecode.com/svn/tags/release_1.0/

Adobe AIR Day イベントレポートを寄稿しました

スピーカー / 写真撮影 / 記事執筆と、一通り携わらせていただいた Adobe AIR Day のイベントレポートが、Adobe イベント・セミナー レポートページに掲載されました。

Adobe AIR Day イベントレポート
http://www.adobe.com/jp/joc/events/airday/

今まで書いてきた記事の中で、過去最多ページ数のレポートになりました。
当日イベントに参加できなかった方はもちろん、参加された方にも是非見ていただけばと思います。

AIR 2.0 用ネイティブインストーラ生成 Ant 設定ファイル

Touch Viewer リリース後に作った副産物ですが、Win/Mac 両対応するように強化したので晒しておきます。

下記画像のような Flex プロジェクトのフォルダ構造を保っていれば、build.xml を実行するだけで、各 OS に対応した .exe や .dmg を書き出すことができます。

Flash Builder 4 β 2 で作成したサンプル Flex(AIR) プロジェクト

<?xml version="1.0" encoding="utf-8"?>
<!--
build.xml
-->
<project name="≪ プロジェクト名 ≫" basedir="." default="init">

   <condition property="os" value="≪ Flex SDK のフルパス (Windows) ≫">
       <os family="windows" />
   </condition>
   <condition property="os" value="≪ Flex SDK のフルパス (Mac) ≫">
       <os family="mac" />
   </condition>

   <condition property="suffix" value=".exe">
       <os family="windows" />
   </condition>
   <condition property="suffix" value=".dmg">
       <os family="mac" />
   </condition>

   <property name="FLEX_HOME"           value="${os}"                                  />
   <property name="ADT.JAR"             value="${FLEX_HOME}/lib/adt.jar"               />
   <property name="AIR_CONFIG"          value="${FLEX_HOME}/frameworks/air-config.xml" />
   <property name="FLEX_TASKS_JAR"      value="${FLEX_HOME}/ant/lib/flexTasks.jar"     />
   <property name="APP_ROOT_DIR"        value="src"                                    />
   <property name="ASSET_DIR"           value="asset"                                  />
   <property name="ICON_DIR"            value="${ASSET_DIR}/icon"                      />
   <property name="APP_NAME"            value="${ant.project.name}"                    />
   <property name="AIRI_NAME"           value="${APP_NAME}.airi"                       />
   <property name="DESCRIPTOR_NAME"     value="${APP_NAME}-app.xml"                    />
   <property name="NATIVE_APP_NAME"     value="${APP_NAME}${suffix}"                   />
   <property name="SWF_NAME"            value="${APP_NAME}.swf"                        />
   <property name="APP_ROOT_FILE"       value="${APP_ROOT_DIR}/${APP_NAME}.mxml"       />
   <property name="APP_ROOT_DESCRIPTOR" value="${APP_ROOT_DIR}/${APP_NAME}-app.xml"    />
   <property name="KEYSTORE"            value="≪デジタル証明書ファイル名≫.p12"       />
   <property name="STORETYPE"           value="pkcs12"                                 />
   <property name="STOREPASS"           value="≪デジタル証明書のパスワード≫"         />

   <taskdef resource="flexTasks.tasks" classpath="${FLEX_TASKS_JAR}" />

   <target name="resources">
       <copy
           file   = "${APP_ROOT_DESCRIPTOR}"
           tofile = "${APP_NAME}-app.xml"
        />
       <replaceregexp
           file    = "${APP_NAME}-app.xml"
           match   = "<content>.+?</content>"
           replace = "<content>${APP_NAME}.swf</content>"
        />
       <copy toDir="${ICON_DIR}">
           <fileset dir="${APP_ROOT_DIR}/${ICON_DIR}" />
       </copy>
   </target>

   <target name="amxmlc" depends="resources">
       <mxmlc
           file                       = "${APP_ROOT_FILE}"
           output                     = "${SWF_NAME}"
           configname                 = "air"
           actionscript-file-encoding = "UTF-8"
           incremental                = "true"
           debug                      = "false"
           optimize                   = "true"
           target-player              = "10"
       >
           <load-config filename="${AIR_CONFIG}" />
       </mxmlc>
   </target>

   <target name="prepare" depends="amxmlc">
       <java jar="${ADT.JAR}" fork="true" failonerror="true">
           <arg value = "-prepare"           />
           <arg value = "${AIRI_NAME}"       />
           <arg value = "${DESCRIPTOR_NAME}" />
           <arg value = "${SWF_NAME}"        />
           <arg value = "${ICON_DIR}"        />
       </java>
   </target>

   <target name="package" depends="prepare">
       <java jar="${ADT.JAR}" fork="true" failonerror="true">
           <arg value = "-package"           />
           <arg value = "-storetype"         />
           <arg value = "${STORETYPE}"       />
           <arg value = "-keystore"          />
           <arg value = "${KEYSTORE}"        />
           <arg value = "-storepass"         />
           <arg value = "${STOREPASS}"       />
           <arg value = "-target"            />
           <arg value = "native"             />
           <arg value = "${NATIVE_APP_NAME}" />
           <arg value = "${AIRI_NAME}"       />
       </java>
   </target>

   <target name="clean" depends="package">
       <delete dir  = "${ASSET_DIR}"       />
       <delete file = "${AIRI_NAME}"       />
       <delete file = "${SWF_NAME}"        />
       <delete file = "${SWF_NAME}.cache"  />
       <delete file = "${DESCRIPTOR_NAME}" />
   </target>

   <target name="init" depends="clean" />

</project>

Adobe AIR 2.0 beta サンプルアプリケーション

昨日、Adobe Labs にて Flash Player 10.1 と AIR 2.0 のパブリック beta 版が公開されましたが、このリリースに併せて、日本のアドビのサイトより、AIR 2.0 beta のサンプルアプリケーションと解説記事が公開されました。
http://www.adobe.com/jp/joc/air2/samples/

私も、サンプルアプリケーション開発と記事執筆に携わっています。
http://www.adobe.com/jp/devnet/air/articles/touchviewer.html

元々、先月 (10/31) と今月 (11/5) に行われた FxUG 勉強会 ( 熊本、東京 ) のために用意していたサンプルアプリだったのですが、アドビさんのご厚意により、今回の公開に至りました。

また、来週 (11/26) に Adobe AIR Day という AIR 2.0 beta のお披露目イベントがありますが、その場で開発 Tips やデモを行います。平日のお昼から開催されるイベントですが、興味のある方は是非お越しください。

Adobe AIR Day
http://www.info-event.jp/adobe/air/

ちなみに、Mac 版のサンプルアプリケーション (Touch Viewer) には、『タイルのリストを選択したとき、2 回目以降に開いたネイティブウィンドウからジェスチャーイベントを取得できない』という既知のバグがあります。ランタイムの問題か SDK の問題か定かではありませんが、現在問合わせ中です。

Adobe AIR コード署名証明書を取得しました

証明書付き AIR アプリケーション インストールダイアログ

Adobe AIR の署名に日本国内で唯一対応している証明機関は GMO グローバルサイン株式会社なのですが、残念なことに個人/個人事業主からの申し込みは受け付けられないようです。 ( 2010 年 3 月 3 日追記 : この記事を書いた時点での内容です。現在、GMO グローバルサイン株式会社でも、個人向けの証明書の発行が可能になっています。 )

なので、私のような個人事業主がコード署名証明書を取得するためには、海外の証明機関に申請する必要があります。

証明機関に関する情報は Adobe AIR のヘルプに記載されていますが、Ryan Stewart 氏のブログを読む限りでは、 Chosen Security 社がおすすめらしいので申し込んでみました。以下手順になります。

  1. Chosen Security 社の AIR コード署名証明書購入ページを開きます。
    http://www.chosensecurity.com/tc-publisher-id-for-adobe-air

  2. [Buy TC Publisher ID for Adobe Air for Individual Developers] をクリックして購入手続きへ移動します。

  3. 必要な情報を入力して決済手続きを終えると、入力メールアドレス宛に 2 通メールが届きます。 ( 1 通は個人識別番号 (PIN) が記載されたメール、もう 1 通は証明書発行申請 PDF ファイルが添付されたメール )

  4. 証明書発行申請 PDF ファイル内記述箇所に必要な情報を入力して、メール本文に記載されている ChosenSecurity Support のメールアドレス宛に送付します。 ( 添付 PDF が送られてくるメールアドレスとは異なるので、注意が必要です )

    証明書発行申請 PDF ファイルの記述例をアップしておきます。( 記述例はこちら )

    メールの本文に悩む方は、下記文章を参考にしてください。

    Dear Sir/Madam

    I request a TC Publisher ID for Adobe AIR.
    Please confirm an attached PDF file.


    Sincerely,
  5. Chosen Security 社の担当者から、証明書発行申請の受理通知メールが届きます。

  6. 2 営業日くらいで、証明書ダウンロードサイトの URL が記述されたメールが届きます。

  7. 個人識別番号 (PIN) を入力すると、証明書をダウンロードすることができます。
    この個人識別番号 (PIN) は、AIR ファイルを書き出すためのパスワードにもなります。

以上で、怪しい「オレオレ証明書」付きの AIR アプリケーションともサヨナラです。
自分の作った AIR アプリで、以下のような画面を晒すこともなくなります。

オレオレ証明書付き AIR アプリケーション インストールダイアログ

参考

[告知] Adobe AIR クックブックの監訳を担当しました

Adobe AIR クックブック
オライリー・ジャパン : Adobe AIR クックブック

オライリー・ジャパンから Adobe AIR の本が、2009 年 8 月 1 日 ( 土 ) に発売されます。
ヒム・カンパニーの永井勝則さんが邦訳されている書籍ですが、私も FxUG の一員として、監訳作業に携わらせていただきました。

AIR アプリケーション未経験者でも読みやすい内容になっていると思いますので、興味のある方は手に取っていただけると幸いです。

ADC に寄稿しました (AIR ThermoHygrometer)

AIR コンテストに出品した AIR ThermoHygrometer の開発手法についての記事が、ADC(Adobe Developer Connection) 内 Adobe AIR デベロッパーセンターに掲載されました。

デバイス連動 AIR アプリケーション開発手法

以前、FxUG の勉強会で使用した資料を元に整形して、喋った内容を細かく文章化した内容になっています。