Palm Programmer's Laboratory
Palm OS User Interface Guidelines/2-4
2-4 一般的なアプリケーションの動作ガイドライン
このセクションでは、アプリケーションがどのように振る舞うべきかについての一般的なガイドラインを説明します。
- アプリケーションの起動
- アプリケーションの終了
- グローバル検索のサポート
- ユーザープリファレンスの尊重
- システムメッセージの許可
本書の残りの章では、個々のコントロールの挙動についてより具体的なガイドラインを提供します。
アプリケーションの起動
アプリケーションは素早く起動しなければなりません。典型的な Palm ハンドヘルドのユーザーセッションは1〜2分です。ユーザーはアプリケーションの起動のたびに数秒余分に待たされることを望んではいません。
通常の起動では、スプラッシュスクリーンを表示するべきではありません。スプラッシュスクリーンを表示しても良いのは、ユーザーがアプリケーションを初めて起動した時か、あるいはアプリケーションが長時間かかるデモを実行中に残り時間を表示したい場合です。
ユーザーがアプリケーションを起動したときに基本フォームを表示することはそれほど重要ではありません。そうすることに意味がある場合のみそうして下さい。それよりも、ユーザーが以前終了した状態を復旧する方が良いでしょう。例えば、Memo Pad は常に最後に読んでいたメモを表示します。
ユーザーが以前終了した位置を表示するのは、シームレスなインターフェースを実現するという意味で望ましいことです。終了していないかのように振る舞うアプリケーションを作成することができれば、ユーザーは全ての Palm OS アプリケーションが同時に動作しているように考えることができます。
アプリケーションの終了
アプリケーションは終了コマンドを提供しません。Palm ハンドヘルドでは、ユーザーはアプリケーションを終了してから次のアプリケーションを起動する、という考え方をしません。考え方としては、全てのアプリケーションが同時に動作していて、その間を自由に移動するようなイメージになります。ユーザーはハンドヘルドの4つのハードボタンやアプリケーションボタンを押すことで、アプリケーション間の移動をします。
モーダルダイアログやアラートを含め、どのフォームからでも任意のタイミングで抜けられるようにして下さい。データの編集中であれば、フォームから離れる前にデータを保存します。フォームから離れる際にデータベースレコードを編集している最中であれば、アプリケーションはできるだけデータを破壊しないようにフォームから離れられるようにすべきです。
組込みのアプリケーションは保存されるレコードに必要なデータの最小セットを定義しています。ほとんどの場合、それは1文字分のデータです。Expense アプリケーションの場合、支払の種別は必須になります。
例えば、アドレス帳で連絡先情報を編集していて、別のアプリケーションで何かを調べる必要が生じたとしましょう。アプリケーションアイコンをタップしてから別のアプリケーションを起動しても編集中のデータを失うことはありません。アドレス帳は画面下部の Done ボタンをタップしなくても編集した内容を保存します。アドレス帳に戻ってきた時、メインフォームが表示され、編集していたレコードには変更内容が反映されています(図 2.14 参照)。
図 2.14 部分的なレコードを含む Address Book
特定の垂直市場向けアプリケーションでは、アプリケーションを決して終了しないように作成することは可能であり、また容認できるものです。これは、アプリケーションがハンドヘルドに事前に組み込まれ、そのハンドヘルドが PDA としては使用されない場合に限り受け入れられる方法です。
グローバル検索のサポート
データベースにテキストデータを保存するアプリケーションであれば、グローバル検索機能をサポートするようにして下さい(図 2.15 参照)。検索機能は、データベースレコード内の各単語に対して英文字の大小を区別せずに前方一致のみの検索をすべきです。前方一致のみの検索では、ユーザーが入力した文字列で始まる単語のみが検索にかかります。例えば、アプリケーションにレコードが2つあるとしします。1つは“And Then There Were None”というテキストで、もう1つは“How To Use a Lathe”だとします。ユーザーが単語“the”を指定したとすると、検索機能は最初のレコードの“Then” と “There”という単語にマッチします。しかし、2つ目のレコードの“Lathe”にはマッチしません。
多くのアプリケーションでは、ユーザーはレコードをプライベートに設定できます。プライベートなレコードはデータベースに保存されていますが、表示されない場合があります。アプリケーションでプライベートレコードをサポートする場合、それらのレコードを非表示やマスクに設定している場合にはグローバル検索の対象にしないようにして下さい。
図 2.15 検索
ユーザープリファレンスの尊重
Palm OS は、以下の表示に関するプリファレンスをシステムで保持しています。
- 日付の書式
- 時刻の書式
- 数値の書式
- 週の開始曜日(日曜か月曜か)
これらの情報を表示する場合、システムプリファレンスを確実に使用するようにして下さい。
Palm OS は、日付や開始/終了時刻、あるいは単一の時刻を選択するのに使える標準の画面を提供しています。アプリケーションが日付や時刻を使用する場合、これらの標準的な画面を使用して下さい。ユーザーは予定表やプリファレンスでこれらの使い方に慣れています。
Palm OS のプリファレンスでは、ハードボタンや入力エリアのアイコンをタップした際に起動するアプリケーションを変更することができます。どのアプリケーションを起動するかについてのユーザープリファレンスを尊重するようにして下さい。ただし、ユーザーがプリファレンスを上書きできるようにすることもできます。例えば、予定表の置き換えアプリを作成し、予定表のハードボタンでそのアプリケーションを起動するようにしたいとします。起動時にアラートダイアログを表示し、予定表のボタンでそのアプリケーションを起動するように割り当てを変更するかどうか問合せることができます。ユーザーが OK ボタンをタップすれば、アプリケーションはプリファレンスを変更することができます。キャンセルがタップされた場合は同じ確認を再びするべきではありませんが、後からボタンの割り当てを変更できるようにするユーザープリファレンスを提供するのは問題ないでしょう。
システムメッセージの許可
システムが以下のメッセージを表示できるようにして下さい。
- アラーム
- バッテリ残量警告
- 同期中のシステムメッセージ
事実上全ての Palm OS アプリケーションで使用される通常のイベントループには、システムがメッセージをポストして必要なイベントを処理するのに十分な時間があります。注意を要するのは、アプリケーションで長大な計算を行なう場合だけです。例えば、アプリケーションが 20,000レコードを越える大きなデータベースを持っていて、それら全てのレコードを対象として検索をかける必要があるとします。このループ内部では、定期的にシステムイベントをチェックした方が良いでしょう。