第5章


Mac OS Xの技術を使用する


Mac OS Xは、あなたが利用できる高度に開発された豊富な技術を提供します。これらは、あなたに一般的な作業を目的とした独自の解決策を実装するための、開発期間の浪費を避けることを可能とします。これらの完全に統合された技術の利点を活用することで、あなたのアプリケーションとシステム、及びこのプラットフォーム上の他のアプリケーションとの相互作用の方法を向上させることでしょう。

アドレスブック

もしあなたのアプリケーションが、連絡先の情報を記録したり使用するのであれば、こうした情報の管理にはアドレスブックフレームワークを利用してください。連絡先の情報は、名前、電話番号、ファクス番号、電子メールアドレスといった現在のユーザに知られている情報から構成されています。アドレスブックフレームワークを用いることで、あなたはユーザのデータベースから連絡先の情報にアクセスしたり、それをカスタマイズ可能なウインドウに表示することができます。

アドレスブックのインタフェースは、あなたに「人物の選択」と「選択」という用語を用いた表示ウインドウのカスタマイズを可能としますが、これらはあなたのアプリケーションのユーザインタフェースで使用することは認められない名前です。代わりに、あなたは表示ウインドウに、「住所」や「連絡先」といった、表示ウインドウとあなたのアプリケーションとの関連に応じた、その内容を説明する名前を付けてください。

人物の選択ウインドウの外見は、あなたのアプリケーションに関連するデータだけを表示できるようにカスタマイズできます。たとえば、図 5-1はこのウインドウがMailアプリケーションにカスタマイズされた例を示しています。この例では、ウインドウは連絡先のうち電子メールアドレスだけを表示しています。一方、ファクスダイアログ(プリントダイアログから開かれる)は、このウインドウをファクス番号だけを表示するためにカスタマイズしています。

図 5-1 「人物の選択」ウインドウのMailでの使用例

あなたは「人物の選択」ウインドウの外見を、アドレスブックフレームワークのインタフェースを用いてカスタマイズできます。このフレームワークの使いかたの詳細は、Address Book Programming Guideを参照してください。

Automator

Automatorを用いて、ユーザはさまざまなアプリケーションからの工程を、望みの順番へと並べることで、共通の手続きを自動化し、ワークフローを作成することができます。おなじみのアップル製アプリケーション、Mail、iPhoto、Safariなどは、ユーザにこれらの行う作業をワークフローへとまとめることができるようにします。これらの作業(アクションと呼ばれる)はユーザがさまざまなワークフローへ含めることができるように、「ファイルを開く」とか「フィルタを適用する」といったように単純かつ厳格に定義されています。

アプリケーション開発者の場合、あなたのアプリケーションが行うことのできる、個別の作業を表すアクションを定義することができます。あなたは適切なふるまいを実装したアクションプラグインを作成することで、これらのアクションをユーザに利用できるようにします。

アクションプラグインはnibファイルとアクションのユーザインタフェースを管理し、そのふるまいを実装するいくつかのコードを含んでいます。あなたはアクションプラグインをAppleScript、もしくはObjective-Cを用いて開発することができます。

あなたは、ユーザがあなたのアプリケーションをAutomatorと使用するための出発点を持てるように、あなたのアプリケーションと共に出荷するための、基本的なアクションのセットを作成することを検討することもできます。Automatorアクションの開発についての詳細は、Automator Programming Guideを参照してください。

