INDEX(Topページ) | News & Topics | Glossary | Column List | GuestBook | Link & Profile

第10回 デスクアクセサリの流れを汲む「Dashboard」〜Widgetの構成要素、Core Imageの対応等〜

Dashboardに関しての2回目です。前回に引き続きDashboardの構成や仕組等を取り上げてみたいと思いますが、今回はもう一歩踏み込んで、パッケージの構成からWidget独自のオブジェクトやタグ、或いはグラフィック関連を司るCore Imageとの連携等も紹介したいと思います。


●Widgetの構成要素について

前回のコラム「デスクアクセサリの流れを汲む「Dashboard」〜構成や仕組、Widget等〜」では、Widgetの基本的な使用方法までを紹介しましたので、今回はWidgetの構成要素について簡単に紹介したいと思います。

Widgetに限らずMac OS X対応アプリケーションは、1つのフォルダをアプリケーションに見立てる「パッケージ」という形式で構成されています。このパッケージ(フォルダ)の中にアプリケーションを構成する様々な要素(ファイル)が格納されており、その内容は「アプリケーションファイルを右クリック(Command+クリック)→パッケージの内容を表示」とのオペレーションにて、通常のFinder上でも確認可能となっています。では実際にWidgetのパッケージを開いてみて、その構成要素等を確認してみる事とします。題材として「Appleのイベント」と称される世界各国のApple Retail Storeにおけるイベントやワークショップのスケジュール等を紹介しているInformation Widgetを採り上げてみたいと思います。
「Appleのイベント」Widget
↑「Appleのイベント」Widget

まずは上記の手順でパッケージの内容をFinder上で表示してみます。
「Appleのイベント」Widgetのパッケージ内容

この中で、Widgetとして動作させるために最低限必要となるファイルは、

以上の3つとなります。この中でも「Info.plist」と「Default.png」は如何なるWidgetにおいても、このファイル名にしておく必要があります。もう1つのメインとなるhtmlファイルに関しては、その存在を「Info.plist」上で記述する事となるので、ファイル名は「任意の名称.html」で構いません。便宜上個々のWidgetを識別し易い名称にしておくと良いでしょう。尚、

は、あくまでもWidgetに付加価値を与えるために存在するものであり、最低限必要とされる要素には含まれていません(実際にはJavaScriptとCSSを使ってWidgetに様々な付加価値を与えなければ、単なるWebページになってしまい、Dashboard上で稼働させる意味がなくなってしまいますが)。


●個々の要素の役割について

続いて、パッケージに納められている個々の構成要素の中から主要なファイルを幾つか抜粋して、役割等を簡単に紹介したいと思います。

htmlファイル

個々のWidgetの動作に最低限必要とされる3つのファイルの中でも最もメインとなる「html」ファイルは、その名の通り日常的に目にするWebページの記述で使われる形式そのものです。Sfari等、Dashboard Clientと同様にWebKitを搭載したブラウザであればDashboard上と同様の形で表示する事ができますし(注1)、計算機による計算や世界時計による世界各国の現在時刻の表示等、基本的な動作はSfari上でも確認する事ができます。しかし、Widgetの右下にマウスカーソルを移動した際に現れる「i」のマークを押した時に実行されるエフェクト(Widgetがフリップ→反転して環境設定にアクセスする)や、Widgetに要求されたドラッグアンドドロップ、或いはテキストのカット、コピー、ペースト等を処理するような役割は、Dashboard上でWidgetがアクティブになった時のみ使用可能となる「Widgetオブジェクト」や、Dashboardオリジナルのイベントハンドラにより実現可能となっています。他にもWidgetで使用されているhtmlでは、現在Dashboard上でのみ利用できる「レンダリングに関するcanvasタグ」や「画像に対するcomposite属性」等のhtmlの拡張機能も幾つかあります。現在Appleでは、これらの拡張機能を標準化するための働きかけも行っているようですが、前述のWidgetオブジェクト等の存在も含めて、このような拡張機能があってはじめてDashboardの一意な特性とメリットが生まれているといっても過言ではないと思います。

Info.plist

個々のWidgetが持っている固有の情報が、XML形式で記述されているファイルです。「plist」はProperty Listの略称で、Mac OS Xや各アプリケーションが生成する初期設定ファイルにも採用されている形式です。XMLですので基本的にはテキストファイルになる訳ですが、編集に際しては「DeveloperTools」に付属している「Property List Editor」を使用するのが効率的です。尚、Widgetのパッケージ中のinfo.plistファイルには「Widgetの名称」「Widgetの大きさ(Width、Heightを個別にピクセル単位で指定)」「htmlファイルの名称」「Widgetが使用するPlug-inの名称」「AllowNetworkAccess(注2)」等が記述されています。

Default.png

Widgetがアクティブになった際に表示される背景画像です。pngフォーマットはjpegに比べて若干深みを持たせる事ができ、アルファチャンネルによる透明度のサポートが、DashboardのみならずMac OS X全般のインターフェイスとマッチします。

Icon.png

Widgetバーのアイコン表示で使用されます。

Japanese.lproj、English.lproj etc...

上記のような「言語名.lproj」フォルダには各言語用の言語リソースが含まれており、「システム環境設定」>「言語環境」にて適用されている言語のリソースがログイン時に適用される事となります。

