Quartz Composerも試してみる
ご存じない方のために説明しておくと、Quartz ComposerはTigerから導入された、インタラクティブなアニメーション作成および再生環境だ。グラフィカルな操作で、ソースコードを書かずに高レベルなアニメーションを作成できてしまう。Mac OS Xのスクリーンセイバーに「RSS Visualizer」という、3次元空間でRSSを表示するものがあるが、あれがQuartz Composerを利用している。
Quartz Composerのフレームワークを使うことで、RubyCocoaでもそれらが再生できてしまう(画像3)。ここでは、Leopardから新しく追加されたスクリーンセイバー「Shell」を再生してみよう。Quartz Composerフレームワークは、PDF Kitと同じく、Quartzフレームワークに含まれている。
OSX.require_framework 'Quartz'
qcview = OSX::QCView.alloc.initWithFrame(window.contentView.frame)
window.contentView.addSubview(qcview)
qcview.loadCompositionFromFile('/System/Library/Screen Savers/Shell.qtz')
qcview.start(nil)
「/System/Library/Screen Saver/Shell.qtz」というのが、ShellスクリーンセイバーのためのQuartz Composerファイルだ。これを、Quartz Composerコンポジションファイルと呼ぶ。このScreen Saverフォルダには、他のスクリーンセイバーのためのコンポジションファイルもあるので、それらを試してみるのもいいだろう。

RubyCocoaはCocoaだけじゃない
Rubyから、様々なMac OS Xの機能を触ってみたが、実はこれらはCocoaに含まれるものではない。それぞれ、QT Kit、PDF Kit、Quartz Composerというフレームワークが持つ機能だ。
つまり、RubyCocoaはCocoaという名前がついているが、Mac OS Xが持つもっと多くのフレームワークにアクセスすることができるのだ。これはRubyを使ったアプリケーションの表現力を、飛躍的に高めてくれる。次回は、このあたりの仕組みについて調べてみよう。