あなたがアクションのユーザインタフェースをデザインする際に、以下のガイドラインを心に留めて置いてください…

  • ユーザはアクションを、Automatorのそれぞれの先端に積み重ねます。画面は高さより幅のほうが広いので、あなたは使用する垂直空間を最小限にする必要があります。これを行う方法のひとつは、例え選択肢が2つしかない場合であっても、ラジオボタンの代わりにポップアップメニューを使用するということです。
  • グループボックスは使用しないでください。アクションはコントロールをグループボックスで分割したり、グループ化する必要はありません。
  • タブ表示を避けましょう。代わりに、異なるコントロールの組み合わせを切り替えるために、隠れタブ表示【?】を使用してください。
  • アクションのタイトルや、説明を繰り返すようなラベルの使用を避けましょう。これらは意味もなく空間を占めてしまいます。
  • 任意の設定を隠したり表示するために、開示三角形を使用しましょう(開示三角形の詳細は、「開示三角形」(272ページ)を参照してください)
  • 空間の消費を最小限とするために、小型のアクアコントロールを使用しましょう。(「コントロール」(231ページ)にて、小型版を使用できるこれらのコントロールの面積についての情報を見つけることができるでしょう)
  • 空間の使用を最適にするためには、10ピクセルの余白を設けてください。
  • 反応を提供しましょう。アクションが完了までに時間を必要とするときは、適切な進行インジケータを使用してください(これらのコントロールの詳細は「進行インジケータ」(261ページ)を参照してください)。
  • 可能であれば、ユーザにさまざまな設定の影響がわかるように、アクションの効果を示す例を表示しましょう。

Bonjour

もし、インターネットやローカルエリアネットワーク上の、他のコンピュータやプロセスと通信する必要のあるアプリケーションをあなたが開発しているのであれば、ユーザのネットワーク設定について仮定を行うことは避けなければいけません。他のプログラムやコンピュータへの、高速で効率的な接続を保障することは、優れたユーザ体験を提供するための重要な部分です。

Mac OS Xは動的更新ネットワークモデルに対応しています。ユーザは単一のセッションの間に何度もIPアドレスを変更するかもしれないので、IPアドレスを基にした設定を保存してはいけません。常にBonjourを使用するようにしなければ、ユーザはIPアドレスを設定するよう要求されるでしょう。Bonjourは、IPネットワーク上のコンピュータ、装置、サービスの自動検出を可能にします。Bonjourの使用は、あなたのユーザのネットワーク設定を劇的に単純化することができるでしょう。Bonjourの詳細は、Bonjour Overviewを参照してください。

色彩

もしあなたのアプリケーションが色を扱うのであれば、あなたはユーザが色情報を入力するための手段を必要とするでしょう。Mac OS Xは色を選択するために、標準的な色ウインドウ【(カラーパネル)】を提供します。図 5-2に示すこのウインドウは、5つの異なる色モデルのいずれかを用いてユーザに色データを入力させます。あなたは色選択のために独自インタフェースを作成するよりも、このウインドウを使用するべきでしょう。

図 5-2 色ウインドウ

このウインドウをあなたのCarbonプログラムで使用する方法の詳細は、Color Picker Manager Referenceを参照してください。

Cocoaプログラムについては、Color Programming Topics for Cocoaを参照してください。

Dashboard

Dashboardはユーザに、情報を手に入れたり、単純な作業をすばやく、簡単に行うための手段を提供します。単独キー押下、もしくはマウスジェスチャによる表示・非表示によって、Dashboardはデフォルト、もしくはユーザ定義のウィジェット【=ほにゃらら部品、ちょっとした装置、小道具】のセットを、ヘッドアップディスプレイを思わせる形式で表示します。各ウィジェットは小さく、視覚的に現れ、その目的を明確に示しています。たとえば、図 5-3(65ページ)に示すMac OS Xウィジェットのそれぞれは、魅力的な、一般的な作業に合わせて縮小されたインタフェースです。

図 5-3 Dashboardウィジェット

あなたは軽量で、明確に定義された作業を行う単独のウィジェットか、実際の作業はあなたの、より大きい、より高機能なアプリケーションによって行われるウィジェットを開発することができます。

このセクションは、あなたがウィジェットをデザインする際に従うべき高レベルなガイドラインと、ユーザインタフェースのガイドラインの双方を要約します。豊富なコードとユーザインタフェースの例を含む、Dashboardウィジェットの実装方法の段階ごとの手ほどきは、Dashboard Tutorialにて利用できます。

「ヒューマンインタフェースデザイン」(39ページ)で扱ったユーザインタフェースデザイン原則の多くは、Dashboardウィジェットにも適用できます。これらのガイドラインに従うことでユーザにこの技術への自然な親しみを与えるでしょう。

ウィジェットのための高レベルデザインガイドライン

