JavaFX勉強会でGroovyFXの発表をしました

第 6 回 JavaFX 勉強会 : ATNDGroovyFX の紹介をしてきました。当日使った発表資料はこちら:

表紙は猫メソッドならぬサンフランシスコメソッド(今名づけた)。今回はJGGUGじゃなくJavaFX勉強会での発表だったので、資料の前半はGroovy自体やビルダーの簡単な説明になってます。肝心のGroovyFXについては、スライドベースではなく具体的なコードを動かし、そのポイントを解説する形でお話したので、この資料だけではあまり参考にならないかもしれません。以下に発表に使ったサンプルコードを貼って、簡単なポイント解説をつけておきます:

サンプル(1)

Google+APIでプロフィール情報を取得し、GroovyFXで写真、名前、タグラインを表示するシンプルな例。写真をクリックするとくるくる回る。

ポイント:

  • 基本的なシーングラフの構築方法、ノード属性の指定方法
  • エフェクトやトランジション、イベント処理なども一応すべて盛り込んだ
  • Groovyには(JavaFXからは消えてしまった)JSONパーサが標準で備わっていて、JSONの扱いも非常に簡単なことをさりげなくアピール v(^_^)

サンプル(2)

動画(flv)を再生し、再生中に対話的にエフェクトやトランジションをかける。sキーでセピア、bでぼかし、tで複合トランジション(回転+拡大+フェードイン)。

ポイント:

  • JavaFXではたとえ再生中の動画にでもエフェクトやトランジションをかけられる
  • ParallelTransitionのあたりの簡潔かつ明快な記述
  • キーイベントの処理

なお、この例ではやってませんがエフェクトも複合することもできます。

サンプル(3)

TwitterHTML5なwebコンテンツを連携させる例。指定文字列(ここでは"#jjfxug")を含むtweetがあると、マリオのコイン音と共にwebコンテンツ内にボールが1個落ちる。tweetにホットワード(ここでは"groovy")が含まれていると1up音と共にボールが10個落ちる。GroovyFXで、Twitter4JのストリーミングAPIと、WebView内に表示したHTMLページのJavaScriptを連動させて実現している。

ポイント:

  • JavaFXの内蔵ブラウザ(webkitベース)は結構HTML5に対応している(ちなみにAcid3テストのスコアは99点)
  • 動的なシーングラフノードの追加
  • Javaライブラリをつなぐ (Twitter4J + JavaFX) グルーとしてのGroovyの便利さ
  • なにげに便利なAudioClip
  • みんながライブで参加できるデモをやってみたかった!

セッションやデモの様子はTogetterやust録画でも見られます:

最後に

声をかけていただいた[twitter:@skrb]さん、運営にあたっていた[twitter:@yoshioterada]さん、GroovyFX情報を交換した[twitter:@touchez_du_bois]さん、どうもありがとうございました。(_o_)

おまけ

12/1開催のJava Developer Workshop #2は絶賛申し込み受付中!
http://www.oracle.com/goto/jpm111201
JavaFX 2.0、そしてScala/JRuby/Groovyなどに興味がある方は必見ですよ!