タイトルMSM2001》「Mac OS X 10.1アップデート」カテゴリーユーザインタフェース, Mac OS X, イベント
作成日2001/12/9 1:1:46作成者新居雅行
まずは、アップルコンピュータのデベロッパ・テクニカル・サポートの担当者によるセッションが行われた。最初は「Mac OS X 10.1アップデート」として、Stephen Chick氏からの講演である。Mac OS Xは2001/3/24にVer.10.0(4K78)がまず発売された。その後にアップデートを重ねてきた。なお、バグレポートなどを行うときには、ビルド番号とともに報告してほしいとした。ビルド番号の見方(「このMacについて」のバージョン番号をクリックすると表示される)も説明した。
Ver.10.0での要求としては、パフォーマンスの向上、DockやFinderやMailの改良、DVD再生、CD作成の順になっていた。それに応える形で9月にMac OS X 10.1がリリースされた。現在は10.1.1が最新版となっている。10.1は初のメジャーアップグレードで、実務にたえる環境整備や新機能に対応している。パフォーマンスについては、起動やウインドウのリサイズ、Finderナビゲーション、ファイルコピーなど、ユーザの体感が得られる部分を中心に高速化をした。ネットワークについては、サーバ機能強化、AppleTalkやSMBのサポート、AirPortの管理ユーティリティ、iDiskのWebDAVサポート、AppleScriptの強化(ネットワーク設定に対応)が行われた。WebDAVのサポートによる利点は、ディスクをマウントしたままにできることを挙げた。グラフィックスについてもOpenGLの20%の強化や、印刷機能の強化などが行われている。ページ設定と印刷の関係が微妙に変わっているとした。さらに、デジタルハブ対応として、より多くのドライバが入っており、さまざまなアプリケーションも用意されている。
デベロッパにとってのMac OS X 10.1の新機能に対応する話題に移った。まずはサービスメニューに関することだ。サービスメニューは以前はCocoaでしか使えなかったが、Carbonでサポートされるようになった。サービスメニューには2つあり、1つは「プロセッササービス」でアプリケーションの現在の選択範囲に対して処理が行われるもので、システムには「Stickyを作成」が組み込まれている。このメニューにより、選択範囲にある文字列を含むStickiesのメモが作成されることがデモされた。もう1つは「プロバイダサービス」でアプリケーションに対して何らかのサービスを提供するといったものである。サービスメニューにはGrabというのがあり、これによって、スクリーンショットがウインドウに自動的にペーストされるといったことが可能となっている。
サービスに対応する方法が説明されたが、Cocoaではほぼ自動的にできる。Carbonでは3種類のCarbon Eventに対応するだけで、サービスメニューに対応できる。kEventServiceGetTypesではアプリケーションでサポートされるデータの形式を戻す。kEventServiceCopyとkEventServicePasteで取込みやペーストが行われるようにすればいい。一方、サービスを提供する場合、Info.plistにNSServicesキーを追加し、CFBundleIdentifierを追加する。そして、kEventServicePerformという1つのCarbon Eventに対応すれば良い。そして、システムにサービス対応であることを示すのであるが、Applicationsや/System/Library/Servicesフォルダにあれば自動的にシステムは認識する。
続いてDock対応についての説明があった。まず、Dockをクリックして表示されるカスタムメニューを実現する方法が説明された。方法としては3つあり、簡単なのはInfo.plistに記述することだ。メニューを定義したnibファイルを作り、Info.plistにAppleDockMenuキーを追加する。もう1つの方法は、Dock ManagerのAPIを使う方法で、実行時に状況に応じてメニューを変化させることができる。SetApplicationDockTileMenu、GetApplicationDockというAPIを使うことになる。3つ目の方法は、kEventAppGetDockTileイベントに対応する方法で、ユーザがDockアイコンをクリックしたときにメニューが決定されるような場合にはこの方法を使うことになる。イベントが呼びされるのでハンドラを用意しておけばよい。いずれも、通常のメニューと同じように、メニューのコマンドハンドラで実際の処理を記述することになる。
続いて、Dockタイル(Dockで見えているアイコン画像)の変更方法が説明された。たとえば、Mailアプリケーションでは未読メール数が表示されているのがおなじみの動作である。簡単な方法は、SetApplicationDockTileImageというAPIを使う方法である。他に、画像を重ねるオーバーレイを行うAPIなどがある。なお、CreateCGImageFromPixMapsで、QuickDrawデータからImageRefを作成できる。他に、Core Graphicsを使った方法は、QuickDrawを使う方法もあり、コテンキストあるいはグラフポートがDockになるので、自由にイメージを作ることができる。その後、実際にDockに画像を表示するプログラム作成のデモが行われた。指定したPDFをロードして、一定時間ごとにタイマー呼び出しを行い、そのときに、PDFの1ページずつの画像をDockに表示するといったものをCarbonベースのC言語で作成した。グラフィックスはCore Graphicsで行うようなものだ。
関連リンク