Dashboardウィジェットが小さく、高密度なのは、これらが画面の最前面を占有するからであり、これらが単一の、明確に定義された作業を行うからでもあります。

特に重要なのは、ウィジェットの中心的な作業に無関係な機能を提供することは避けることです。なぜなら、これはウィジェットの便利さを薄めるからです。

通常のアプリケーションのデザインと同様、あなたのウィジェットが目標とする視聴者を慎重に定義することに時間をかけることは(「デザイン工程にユーザを関わらせる」(25ページ)を参照)、あなたのウィジェットが行う作業に焦点を合わせる助けとなるでしょう。

あなたのウィジェットをデザインする際、これらの高レベルガイドラインを心に留めておいてください…

  • ウィジェットの目的はユーザに一目で明らかであるべきです。

    これを成し遂げるためには、あなたのウィジェットが行う作業の、ユーザの心のモデルを確実に理解してください(この概念についての詳細は、「ユーザの心のモデルを反映せよ」(40ページ)を参照)。

  • ウィジェットは押し付けがましく企業広告やブランドを表示するための場所ではありません。

    あなたのウィジェットは他のアプリケーションへの単なる入り口ではありません。そのアプリケーションがウィジェットのための処理を行っていたとしてもです。たとえば、あなたがDashboardの目立つという利点をバナー広告の表示に利用すれば、ユーザがあなたのウィジェットをDashboard表示から外すのは目に見えています。

  • ウィジェットは標準アプリケーションウインドウの単純なミニチュア版ではありません。

    あなたのウィジェットが、作業に必須のコントロールを表示するだけで窮屈に見えることは避けましょう。

ウィジェットのためのユーザインタフェースデザインガイドライン

あなたがウィジェットの作業を決定したら、ユーザインタフェースをデザインするためのこれらのガイドラインに従ってください…

  • あなたのウィジェットの視覚的な効果を高めるために色を利用しましょう。

    ウィジェットは視覚を刺激し、よい色の選択はウィジェットが行う作業の性質を伝える助けとなります。アプリケーションアイコンのように(「アイコンの分類と系統」(131ページ)で説明される)、あなたは明るくて鮮やかな色を、楽しくて創造的な作業のために用いて、より暗く落ち着いた色を、実用的な作業のために用いるように配慮しなければいけません。

  • あなたのウィジェットの前面に、アクアのコントロールを使用してはいけません。代わりに、作業に関連付けられたウィジェットの外見を助け、高めるようなコントロールをデザインしましょう。
  • ウィジェットの情報は一度に表示してください。Dashboardは表示と非表示をすばやく行うため、あなたのウィジェットの内容が表示されるまでユーザを待たせようとしてはいけません。
  • ウィジェットのデフォルトの大きさは小さくすべきですが、作業【の内容】が必要とするならば拡張できる必要があります。

    ユーザはDashboardにとても多くのウィジェットを常駐させたがるであろうという点を意識してください。もしあなたのウィジェットが大きすぎて、画面を独占しそうなほどに見えるのであれば、ユーザはそれを【Dashboard画面に】含めないでしょう。

    もしあなたが適切にサイズ変更コントロールを提供できたとしても、ユーザがこのコントロールをクリックしそこない、ウィジェットの外側をクリックしたら、Dashboardは非表示となる点を認識しましょう。

  • あなたのウィジェットが表示する情報のデフォルトの組み合わせは、最小限かつスクロールの必要がないようにしなければなりません。

    けれども、もし、ウィジェットの機能が多数の情報を提供することであれば、ユーザが選択できるスクロールバーの表示オプションを検討しましょう。

  • 明確に読むことのできるフォントを使用しましょう。

    特定の外見を実現するために、可読性を犠牲にすることは避けてください。ウィジェットの個性は輪郭に生まれるという点に注目し、あなたのデザインを制御してください。

  • 適切であれば、ウィジェットの背面に、ユーザが少数の選択項目を設定するための手段を提供しましょう(これを行うには、情報ボタンをウィジェットの右下の四分円に表示します。詳細はDashboard Tutorialを参照)。

    ウィジェットの背面には、あなたの色彩設計の控えめ版を使用してください。これはユーザがウィジェットの前面と背面を区別する役に立ちます。

    あなたのウィジェットの背面には、ユーザが前面に戻るための完了ボタンを提供してください(このコントロールを提供する方法の詳細は、Dashboard Tutorialを参照)。