images

Widgetで使用される様々な画像ファイル(部品)が納められているフォルダ。通常Webページで使用できる形式であれば何でも構いませんが、厳密にいうとレンダリングエンジン「WebCore」で表示できる形式という事になります。こちらもpng形式が使用されるケースが多いようです。


●華やかなグラフィック効果を演出する「Core Image」

続いてDashboardのグラフィックを彩る「Core Image」について紹介したいと思います。Dashboardは、

等、Mac OS Xを始めとする種々のオペレーティングシステムの機能中でも「華やかさ」という観点において際立った存在といえ、数年前に「モダンOSの未来像」として描かれていたデスクトップイメージを極力近付けた形で実現させたものといえるでしょう。そんなDashboardのグラフィック処理の中核を担うCore Imageは、Mac OS X 10.4 Tigerより搭載された新機能の中の1つで、プログラマブルGPU(注3)の処理能力を最大限に発揮させるためのパイプライン的な存在となっており、GPUやCPUの種類、或いはプロセッサ数の違いからくるOptimization(最適化)の相違点を吸収するような役割を果たしています。結果としてレンダリングを始めとする様々なグラフィック処理において積極的にGPUを活用させる事が可能となり、CPUリソースをグラフィック関連から極力解放しようとする効果が得られています。そしてプログラマブルGPUを搭載していない機種においても、CPUに対してグラフィック処理の最適化を行っている等、Mac OS X上のグラフィック処理に多大な影響をもたらしています。尚、Core ImageはMac OS Xに搭載されている類似機能「Quartz Extreme」よりもハードウェアに対する要求条件は高くなっており、潜在能力をフルに発揮させるためにはDirectX 9世代のグラフィックカードの対応が必須となりますので、現在の対応状況を簡単に紹介します。

ATI Technologies

「ATI Mobility Radeon 9700」「Radeon 9600 XT」「9800 XT」「X800 XT」及びそれ以降

NVIDIA

「GeForce FX Go 5200」「GeForce FX 5200 Ultra」「GeForce 6800 Ultra DDL」「GT DDL」及びそれ以降

となっています。尚、お使いの機種がCore Imageに対応しているかどうかを確認するには、Dashboard上で任意のWidgetを追加した際に、波紋のエフェクトが現れるか否かで判断する事ができます。或いはより確実な方法として、「System Profiler(システムプロファイラ、/Aplication/Utilities/System Profiler.app)」を起動し、現れたウインドウから「グラフィック/ディスプレイ」と選択すると、Core Image、Quartz Extremeの対応状況を確認する事ができます。
「システムプロファイラ」>「グラフィック/ディスプレイ」
↑システムプロファイラで対応状況を確認したところ。私の愛機はCore Imageに非対応です。尚、システムプロファイラは「アップルメニュー」>「このMacについて」>「詳しい情報...」と辿る事によってもアクセス可能です。


●まとめ〜現状や存在価値 etc...〜

Mac OS X 10.4 Tigerも現時点で10.4.4までバージョンが上がっており、標準添付されているWidgetにも幾つかの変更や新規追加が行われています。しかしながら標準のWidgetの多く(特にInformation Widget)は、米国の情報やイベントを参照しているものが多く、必ずしも実用的とはいえませんが、国産のWidgetとなれば話は別です。前回も紹介しました「アップル - Mac OS X ダウンロード - Dashboard ウィジェット」を参照すると様々なWidgetが紹介されており、標準のWidgetと同じテーマを扱ったものでもローカルでの利用を前提とすれば数段有用なものが公開されています。馴染みの深いWeb系の技術を利用したシンプルな構成が、発表から僅か10ヶ月程度でWidgetを充実させている要因となっているのは間違いないところですし、ここまで紹介してきたように「使い易さ」と「造り易さ」「実用性」を兼ね揃え、華やかさをも持合わせているDashboardは、その先にあるMac OS Xの様々な魅力にユーザを誘うための入口的な存在として、永きに渡って親しまれていくのではないかと思われます。


●本文訳注

(注1)Dashboard上と同様の形で表示

現状ではFirefoxやCamino、Opera等、WebKitを採用していないブラウザではWidgetに含まれるhtmlを正確に表示する事はできない。スタイルシートを無効化する事により暫定的に表示する事はできるが、レイアウト等はかなり崩れてしまう。

(注2)AllowNetworkAccess

Information Widgetで利用される事の多いネットワークアクセスを有効にする際に、info.plistに追加するkey項目。「dict」ダグ間に記述し、値を「true/」で返す事によってWidgetからネットワークにアクセスする事が可能となる。Property List Editorを利用する場合は、Value項目の値を「Yes」に設定する。

(注3)プログラマブルGPU

旧来までのグラフィックスカードにおけるハードウェア的な固定機能の他に、CPUと同様の演算ユニットを搭載したグラフィックスプロセッサ。汎用性が高く演算部の高クロック化が容易であるという利点がある一方、GPUとしての処理効率やクロックあたりの処理能力は、固定機能ユニットの方が高いといわれている。


御意見、御感想はこちらまで
Topページへ


Created Date : 06/02/03
Modified Date :