大阪=ライフハック

12日、三連休の頭に、大阪で開催された「Flex3ライフハックツールをつくってみよう」に行ってきました。大阪に行ったのは初めて!お好み焼きおいしかった!

このハンズオンセミナーはFlex User Groupと関西ライフハック研究会の共催によるものです。Flexライフハックツールを作ろう!という発想自体が大好きです。プログラマたるもの、自分で使うものは自分で作りたいよね(ツールやアプリにせよ、ライブラリやフレームワークにせよ)。

- Flex User Group
関西ライフハック研究会(mixiコミュです) http://mixi.jp/view_community.pl?id=2206176

スタッフの山口さんから、まずFlexというものの簡単な紹介。Flex使うとこんなことができますよ、という例として、このページが有名だそう。

http://examples.adobe.com/flex2/inproduct/sdk/flexstore/flexstore.html

よくわかってなかったんですけど、FlexFlashは基本的に別のものだそうです。Flexで開発したもの(ソースコードは.mxmlまたは.asファイル)をコンパイルすると、.swfファイルになってFlash Playerで実行可能になります。コンパイルは自動かつ一瞬なので存在自体をあまり意識しません(規模にもよるんだろうけど)。

ライフハック=ホワイトボード

ここからみっちりと、各自でソースを書きながら実際に動くホワイトボードアプリを開発していきます。ライフハック系の人ってホワイトボードが好きで、持ち歩いたりもしてるそうですよ、って言ってた。持って行けばよかった!FlexBuiler(評価版)を使います。GUIで Form を貼って、そこに、NumericStepper、HSlider、ColorPicker, Buttonなどと追加してプロパティを調整する。このへんはVBとかと同じ感覚ですね。

GUIからソースビューに切り替えると、.mxmlファイルが出来ています。スクリプト(ActionScript)はここに書き込んでいく。ASって、個人的には強い型のついたJavaScriptだと思ってるんだけど、もっと本質的にはスクリプトっぽく見せたJavaなのかな。先祖がえりをするようで、面白い。

gnephics design の山本さんによるライブなコーディングと解説を受けながら進めていきます。よく思うんだけど、こういう「目の前で出来ていく」のってすごく理解がしやすいです。書きあがったコードを読むよりも数倍、わかりやすい。コーディング=思考の過程なので、過程を一緒に歩んでいくようなやりかたがよいのではないかしらん。(スピードの調整が難しい、というのはある。速い人も遅い人もいるからね。)

関係ないけど、genephics design さんのホームページ、ロゴをマウスでうにっって引っ張ることができます。複数ユーザが同時にアクセスして引っ張ると、みんなで引っ張り合うことが出来ます。おもろ!

http://www.genephics.co.jp/

AMF=まだテキストでやってるの?

休憩があって、その後クライアントとサーバの通信に関する短い紹介がありました。HTTPベースでXMLJSONなどが一般的ですが、FlexにはAMF(Action Message Format)というバイナリフォーマットのメッセージ方式があるとのこと。いまどきバイナリ電文ですよ!なんという時代遅れな正しい方式。

いや、いまどきのAjaxアプリって、ある意味昔のクラサバ以上にクライアントとサーバで通信しまくって処理するじゃないですか。こうなってくると、サーバ側の口は「サービスを公開している」ものももちろんあるんだけど、クライアントの機能と1対1対応してしまっているものもたくさんある。そこでいちいちXMLというのは、確かに無駄ですよね。CPUも無駄だけど、帯域も。

バイナリ電文といってもシリアライズ/デシリアライズなので(というかRemoteObject。やっぱりJavaぽいなあ)、電文フォーマットをビット単位で詰めるとかできないのが残念しなくてすみます。

利用するにはサーバ側で有償製品が必要だったらしいんだけど、昨年12月にはオープンソース化されたそうです。 About Adobe - Press Room - Adobe Flex

ライフハックGTD

後半は、Flex/AIRで作られたGTDアプリ、Tugboat.GTDの紹介。GTDなので、タスク管理ツールですね。タスクカードを「ぽいっ」と投げたり、「ぐるんぐるん」振り回したりできるのが楽しい(笑)*1。山本さんは、これを実装するために3日徹夜されたそうです。おつかれさま。

当初の予定では、このアプリをみんなでハックするという話だったのだけど、それは大変すぎるので(参加者のスキルもあるしね)、タスクカードを「ぽいっ」と投げる動きだけ実装することになりました(笑)。

こういうアニメーションで、物理っぽい動きを再現するのは、遊びでゲームを作ってたときにやっていたので、なんだか懐かしい雰囲気が楽しかった。Flash独自の「1秒間に20回*2フレームを実行する」という仕様が、VSYNC割り込みと同じ感覚だし。アニメーションと言うか、リアルタイム的な処理をするとき、このフレームワークは重宝するはず。

大阪=若くて熱くて楽しい!

ワークショップ終了後は、近所の飲み屋で懇親会がありました。Flexの話やら違う話やら株の話やらw*3、その日に帰らないといけなかったんだけど参加してよかったー。というか、誰かが「懇親会が本番ですから」って言ってた。ここもか!*4

なんでも、関西地区での Flex User Group のセミナー、ワークショップは、始まって1年たたないそうです。東京から大阪に移った山本さんが、東京にはこういうイベントが多いのに大阪にはないと思って、始めたとか。動きも活発で、毎月なにかしらやっているそうです。これはすごい。ぜひこれからも続けてください。また機会を作って行きたいと思います。今度は串揚げが食べたい!

*1:リリース版には入ってないのかも

*2:デフォルト値

*3:このへんが大阪人?

*4:オブジェクト倶楽部のイベントも懇親会が本番です ;-)