見出し画像

[#49] Dashboard と Core Image : WWDC 2004 レポートその1

初出: MacPower 2004年 8月号

今年もWWDCの季節、たまっている仕事を何とか片づけて、Mac OS Xの次のバージョン「Tiger」のプレビューを観にサンフランシスコに来ている。今回は、Tigerの新機能が開発者の目にはどう映ったかを書いてみよう。

ただし守秘義務の関係上、スティーブ・ジョブズのキーノートスピーチで語られたこと以上のことは、残念ながらここには書けない。キーノートの内容は、どうしても見た目が派手なものに限られてしまう。開発者会議なのでもっと突っ込んだ内容でもいいと思うのだが、それだとジョブズが話す必要もなくなってしまう。イベントの中のお祭りなので仕方がない。というか、毎年楽しみにしていることだし(笑)。

まずはDashboardから。これは、ちょっと気の利いた機能を備えたユーティリティーで、普段は隠れているが、ホットキーを押すとExposéと同じようなエフェクトでデスクトップに現れる。アップルのWebサイト [*1]にムービーが用意されているので、実際に動きを見てほしい。とても面白いし便利だ。
アイデア自体は、あちこちで話題となっているとおり Konfabulator [*2] に影響を受けているのだろう。それを否定するアップルも大人げないなとは思うが、その一方で、ある製品に影響を受けて別のものが生まれるのは仕方がないことだとも思う。

もともとMacにはデスクアクセサリーというカタチで、小物ソフトが存在していた。Konfabulatorはデスクアクセサリーとはまったく違うように見えるが、ちょっとした便利な機能や情報を手軽にいつでも手にすることができる、という意味では一緒だ。それでもまったく別物に見えてしまう理由は、Konfabulatorがデスクトップに常駐するという手法がユニークだからだと思う。それに対して、Dashboardは常駐しない。裏で待機していて、必要なときに出てくる。これはまったく異なる手法といえる。マネと言われるのはアップルも心外だろう。

それよりもむしろ、Widget が JavaScriptを使って簡単に作れるという点が、実は一番似ているのではないだろうか。敏感に反応しているKonfabulator Widgetの作者の人たちも、この辺の類似に何か踏みにじられた感触を持っているのではないか。だが実際のところ、DashboardWidgetはJavaScriptに頼っているわけではない。DashboardはWebKitが実現している。JavaScriptも使えるというだけの話だ。HTMLで書いたモノがそのまま表示されるので、極端な話、Flash を作るように書いても動いてしまう。つまりここでも実現方法はまったく異なるのだ。

仕事柄、Webアプリケーションを作っているが、WebKitで遊んでいると「これを使えば、ローカルで動くWebアプリケーションが作れるよなー」と思うことがよくある。WebKitの開発元であるアップル自身がそれを思いつかないわけはない。Dashboardは実装面から見れば、ローカルWebアプリケーションサーバーなのだ。最初に用意されている機能は最低限だけど、やろうと思えばPlug-inを使ってOSの機能を最大限に活用できるし、OSにインテグレートされているというメリットは大きいと思う。まあともかく、何とか丸く収まってほしいところだ。

次はCore Image。これは、画像処理のためのフレームワークだ。その特徴はGPUの性能を最大限に利用するためのもので、Mac OS Xの画像エフェクトの集大成のライブラリといえる。音に関するライブラリは、Mac OS Xでは最初からCore Audioと呼ばれるライブラリに再構築されて、過去のAPIや構造からは決別できていた。一方、画像関係はQuartz と呼ばれるコンポーネントが導入されて、QuickDrawに替わる新しいAPIは使えるようにはなった。しかし、既存のQuickTimeやOpenGLは、そのまま利用する仕組みになっていた。Core Image とさらにCore Videoと呼ばれる時間軸のデータを管理するフレームワークの導入により、このあたりの配置が変更されることになった。

具体的には、これまで横並びだったQuartz / QuickTime / OpenGL というグラフィックレイヤーの中で、QuickTimeはより上層に OpenGLはより下層に移動することとなったのだ。つまり、QuickTimeはもはやCore ImageやCore Videoに依存した動画メディアのためのフレームワークという位置づけになり、逆にOpenGLは直接使われることは少なくなり、Core Image経由で使うことを推奨されることになる。すべての描画に関わる処理は多かれ少なかれOpenGLの処理を通ることになり、GPUに最適化されたフレームワークのおかげでさらなる高速化の恩恵を得られるという仕組みだ。

OpenGL というと3Dアニメーションのためのライブラリと思われがちだが、3D処理のためのテクスチャーを操作するために、2Dの画像を簡単に扱えるという特徴もある。逆に実はアニメーションのための機能はほとんどなく、「時間管理はアプリケーション側で行う必要がある。こうしたアプリケーション側の負担を軽くするために、Core ImageやCore Videoが用意されたのだ。

QuickTimeは表向きはこれまでどおりに使える。動画フレームワークの標準という座は譲っているわけではない。Core Videoはもっとローレベルな部分を担当してQuickTimeが総合パッケージとして君臨することになる。しかしこれまでは、古い QuickDrawの構造に依存している部分が多く、高速化の足を引っ張っていたのも事実だ。今回は構造の再構成に伴い、そうした古いAPIを使わず、GPUへの流れを最適化できるように変更されている。QuickTime好きとしては、ようやくMac OS Xにインテグレートされたという安心感があってうれしい限りだ。

Dashboardでだいぶ誌面を取られてしまったので、全然足りなくなってしまった。SpotlightやQuartz Composer、そして開発者視点での総論などは次号に。

バスケ(シエスタウェア代表取締役)http://saryo.org/basuke/
やりました!Dashboardコンテストで2位に入りました!実は期間中にいきなりコンテスト開催が発表されて、イベント好きの開発者は大慌て。ボクも1日徹夜、2つのセッションをすっ飛ばしてまで書き上げましたよ。燃えました。その結果、次点に入賞賞品はiPod 40GB。これがminiならもっと嬉しかったぞ(笑)。

[*1] アップルのWebサイト - http://www.apple.com/Mac OS X/tiger/dashboard.html。
[*2] Konfabulator - http://www.konfabulator.com/ デスクトップにWidgetと呼ばれる便利な機能を常時表示させる機能を持ったユーティリティー……と書くと、確かにDashboardと同じなのだが(笑)。

この記事が気に入ったらサポートをしてみませんか?