fcwrap を使ったAS3オールドタイプ開発 - Shibuya.es 発表資料

昨日の Shibuya.js Technical Talk #3 - Shibuya.es で LT をしてきました。関係者、来場者のみなさん、お疲れ様でした。
どの発表も面白かったです。技術的な面では omo さんのはじめてのABCでの、AVM2/JIT の話が大変面白かったです。なんで型を定義すると速くなるのかなど、「へーこう実行されるからなのかー」と解りやすかったです。
また会場では一斉を風靡するであろう、kushigahamaメソッドが生まれました。あのインパクトは正直高橋メソッドを初めて見たとき以上でした。今年は高橋メソッド以上にkushigahamaメソッドが流行る予感…。
また、fcwrap のデモも撮ったので置いておきます。
http://rails2u.com/misc/fcwrap_demo/fcwrap.htm
このように保存するだけで即座に結果を表示/リロードしつつプログラミングを行っていくことができます。log() 関数で console.log にも出力してるので、いちいち flashlog を見なくとも即座に FireBug の window で確認できるのも地味に便利だったりします。

fcwrap を使ったAS3オールドタイプ開発

id:secondlife

まず初めに

新しい言語を覚えるときにすることは?

  • 開発環境を整える
    • エディタの整備
    • 実行環境の整備
  • その他
    • 検索しやすいリファレンスの作成
    • 良質なドキュメントを調べる

エディタの整備

今回は関係ないので

実行環境の整備

いままで覚えた他言語の場合

AS3 の場合

FlashPlayer で実行する時

言語の挙動をつかめなーい

コンパイルの問題

コンパイル時間長杉

  • HelloWorld にも五秒
  • flex 使うと数十秒
  • コンパイル後ブラウザで表示

めんどくさすぎる!!!

まっとうな解決案

  • Flex Builder を使う
    • 裏側で自動コンパイルしてくれるよ

IDE は使いこなせないオールドタイプなので却下

LLer によく見られる

お気に入りのエディタでプログラミングしたい!

話は変わって

コンパイル遅すぎる問題

  • fcsh というのを使うとちょっぱやになるらしいよ!
    • flex compiler shell

fcsh 速ぇー

二回目以降のコンパイル

  • HelloWorld
    • 5 秒↓
    • 0.0x 秒
  • flex 使っても
    • 数十秒↓
    • 数秒

fcsh の問題点

しかしながら…

  • 毎回最初に必要な mxmlc コマンド
  • 作成された compile id を打ち直し

めんどくさーい

その他問題点

開発サイクル

  • コード書く
  • fcsh でコンパイル
  • ブラウザでリロードして表示
    • ファイル名が違うと打ち直し

めんどくさーい

もっとお手軽に開発したい

→ 無ければ作れ

fcwrap 作ったよ

fcwrap とは?

  • fcsh wrapper (そのまんま)
  • 裏で自動コンパイル
    • ファイルの最終更新時刻見てる
  • comet autoload な httpd 内蔵
    • コンパイル終了後即座にブラウザリロード
  • .swf ファイルをよしなに読み込み

fcwrap を使った開発サイクル

  • コード書く
  • fcwrap が自動でコンパイル
  • ブラウザが自動でリロード

コード書くだけに集中できる!

他にも

  • fcwrap のウィンドウで情報いろいろ
  • flash_log も流せるよ
  • apollo にも対応してるよ
    • -app.xml なテンプレート自動で作ったり

というわけで

  • fcwrap を使うと
    • IDE 使わなくても開発が楽に
    • オールドタイプな LLer 必須!?
svn co svn://rubyforge.org/var/svn/hotchpotch/fcwrap fcwrap
cd fcwrap
rake install_gem
  • でも
    • アンドキュメント
    • windows で動かすのが大変

どうぞご利用下さい。

追記

集積蔵 - fcwrapをWindowsで動かすメモid:trickstar_os さんが windows で動かす方法、[Saq.] fcwrap on Mac OS X (10.4.9 / Intel) でさくーしゃさんが OSX で動かす方法をまとめてくださいました。