第 3 章 設計上の考慮事項
3.3 使い易さとGUIの設計
この節では、簡単で直感的に使用できるiアプリを作成するためのガイドラインを示します。携帯 電話のようなプラットフォームでは、一般的にはたくさんのキー操作を必要とする複雑なiアプリ は敬遠され、よりキー操作が少ないiアプリが求められることが想定されます。注意すべき点を次 に列挙します。
• iアプリの全体を通して一貫したLook&Feelを維持します。
• 物理的な画面領域が小さいため、1つの画面に表示するUIコンポーネントの数を最小限に抑えます。特に ユーザー操作可能なUIコンポーネント(ボタンなど)を1つの画面に多数表示した場合、フォーカス移動 操作などの手間により、ユーザーにとって操作が煩わしく感じられることがあります。
• UIレイアウト管理はメーカーによって異なりますが、ほとんどの場合、デフォルトのレイアウト管理は簡 単なフローレイアウトです。UIレイアウトをシンプルにし、iアプリ実行画面の外観が、メーカー間で大 きく変わらないようにします。
• スクロールを最小限に抑えます。なお、Panelは垂直方向のスクロールをサポートしますが、Canvasを 使用する場合は画面のスクロールはアプリケーションプログラム側で制御する必要があります。
• ソフトキーは、ユーザー操作を簡単にする便利な方法です。複雑なユーザー操作が発生するような画面では、
ソフトキーをショートカットキーのように使用することを検討してください。たとえば多くの入力用コンポ ーネント部品が配置された画面において、ソフトキーはどのコンポーネントにフォーカスがある状態でも確 定動作を行わせるためのキーとして使用することができます。
• 携帯電話でのテキスト入力は煩雑なため、入力する文字数を最小限に抑えます。可能な限り選択肢を表示し、
その中からユーザーが選択する形の入力方式にします。
• よく行われる操作は、多数のメニュー階層を移動したり、多数のキー操作をしなくても使用できるように画 面構成を設計します。
3.3.1 ターゲットユーザー向けの設計
電話はだれでも使いますが、コンピュータはだれもが使うわけではありません。したがって、UI コンポーネント間のフォーカス移動やスクロールという考え方は、全てのユーザーにとって直感的 にわかるわけではありません。広範なユーザーに使用してもらうためには、ユーザーインタフェー スはできるだけ直感的に操作できなければなりません。iアプリのユーザーインタフェースを設計 する際は、それを使用すると見込まれているターゲットユーザー層を見極める必要があります。
3.3.2 iアプリの操作方法の設計指針
ユーザー操作は、それがどのくらい頻繁に行われるかや、ユーザーにとってどの程度重要なもので あるかによって、いくつかのカテゴリに分類する必要があります。一般には、頻繁に行われる操作 はより簡単に使えるようにすべきです。たとえば、銀行残高の確認は口座間の振り替えよりも頻繁 に行われます。したがって理想的には、残高の確認は振り替えよりも少ないキー操作でできるよう にすべきです。
一方、個人識別 ID の入力など、いくつかのキー操作が必要な操作は、それが重要な機能である限
り(個人識別 ID の例ではユーザーの銀行口座などへの不正アクセスの防止)、ユーザーに受け入
れられます。さらにiアプリを携帯電話にインストールして最初に使い始める際に、多少煩雑では
あってもその後の操作を簡単にする目的で、一定の情報入力をユーザーが行うようにするというこ
とも検討の余地があります。
Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.
操作には一貫性がなければなりません。項目の選択方法は、どの画面でも一貫しているべきです。
ソフトキーは、誤操作や使いづらさを避けるため、iアプリ全体を通して一貫した考え方に基づい て使用できなければなりません。また最も重要かつ頻繁に使用される操作は、最も少ないキー操作 でできるようにすべきです。
3.3.3 スクロール
理論的には、物理画面よりも大きな仮想画面を設計することができます。しかしそのような画面で は、画面全体を見たり UI コンポーネント間をフォーカス移動するには、多くのスクロールが必要 になります。スクロールは必ずしもレスポンスのよい画面操作ではないため、ユーザーはスクロー ルの多い画面を使いづらいと感じる可能性があります。スクロールは最小限に抑えることを目標に すべきです。なお、Panel は垂直方向のスクロールのみサポートします。
【DoJa-2.0】
DoJa-1.0プロファイルにおいては、Panelのスクロールサポート有無はメーカーの実装に委ねられていました。
DoJa-2.0プロファイル以降では、デフォルトレイアウトマネージャまたはHTMLレイアウトマネージャが設定
されているPanelは縦方向のスクロールをサポートします。
3.3.4 キーおよびソフトキー
iアプリでは以下の標準的なキーを使用することができます。
・ 上下左右キーおよび選択(決定)キー
・ 0~9までの数字キーおよび#キー、*キー
・ 待ち受けアプリケーション切り替えキー
メーカーによっては、iアプリオプションのカテゴリに属する機能としてこれら以外の特別なキー をサポートする場合があります。
また、iアプリ対応携帯電話には上記以外に 2 つのソフトキーが設けられます。ソフトキーの外観 や場所はメーカーによって異なります。前述の通り、ソフトキーを使用するとユーザーインタフェ ースの使用感が大幅に改善されることがあります。iアプリの設計ではソフトキーの使用を考慮す べきですが、特定の外観や場所に依存することは避けるようにしてください。
【DoJa-2.0】
待ち受けアプリケーション切り替えキーは、DoJa-2.0プロファイルの待ち受けアプリケーション機能のために 新設されました.。待ち受けアプリケーションが休眠状態や非活性化状態である場合を除き、iアプリは直接こ のキーを使用(キーイベントの取得)することができます。待ち受けアプリケーションが休眠状態や非活性化 状態である場合は、待ち受けアプリケーション切り替えキーのイベントはシステムが使用します。
なお、待ち受けアプリケーションの詳細については第9章を参照してください。
【DoJa-5.0】
DoJa-5.0プロファイル以降、メーカーによってはADFのDrawAreaキーを使用することで、デフォルト
(DrawAreaキー未使用時)の表示領域よりも広い表示領域を使用できる場合があります。そのような機種に は、Canvas.setSoftLabelVisible()メソッドを使用することで、Canvas表示時のソフトキーラベルの 表示のオン、オフを切り替えることができるものがあります。なお、setSoftLabelVisible()メソッドは Frameクラスで定義されたメソッドですが、現在のプロファイルではCanvas以外のフレームオブジェクト
(PanelやDialog)に対してこのメソッドを呼び出すことはできません。
Copyright Ⓒ 2008-2012 NTT DOCOMO, Inc. All Rights Reserved.
3.3.5 データ入力
ユーザーがデータを入力する手段は、原則的に携帯電話のキーパッドだけです。したがって、テキ ストデータを入力するよりも数字データを入力する方がより簡単に行えます。これはテキストデー タの場合、 1 文字を入力するために複数回のキー操作が必要になるためです。テキスト入力は最小 限に抑えるべきです。
3.3.6 パスワード入力
パスワードの入力は次のいずれかの方法で行います。
• パスワードを表示しない場合は、TextBoxのコンストラクタで表示モードパラメータに TextBox.DISPLAY_PASSWORDを渡します。すべての入力文字は「*」で表示されます。
• パスワードを表示する場合は、TextBoxのコンストラクタで表示モードパラメータに
TextBox.DISPLAY_ANYを渡します。この場合、入力された文字はすべて画面上に表示されます。
1 つ目の方法を使用する場合、一般的にはパスワードには数字のみを使用します。携帯電話では PC と異なり、数字以外の文字をパスワード入力することはユーザーにとって非常に困難な作業となり ます。パスワードに使用する文字を数字のみとする場合、TextBox.setInputMode()メソッド を使用して TextBox の初期入力モードを数字入力モードとしておくことで、ユーザーの誤操作を 防ぐことができます。
パスワードに数字以外の文字(テキスト文字)を許可する場合は、2 つ目の方法を使用します。
3.3.7 スレッドの使用
スレッドは、ネットワーク入出力や UI での対話など、長時間を要するブロック操作を行うときに は非常に便利です。しかし、どのようなマルチスレッドシステムでも、アクティブスレッド間のコ ンテキスト切り替えにはオーバーヘッドが必要です。携帯電話の処理能力は限られているため、ユ ーザー操作をストレスなく可能にするためにスレッドの数は最小限にすべきです。
また、アプリケーションプログラム側でマルチスレッドプログラミングを行っていなくても、シス テムがイベント処理などのためにスレッドを生成することがあります。どの機種でも動作するiア プリを作成するには、スレッドセーフなプログラム設計が必要です。
注意事項:
● iアプリ実行環境では、以下のような状況でダイアログやポップアップが表示されます。
・ アプリケーションプログラム自身がDialogクラスを使用してダイアログを表示させる場合
・ HTTP(S)通信において、Webサーバーから認証(BASIC認証)を求められた場合
・ HTTPS通信においてサーバー証明書の内容に問題があり、ユーザーに警告を示す場合
・ OBEX外部接続機能により赤外線ポートを使用する場合
・ アプリケーション連携機能により、他のアプリケーションの起動や呼び出しをユーザーに確認する場合 これらのダイアログやポップアップは排他的にのみ表示可能であり、複数のスレッドからこれらを同時に表 示させることはできません。これらを複数のスレッドから同時に表示させようとした際の振る舞いはメーカ ーにより異なります。開発者は、これらの状況が複数スレッドで同時に発生することのないようアプリケー ションプログラムを設計する必要があります。