フォント

もしあなたのプログラムが、ユーザ選択可能なフォントを用いたタイポグラフィ【印刷体裁】と文字列配置に対応するならば、ユーザのフォント選択を実現するためにフォントウインドウ【(フォントパネル)】を利用すべきでしょう。

ユーザはフォントと大きさを標準(図 5-4)と最小化(図 5-5)表示の両方で選択できます。標準表示では、フォント表示の特徴を精密に調節するためのコントロールもあります。

最も重要な点は、フォントウインドウはあなたのために実装されているということです。あなたはフォントメニューやその他の特別なユーザインタフェースを、ユーザからフォント情報を集めたり、表示するために作り出す必要はありません。

図 5-4 フォントウインドウ

アクションメニュー

図 5-5 最小化したフォントウインドウ

フォントウインドウはまた、対応するフォントのために高度なタイポグラフィ制御を提供します。ユーザはアクションメニューからタイポグラフィを選択することで、タイポグラフィインスペクタを開くことができます。図 5-6はZapfinoフォントのタイポグラフィ制御を示しています。

図 5-6 タイポグラフィインスペクタ

Carbonアプリケーションにおけるフォント選択と管理についての詳細は、Managing Fonts: ATSを参照してください。Cocoaアプリケーションに関しては、Font Panelを参照してください。

環境設定

環境設定とは、あなたのソフトウェアがセッション間に覚えておく、ユーザ定義された設定です。環境設定はあなたのアプリケーションが、ユーザに対して、アプリケーションがどのように実行するかの選択肢を与える手段となります。環境設定はしばしばアプリケーションのふるまいや、そのアプリケーションで作成した内容のデフォルトの外見に影響します。

あなたのアプリケーションの複雑さを抑えるために、環境設定を持つべき機能と、そうでない機能について厳選するようにしてください。思いつくままにすべての環境設定を実装するのは避けましょう。代わりに、はっきりした姿勢を打ち出し、ユーザが本当に変更したい機能にあなたの環境設定を集中させましょう。

環境設定はユーザの変更が頻繁ではない設定とすべきです。もしユーザがひとつの作業セッションにおいて、何度も機能の属性を変更するかもしれないのであれば、こうした属性の設定に環境設定を用いることは避けましょう。代わりに、ユーザがこの機能を変更するために、モードに関わらず利用できるコントロールを与えてください。たとえば、あなたはメニュー項目か、パレット、またはウインドウ内のコントロールを用いて、この機能を実現することができます。

ユーザは環境設定を頻繁には変更しないので、あなたは環境設定をツールバー項目として提供すべきではありません。代わりに、アプリケーションメニュー内にアプリケーションレベルの環境設定へのアクセスを提供して(詳細は「アプリケーションメニュー」(162ページ)参照)、文書固有の環境設定はファイルメニュー内で提供しましょう(詳細は「ファイルメニュー」(163ページ)を参照)。

Cocoaで環境設定を実装するための情報は、User Defaultsを参照してください。 Core Foundationで環境設定を実装するための情報は、Preferences Programming Topics for Core Foundationを参照してください。

印刷する

Mac OS Xは高度な印刷システムを搭載しています。オプションのすべてはこのシステムが提供するため、あなたが標準的な印刷ダイアログを使用することは、ユーザが多くの機能に迷子にならずに、利用可能なオプションを理解するために重要です。この印刷の機構は、ユーザにプリンタやファクスへ送信でき、PDFファイルとして保存できる「デジタル用紙」の文書を印刷することを可能にします(図 5-7)。これらすべての機能は、あなたのアプリケーションでMac OS X印刷システムを利用したときには、自動的に使用可能となります。

図 5-7 Mac OS Xで利用できる印刷オプション

標準印刷ダイアログについての情報は、「プリントダイアログ」(226ページ)を参照してください。印刷システムについての一般的な情報は、Mac OS X Printing System Overviewを参照してください。標準のペインでは提供されないオプションを搭載するために、印刷ダイアログや印刷設定ダイアログを拡張するための情報は、Extending Printing Dialogsを参照してください。

