Flash Catalyst/Flash Builder4ベータ公開イベント

若干遅めを承知で、七夕に行われたFlash Catalyst/Flash Builder4ベータイベントの感想を書いてみます。
イベントは、大崎にあるゲートシティで行われました。

第一部 Adobe Flash Platformの概要とロードマップ

はじめに、AR(拡張現実)の紹介がありました。
http://www.livingsasquatch.com/
今のプレーヤーでもいろいろできるよ!っていうことを見せるデモのようでした。

今後のプロダクトラインについて

の3つを製品として出していくということでした。
現行のFlashも製品としては継続するので、タイムライン派も安心。

プレーヤーのシェア

FlashPlayer 10 75%(2009/3)
FlashPlayer9は98%ぐらいありました。

次回AdobeMax

2009年の10月4日から、AdobeMaxがはじまるそうです。
Adobeがツアーを組むそうです(特典として、Adobe本社でセッションが受けられるそうです)

第二部 Flex4 SDKの新機能

Flex4のSDKと、それを取り巻く環境についてのセッションでした。

デザインとロジックの分離

「spark」から始まるパッケージに、新しいコンポーネント郡が追加されました(通称Sparkコンポーネント
従来のmxから始まるHelo(ヘイロー)コンポーネントモデルが

 AS(Component&Skin)
  ->グラフィックス、レイアウト、アニメーション
     パーツ、ステート、ビヘイビア、ロジック、データ

という構成なのに対して、Sparkコンポーネント

 AS(Component)->ビヘイビア、ロジック、データ
   ↑
 CSSプロパティ
   ↓
 MXML(Skin)->グラフィック、レイアウト、アニメーション、パーツ、ステート

という分離構造になっているそうです。


分離構造にすることで、見た目とロジックの分離と、あとコンパイルパフォーマンスの向上を狙っているのかと思います。

MXML2009

ネームスペースが変更になっています。
1つのMXMLファイルごとに1つのネームスペースに統一するためだそうです。
(ただし古いネームスペースと共存は可能)

 mlns:fx="http://ns.adobe.com/mxml/2009" 
  ->MXML言語タグ(Script,Style) ビルトイン(Array,String,Number)
 xmlns:s="library://ns.adobe.com/flex/spark" 
  ->Flex4クラス、RPC,Graphics
 xmlns:mx="library://ns.adobe.com/flex/halo" 
  ->今までのもの
古いコンポーネントも、ネームスペースを追加すれば利用可能だそうです。(SparkとHaloの共存可能)
FXG

おそらくこれが目玉と思います。
FXGというのは、MXMLベースのグラフィックスファイルフォーマット(かつコンパイルタイム言語)で、色、形、サイズ、フィルター、拡大縮小などをMXML形式で保存できます。
形式がMXMLなのでCatalyst/FlashBuilderでそのまま表示出来、逆にCatalystから出力したFXGはそのままイラレ/フォトショップで編集可能。
Ae,Ai,Fw,PsからFXGをエクスポート/インポートすることが可能。
このファイルを使って、Flash(Flex)とのデータ交換が可能になります。

デベロッパーの生産性

デベロッパーの生産性向上のための改善について

コンパイラパフォーマンス

コンパイラのパフォーマンスを向上させたとのことです。
(ただし、後から聞いたところSparkコンポーネントコンパイルだけ最適化したそうで、従来のは変わらないそうですorz)

2-way binding

データとコンポーネントの双方向をSparkでサポートしたとのこと。
でも、使うのかなぁ。

CSSの改善

CSSセレクタが詳細に書けたり、ネームスペースを使ったり出来るようになっていました。

フレームワークの進化

FlexFrameworkの進化について。

ステート・エフェクト・レイアウト

ステートをより柔軟に書ける様にしたそうです。
あとレイアウトマネージャーの考えをとりいれて、自分でレイアウトを書ける様になっていました。
デモでは、ロールオーバー複数アイコンが縦に並ぶというのを、レイアウトマネージャーの変更でジーニーレイアウト(Macのトレーアイコンみたいな、左曲がりで縦に並ぶやつ)が出来るというのを見せていました。

MXMLは、

 <Group>
  <layout>
   <Tilelayout>//レイアウトを書く
  <layout>
  <button> //この下にコンポーネントタグを並べる
  <button>
  <button>
 </Group>

というような記述をしていました。
Groupタグ中のコンポーネントがlayoutで定義したレイアウトマネージャーに渡ってくるので、それで位置調整とかをするようなイメージ。

高精度テキスト

Adobe InDesignから持ってきたエンジンを搭載したそうで、高精度な版組みが出来るようになっていました。
News weekの新聞購読用のAIRアプリをデモしていましたが、確かにきれいに版組みできていました。

 FTE:新しい低レベルテキストエンジン(Player10)
 TLF:FTE上に実装したテキストレイアウト 段組などできる
新たなビデオコンポーネント

高画質的なやーつ。

スキン

FXGを使って、スキンがMXMLで書けるようなりました。ステートや動作も記述できます。
sparkコンポーネント用に拡張したものと思います。

第三部 FlashCatalystのご紹介

デザインツールCatalystで、FXGフォーマットを介して相互にデータ交換が可能というのを強調していました。
CatalystはデザインとFlashBuilderをつなぐような立ち位置のソフトで、デベロッパー・デザイナーいずれも使えるようにしてあるイメージでした。


Catalystは、以下のような利用シーンを想定しているみたいです。

 アプリケーションUI
 製品ガイド
 Widget
 教育
 プロトタイプ
デモ

イラレ、フォトショでつくったファイルをCatalystに読み込み、Flexコンポーネントに変換するデモ。


イラレで作ったボタンをコピペでCatalystにインポートー>Buttonコンポーネントに変換。
変換時に、Buttonの各ステート(マウスオーバーとかdisableとか)に割り当てるイメージを指定すると、そのままButtonコンポーネントとして機能していました。(同様にスライダーバーも作成していました)
またButtonに変換後も、その画像をイラレ/フォトショップで修正できるでもがありました(Catalystの右クリックメニューから、「イラレで修正」とかってやると、その場で修正できる)


Catalystはステートを定義できるので、例えばログイン画面とログイン後の画面をデザインしてもらい、それをCatalyst上で配置して、1つのアプリのようにすることが可能。

ワークフロー

Catalystを使用したワークフローとしては

  1. イラレ・フォトショで下絵作成(コンポーネントになりそうなところは部品化しとく)
  2. Catalystで読み込み。コンポーネント部を変更(この段階で、モック的に動作するFlashになってます)
  3. 修正したい部分はCatalystからイラレ/フォトショを呼び出し、繰り返し修正
  4. ひとしきり出来たらFlashBuilderに取り込み構築

という感じが考えられます。
いまだと、イラレ・フォトショ部品をFlashでswc化するところまでは出来ていますが、そこの部分がもう少し簡単になって、かつデザインに手戻り出来るのが利点だと思います

第四部 FlashBuilder4の新機能

まずブランド名について。

  • FlashCS4
  • FlashBuilder
  • FlashCatalyst

従来分かりにくかったため、ツールブランディングを統一。
Flexブランドはオープンソースフレームワークに設定。
(なのでFlexframeworkはそのままの名前で残る。Flash=商用、Flex=オープンソースという分け方みたい)

新機能

 ただしどの程度までやれるのかは不明

  • アクセサ付与
  • データサービスパネル

 サーバ側のファイル(PHPファイルとか、CFのファイルとか)を選ぶと、そこで呼び出せる
 メソッド一覧が出てきて、選ぶと通信コードを書いてくれる、というようなデモでした。

 AMFやWebServiceの通信の中身が見れるパネルみたいなものがありました。(便利そう)
 id:yone098さんが「FlexBuilder3でも使えないですか?」と聞いてましたが、「No thank you!」と断られてました。


FlashBuilder4はFlexFrameworkとはひもづいていないので、FlexBuilder3で開発してた人ものりかえるとリファクタとか使えるよと言っていました。

イベント後

イベント後に、講師のエンリケさんとのプライベートセッション&飲み会があったので参加させてもらいました。
デモを見せる機会があったので、ASphalt2 conteinerとT2をみせてきました。
ASphalt2 conteinerのほうは、CSSで設定書くのはスマートだね、とお褒めの言葉を頂きました。
T2のほうはt2-haikuをお見せしましたが、サーバ側はJavaでGAEってますと言ったら、関心を示していました。
id:arkwさん、nodさん、taigaさんらTop Flexerたちともお話が出来て、大変有意義な時間となりました。

またいろいろ質問しましたので、覚えているものをあげておきます。

  • 今までFlex3ベースでやってたプロジェクトも、FlashBuilder4にしたほうがいいのか?コンパイル早くなる?

 ->リファクタとか使えるからおすすめ。だけどコンパイルはSparkコンポーネント使わないとコンパイルは速くならない

  • Catalystでマウスの各ステートなどを定義しても、作ったものを丸ごとデザインツールに戻せるのか?

 ->戻せる。FXGは色や形の定義なので、それらであればOK。ただしコードを書いてもそれはもっていけない。

  • あるデザインをしてCatalystで取り込んだ後、もう一度デザインを修正した。この場合はCatalystに差分だけとりこめるか?

 ->差分は無理。Catalystからエクスポートしたものを修正するか、もしくは新規に全部Catalystに取り込みなおす必要がある

  • クライアント側でPDFを生成するライブラリをAdobeが出す予定はあるか?

 ->LiveCycleのビジネスモデルと合わないので、たぶん出さない。

  • FlashBuilder4の発売時期は?

 たぶん来年。

余談

エンリケさんはJRun出身ということを聞き、帰りに品川まで電車で一緒になったのでワクテカしながら


J2EEのどこ作ってたんですか?」


と聞いたら


EJBのところだよ」


と言われて、会話終了。