安全性

Mac OS Xはあなたが安全な操作を行うために役立つ数々の技術を提供します。これらの技術を用いて、あなたは秘密の情報をローカルに記録したり、ユーザに特定の操作を行う権限を与えたり、ネットワーク越しに情報を安全に転送することができます。

あなたが敏感な情報を扱ったり、安全な環境で作業する必要があるときは、以下のガイドラインを検討してください…

  • 特権アクセスを必要とするコードを、別プロセスに分離しましょう。安全なコードを安全でないコードから隔離することは、故意であるかどうかに関わらず、損害を発生させる不正な操作がないことの検証を容易にします。
  • パスワードや機密情報を平文のテキストファイルに記録することは避けましょう。あなたがファイルの所有権を利用してファイルへのアクセスを制限していたとしても、情報はキーチェーンの中のほうがずっと安全です。
  • 独自の認証機構を作り出すことは避けましょう。あなたがクライアント-サーバ操作を安全に行う必要があれば、クライアントの同一性を保障するために、認証APIを使用してください。
  • 特権コードからプラグインを読み込むことは避けましょう。プラグインは親プロセスと同じ特権を受け取ります。
  • 特権コードから、systemやpopenのような危険性のある関数を呼ぶことは避けましょう。
  • ログインしているユーザが一人だけであると仮定してはいけません。ファストユーザスイッチにより、複数ユーザが同一システム上でアクティブとなることがあります。詳細はMultiple User Environmentsを参照してください。
  • キーチェーンが常にファイルとして記録されると仮定してはいけません。
  • 認証のためにパスワードだけに依存することを避けましょう。Mac OS Xは既にスマートカード装置に対応しています。指紋スキャナのような生態認証機器もそのうち使用できるようになるでしょう。

あなたのアプリケーションが、パスワードやクレジットカード番号といった、その他の繊細な情報を記録するのであれば、キーチェーンサービスを用いて情報を記録してください。Mac OS Xでのキーチェーン機構は以下の利点を提供します…

  • パスワードや、その他の機密情報を扱うときに、安全で、予想できる、一貫した体験をユーザに提供します。
  • ユーザはすべてのパスワード設定をグループとして変更したり、さまざまな活動を目的とした、それぞれのキーチェーンごとに独自の有効化設定を持つ、分割したキーチェーンを作成することができます。(デフォルトでは、パスワードはグループとして変更されます)
  • キーチェーンアクセス アプリケーションは、キーチェーンとその設定を管理し、この作業からあなたを解放するための単純なユーザインタフェースを提供します。

Mac OS Xにおける安全性関連の文書の情報とリンクは、Getting Started With Securityを参照してください。

スピーチ

Mac OS Xはソフトウェアにアメリカ英語を認識し、話すことを可能とするスピーチ技術を搭載しています。これらの技術はすべてのユーザに利点をもたらし、人とコンピュータの相互作用に新たな規範の可能性を提示します。

音声認識はコンピュータがある人物の言葉を認識し、応答するための機能です。

音声認識を用いて、ユーザは複数の手順で構成される作業を成し遂げることができます。—たとえば、「Schedule a meeting next Friday at 3 p.m. with John, Paul, and George」とか「Create a 3-by-3 table」といった—音声の命令によってです。

Mac OS Xのユーザはマウスやキーボードに限らず、音声でもコンピュータを制御できます。従って、音声認識技術は特別な要求のある人々にも、一般的なユーザにもたいへん重要です。開発者はMac OS Xに搭載された音声エンジンやAPIの利点を、組み込みユーザインタフェースと同様に活用することができます。

音声合成はテキストトゥスピーチ(TTS)とも呼ばれ、文字列を音声に変換します。これはユーザに現在の作業から注意をそらすことなく、情報を伝える手段を提供します。たとえば、コンピュータはバックグラウンドで、「ダウンロード完了:ファイルがひとつ破損しました」とか、「あなたの上司からの電子メールがあります;今すぐ読みますか?」といったメッセージを伝えることができます。

TTSはまた視覚や注意力に障害のあるユーザにも重要です。音声認識と同様、Mac OS XのTTSはAPIといくつかのユーザインタフェース機能を共に提供します。

音声合成と認識の実装についての情報は、User Experience Speech Technologies Reference Libraryの文書を参照してください。

Spotlight

Spotlightとは、ユーザとアプリケーション開発者の双方が利用できるMac OS Xの強力な検索技術です。

Search Kitの先端に組み込まれ、ファイルシステムと統合されたSpotlightは、コンピュータ上のファイルの検索をウェブの検索と同じくらい簡単にします。Spotlightによってユーザは、書類の意図する読者、画像の方向、オーディオファイル内の曲の調記号といった、彼らにとって意味のある属性を用いて検索することができます。このような情報(メタデータと呼ばれています)は、そのファイルを作成したアプリケーションによってファイル内に組み込まれます。ファイルのメタデータを引用、記録、更新、組織化できることから生まれるSpotlightのパワーは高速で、広範囲な検索を可能にします。

Spotlightは、ユーザがコンピュータ上のファイルを見つける手助けをするために、いつでも利用できます。その上、Spotlightの動力源である検索技術は、開発者が表示するファイルや、読み込むためのプラグインや、彼らのアプリケーションで使用するデータを見つける手助けをするためにも利用できます。たとえば、開発者は複雑なクエリ【問い合わせ】を定義することができ、アプリケーションが必要とする種類のファイルだけを見つけ、Spotlightの機能と共に動作したり、アプリケーションの内部からSpotlightの機能を提供することができます。

このセクションの残りの部分では、ユーザの視点におけるSpotlightの導入と、アプリケーションがその機能の利点を得る方法の説明を行います。

ユーザはメニューバーの右端にあるSpotlightアイコンを用いて、Spotlight検索を簡単に開始することができます。図 5-8(71ページ)は、Spotlightアイコンと、ユーザがアイコンをクリックしたときに表示される検索欄を示します。

図 5-8 Spotlightアイコンと検索欄

加えて、ユーザは文字列文書内の単語や語句を選択し、Control-クリックすることで、選択された文字列をSpotlight検索することができる、コンテキストメニューを表示させることができます。図 5-9(71ページ)はこのコンテキストメニューを示しています。

図 5-9 コンテキストメニューでのSpotlight検索

どちらの方法で検索を開始するにせよ、Spotlightはすばやく結果を表示し、ユーザがSpotlight環境設定で調整することができる分類へと都合よく並び替えます。図 5-10(72ページ)は標準のSpotlight結果ウインドウを示しています。

図 5-10 Spotlight結果ウインドウ

アプリケーションに対しては、Spotlightはファイルを見つけ、アプリケーションの文脈内でユーザに高度なファイル検索能力を与える、ほぼ無制限の能力を提供します。たとえば、アプリケーションはSpotlightコンテキストメニュー項目(図 5-9(71ページ)で示される)と、ユーザが選択した文字列のSpotlight検索を開始するボタンを複製することを選ぶことができます。アプリケーションは次に自分のウインドウに検索結果のすべてか、フィルタをかけたその一部を表示することができます。

アプリケーションはまた、丸みを帯びた検索欄を用いてユーザにSpotlight検索へのアクセスを提供することを選ぶことができます(このコントロールの詳細は、「検索欄」(269ページ)を参照)。

ユーザはしばしば一般的な場所に保存されたファイルや、予想外の、もしくは忘れてしまった名前のファイル上で作業する必要に迫られます。アプリケーションがFinderを基にした「開く」ダイアログしか提供しないとしたら、ユーザにファイルシステムを移動するための多くの時間を費やすことを強いるでしょう。代わりに、アプリケーションはユーザがファイルシステム全体を、ファイル名よりも意味のある属性を用いて検索できるようにする、Spotlightで強化された検索を提供することができます。

アプリケーションはまた、必要なファイルやプラグインを見つけるために、裏でSpotlight機能を利用することもできます。たとえば、バックアップサービスを提供するアプリケーションは、ユーザに、画像のような、バックアップするためのファイルの種類の、幅広い分類を選択できるようにするでしょう。

画像を含むすべてのフォルダを見分けるためにユーザに対して問い合わせたり、「ピクチャ」フォルダだけをバックアップする代わりに、アプリケーションはファイルシステムのすべての画像ファイルを、その場所に関わりなく見つけるために、Spotlight検索を実行することができます。

Spotlightはファイルの検索のために調整されている点を強調することは大切です。文書内の広範囲な文字列単位の検索は意図していません。あなたがきめ細かな文字列検索を行う必要があるのなら、代わりにSearch Kit技術を使用する必要があります。たとえば、データベースのレコードにデータを記録するアプリケーションは、そのデータベース検索の基盤をSpotlightにすべきではありません。なぜなら、データは分割したファイルに記録されないからです。あなたのアプリケーションにおいてSearch Kitを使用するための詳細は、Search Kit Programming Guideを参照してください。

Spotlightは非-並列検索機能をユーザと開発者の双方に提供します。けれども、これらの機会に加えて、開発者にとって重要となるのが応答性です。あなたのアプリケーションが独自のファイル形式を使用していたら、あなたはファイル形式の構成要素のメタデータの種類を記述するプラグイン(Spotlightインポータと呼ばれます)を提供しなければいけません。これはユーザにあなたのアプリケーションが作成したファイルを、そのファイルが含むメタデータによって記述される属性を用いて検索することができるであろうということを保障します。これを行うための広範な情報は、Spotlight Importer Programming Guideを参照してください。

ユーザ補助

Mac OS Xは二つのユーザヘルプの構成要素に対応します。アップルヘルプとヘルプタグです。ヘルプタグはあなたに一時的な文脈依存のヘルプを提供できるようにし、アップルヘルプはより徹底した話題や手続きの議論を提供できるようにします。

あなたのアプリケーションでユーザヘルプを提供するために、あなたのアプリケーション専用のヘルプ機構を使用するよりも、これらの機構を使用しましょう。ユーザがヘルプを参照するのが日常的であれば、彼らは作業を成し遂げるのに手を焼いており、そのためくじけそうになっているかもしれません。

彼らのコンピュータ上の、その他すべてのアプリケーションで使用しているのと異なるヘルプ閲覧機構を理解するといった、更なる作業を彼らに習得させるのは、実のある時間とはいえません。

アップルヘルプ

アップルヘルプを用いて、あなたはヘルプ文書の表示と検索のためにデザインされた、ブラウザ風アプリケーションであるヘルプビューアにHTMLファイルを表示できます。また、ヘルプビューアはQuickTime要素を含む文書を表示したり、AppleScriptベースの自動処理を開いたり、更新されたヘルプ内容をインターネットから検索したり、文脈依存の補助機能を提供することができます。

ユーザはヘルプビューア アプリケーションを起動することでアップルヘルプにアクセスできますが、より一般的な利用形式は、あなたのアプリケーションからの、三つの方法のいずれかとなるでしょう…

  • ヘルプメニュー。ヘルプメニューはメニューバーのアプリケーション領域の右端にある項目です。ヘルプメニューの最初の項目は、あなたのヘルプ内容の最初のページをヘルプビューアに開く、「(アプリケーション名)ヘルプ」とする必要があります。ヘルプメニューをURLや、チュートリアルの題名等で散らかすことは避けましょう。代わりにこれらのリソースへのアクセスは、あなたのヘルプ内容の中で提供しましょう。ヘルプメニューの詳細は、「ヘルプメニュー」(172ページ)を参照してください。
  • ヘルプボタン。必要なときは、あなたのヘルプの特定のセクションへの簡単なアクセスを提供するために、ヘルプボタンを使用することができます。ユーザがヘルプボタンをクリックしたとき、検索語か見出しアンカー(特定のページへと導く)をヘルプビューアへ送信してください。あなたのアプリケーションのすべてのダイアログとウインドウがヘルプボタンを持つ必要はありません。もし文脈に関わる情報がヘルプになければ、ヘルプボタンを表示しないでください。
  • コンテキストメニュー項目から。もし、マウスで指されているオブジェクトのための、文脈上適切なヘルプ内容が利用できるのであれば、コンテキストメニューの最初の項目はヘルプとなります。ヘルプボタンと同様に、メニュー項目は検索語か見出しアンカーをヘルプビューアに送信できます。

アップルヘルプの内容の書き方と、あなたのアプリケーションでの提供の仕方についての詳細は、Providing User Assistance With Apple Help (Revision; Preliminary)を参照してください。

ヘルプタグ

ヘルプタグはあなたのアプリケーションが、ユーザに主なインタフェースから離れることを強制することなく、インタフェース要素のための基本的なヘルプ情報を提供できるようにします。

ヘルプタグは、ユーザがマウスポインタをインタフェース要素上に数秒間重ねたままにしたときに現れる、短いメッセージです(ヘルプタグの例は図 5-11を参照)。ポインタがオブジェクトを離れると、タグは消えます。マウスポインタが動かなければ、オペレーティングシステムはヘルプタグを約10秒後に隠します。

図 5-11 ヘルプタグ

ヘルプタグの本文は、インタフェース要素が何を行うのかを手短に説明しなければいけません。もしあなたがコントロールの機能を説明するために少数の言葉では足りないと気づいたら、あなたはアプリケーションのユーザインタフェースのデザインを再考したくなるでしょう。

Interface Builderにおいて、そこではツールチップと呼ばれているヘルプタグを定義してください。ここに挙げるいくつかのガイドラインは、あなたが効果的なヘルプタグの本文を作り出すために役立つでしょう。

  • 可能な限り最小限の単語を使うようにしましょう。あなたのタグを最大でも60から75文字に留めるように心がけてください。ヘルプタグは常に有効なので、あなたのタグの文を控えめ-つまり、短く-かつ、有益に保つことは重要です。タグはただひとつの概念を表す必要があり、その概念はインタフェース要素と直接関連している必要があります。各国語化は文字列を20から30パーセント長くすることがあり、これもタグを短く保つための別ののよい理由です。
  • インタフェース要素の名前がユーザの役に立ち、画面上で利用できないという場合を除き、要素の名前をタグの中に入れないでください。もし、ある要素が説明書とタグから名前で参照されている場合は、確実に名前を一致させてください。
  • マウスポインタが重なっている要素についてのみ説明しましょう。
  • たとえば、「初期設定に復旧する」【原文は“Restores default settings”】といった、動詞から始まる文章の断片を使用することができます。また、あなたはタグの大きさを制限するために、条項を省略してもかまいません。タグ文字列が完全な文章であるときは、終止符で終えてください。
  • あなたのアプリケーションに特有のコントロールの、機能的な情報を提供するためにヘルプタグを用いましょう。ウインドウコントロール、スクロールバー、その他の標準的なMac OS Xインタフェースの部品にタグを付けてはいけません。
  • あなたは文脈依存のヘルプタグを作成できますが、それは義務ではありません。ある項目が選択されたとき、淡色表示されたとき、その他の時に、同じ文字列が現れてもかまいません。タグがあらゆる状況に適用されたとしても、インタフェース要素が何を成し遂げるかを説明することで、あなたはユーザがコントロールの現在の状態を理解することを助けるでしょう。
  • ヘルプタグの本文は、あなたが記述しようとしているインタフェースに応じて、3つの方法のうちのひとつで書きましょう…

    ユーザがそのコントロールを使用することで、何を成し遂げるのかを説明しましょう。たとえば、「一覧に言語を追加、または削除」や「選択領域の赤味を下げる」等です。ほとんどのヘルプタグはこの形式を使用することができます。

    ユーザの行動の結果を説明する補足情報を与えましょう。この種類のタグは、既に説明文を含んでいるようなインタフェースにおいてもっとも効果的です。なぜならタグとインタフェースの説明文は、コントロールが何をして、ユーザはどう操作するのかを説明するために共に作用するからです。

    ユーザが知らない用語を定義しましょう。この種類のタグは、インタフェースに既にユーザへの説明が含まれている場合にのみ使用すべきです。


←第4章:Mac OS X環境
→第6章:ソフトウェアのインストールとソフトウェアの更新