本明細書に記載される方法、デバイス、及びGUIは、複数の方法でアプリケーション切り替えユーザインタフェースの対話及び機能性を改善する。
いくつかの実施形態では、アプリケーション切り替えユーザインタフェースが表示されている間に、デバイスのタッチ感知面上で検出された接触によるスワイプジェスチャにより、デバイスに、スワイプジェスチャの様々な特性(例えば、スワイプジェスチャの方向、接触の移動速度及び/若しくは距離、並びに/又はスワイプジェスチャの開始及び/若しくは終了位置)に応じて異なる動作を実行させる。具体的には、いくつかの実施形態では、アプリケーション切り替えユーザインタフェース内のそれぞれのアプリケーションの表現に対応する位置から開始された上向きスワイプジェスチャは、デバイスに、それぞれのアプリケーションを閉じさせ、一方、アプリケーション切り替えユーザインタフェース内の任意のアプリケーションの表現によって占有されない位置から開始された上向きスワイプは、デバイスに、アプリケーション起動ユーザインタフェース(例えば、ホーム画面ユーザインタフェース)にナビゲートさせる。更に、いくつかの実施形態では、アプリケーション切り替えユーザインタフェース上で検出された横向きスワイプジェスチャ(例えば、接触の移動は、1つ以上のアプリケーションの表現(単数又は複数)を横切る移動に対応する)は、デバイスに、アプリケーション切り替えユーザインタフェース内のアプリケーションの表現をスクロールさせる。いくつかの実施形態では、アプリケーション切り替えユーザインタフェース内のそれぞれのアプリケーションの表現に対応するタッチ感知面上の位置での下向きスワイプジェスチャにより、デバイスは、(例えば、第1の基準が下向きスワイプジェスチャによって満たされると)デフォルトモード(例えば、全画面モード)でそれぞれのアプリケーションを表示させるか、又は、(例えば、第2の基準が下向きスワイプジェスチャによって満たされると)それぞれのアプリケーションを(例えば、ディスプレイ上で下にシフトされる)拡張到達可能モードで表示させる。
以下では、図1A、図1B、図2、及び図3は、例示的なデバイスの説明を提供する。図5A~図5Zは、アプリケーション切り替えユーザインタフェースと対話するための例示的なユーザインタフェースを示す。図6A~図6Dは、アプリケーション切り替えユーザインタフェースの方法を示すフロー図である。図5A~図5Zのユーザインタフェースは、図6A~図6Dのプロセスを説明するために使用される。
例示的なデバイス
ここで、添付図面に実施例が示される実施形態への詳細な参照が行われる。以下の詳細な説明では、説明される様々な実施形態の完全な理解を提供するために数多くの具体的な詳細が記載されている。しかしながら、記載されている様々な実施形態は、これらの具体的な詳細を伴わずとも実践し得ることが、当業者には明らかであろう。他の例では、周知の方法、手順、構成要素、回路、及びネットワークは、実施形態の態様を不必要に不明瞭にしないよう詳細には説明されていない。
本明細書では、第1、第2などの用語は、いくつかの実施例で、様々な要素を説明するために使用されるが、これらの要素は、それらの用語によって限定されるべきではないことも理解されるであろう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施形態の範囲から逸脱することなく、第1の接触は、第2の接触と称することができ、同様に、第2の接触は、第1の接触と称し得る。第1の接触及び第2の接触は両方とも接触であるが、文脈がそうではないことを明確に示さない限り、それらは同じ接触ではない。
本明細書に記載する様々な実施形態の説明で使用される術語は、特定の実施形態を説明することのみを目的とし、限定的であることは意図されていない。記載する様々な実施形態の説明及び添付の特許請求の範囲では、単数形の「a(1つ、一)」、「an(1つ、一)」、及び「the(その、この)」は、文脈上別途明白に記載しない限り、複数形も同様に含むことが意図される。また、本明細書で使用されるとき、用語「及び/又は」は、関連する列挙された項目のうちの1つ以上のいずれか及び全ての考えられる組み合わせを指し、かつこれを含むことを理解されたい。用語「includes(含む)」、「including(含む)」、「comprises(含む、備える)」、及び/又は「comprising(含む、備える)」は、本明細書で使用する場合、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を除外しないことが更に理解されるであろう。
本明細書に記載される場合、用語「if(~の場合)」は、任意選択で、文脈に依存して「when(~のとき)」、「upon(~すると)」、「in response to determining(~と判定したことに応じて)」、又は「in response to detecting(~を検出したことに応じて)」を意味するものと解釈される。同様に、「~と判定された場合(if it is determined)」又は「[記載の状態又はイベント]が検出された場合(if [a stated condition or event] is detected)」という語句は、任意選択的に、文脈に応じて、「~と判定したとき(upon determining)」若しくは「~と判定したことに応じて(in response to determining)」、又は「[記載の状態又はイベント]を検出したとき(upon detecting [the stated condition or event])」若しくは「[記載の状態又はイベント]を検出したことに応じて(in response to detecting [the stated condition or event])」を意味すると解釈される。
電子デバイス、そのようなデバイス用のユーザインタフェース、及びそのようなデバイスを使用する関連するプロセスの実施形態が説明される。いくつかの実施形態では、デバイスは、PDA機能及び/又は音楽プレーヤ機能などの他の機能も含む、携帯電話などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態は、Cupertino、CaliforniaのApple Inc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスを含むが、これらに限定されない。任意選択的に、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を有するラップトップ又はタブレットコンピュータなどの他のポータブル電子デバイスも使用される。また、いくつかの実施形態では、デバイスはポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を有するデスクトップコンピュータであることも理解されたい。
以下の論考では、ディスプレイ及びタッチ感知面を含む電子デバイスについて説明する。しかしながら、電子デバイスは任意選択で、物理キーボード、マウス、及び/又はジョイスティックなどの、1つ以上の他の物理ユーザインタフェースデバイスを含むことを理解されたい。
デバイスは、一般的に、メモ取りアプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、ビデオ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽プレーヤアプリケーション及び/又はデジタルビデオプレーヤアプリケーションのうちの1つ以上などの様々なアプリケーションをサポートする。
本デバイス上で実行される様々なアプリケーションは、タッチ感知面などの、少なくとも1つの共通の物理ユーザインタフェースデバイスを、任意選択的に使用する。タッチ感知面の1つ以上の機能、並びにデバイス上に表示される対応する情報は、アプリケーションごとに、及び/又はそれぞれのアプリケーション内で、任意選択的に、調整及び/又は変更される。このように、デバイスの共通の物理アーキテクチャ(タッチ感知面など)は、任意選択的に、ユーザにとって直観的かつ透明なユーザインタフェースを備える様々なアプリケーションをサポートする。
ここで、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。図1Aは、いくつかの実施形態に係る、タッチ感知ディスプレイシステム112を有するポータブル多機能デバイス100を示すブロック図である。タッチ感知ディスプレイシステム112は、便宜上「タッチスクリーン」と呼ばれる場合があり、単にタッチ感知ディスプレイと呼ばれる場合もある。デバイス100は、メモリ102(任意選択で、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ122、1つ以上の処理ユニット(CPU)120、周辺機器インタフェース118、RF回路108、音声回路110、スピーカ111、マイクロフォン113、入出力(I/O)サブシステム106、その他の入力又は制御デバイス116、及び外部ポート124を含む。デバイス100は、任意選択的に、1つ以上の光センサ164を含む。デバイス100は任意選択で、デバイス100(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)上の接触の強度を検出する1つ以上の強度センサ165を含む。デバイス100は、任意選択的に、デバイス100上で触知出力を生成する(例えばデバイス100のタッチ感知ディスプレイシステム112又はデバイス300のタッチパッド355などのタッチ感知面上で触知出力を生成する)1つ以上の触知出力生成器167を含む。これらの構成要素は、任意選択的に、1つ以上の通信バス又は信号ライン103を介して通信する。
デバイス100は、ポータブル多機能デバイスの一例に過ぎず、デバイス100は、任意選択的に、示されているものよりも多くの構成要素又は少ない構成要素を有するものであり、任意選択的に、2つ以上の構成要素を組み合わせるものであり、又は、任意選択的に、それらの構成要素の異なる構成若しくは配置を有するものであることを理解されたい。図1Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせで実装される。
メモリ102は、任意選択的に、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリを含む。CPU(単数又は複数)120及び周辺機器インタフェース118などのデバイス100の他の構成要素によるメモリ102へのアクセスは任意選択で、メモリコントローラ122により制御される。
周辺機器インタフェース118が使用され、デバイスの入力及び出力周辺機器を、CPU(単数又は複数)120及びメモリ102と結合することができる。1つ以上のプロセッサ120は、メモリ102に記憶された様々なソフトウェアプログラム及び/若しくは命令セットを動作させる又は実行して、デバイス100のための様々な機能を実行し、データを処理する。
いくつかの実施形態では、周辺機器インタフェース118、CPU(単数又は複数)120、及びメモリコントローラ122は任意選択で、チップ104などの単一チップ上で実装される。いくつかの他の実施形態では、それらは別々のチップ上に任意選択的に実装される。
RF(radio frequency、無線周波数)回路108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路108は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、任意選択的に、これらの機能を実行するための周知の回路を含み、それらの回路としては、限定するものではないが、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(subscriber identity module、SIM)カード、メモリなどが挙げられる。RF回路108は、任意選択的に、ワールドワイドウェブ(World Wide Web、WWW)とも呼ばれるインターネット、イントラネット、並びに/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(local area network、LAN)及び/若しくはメトロポリタンエリアネットワーク(metropolitan area network、MAN)などの無線ネットワークなどのネットワークと、また他のデバイスと、無線通信によって通信する。無線通信は任意選択で、移動通信のためのグローバルシステム(Global System for Mobile Communications、GSM)、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、高速ダウンリンクパケット接続(high-speed downlink packet access、HSDPA)、高速アップリンクパケット接続(high-speed uplink packet access、HSUPA)、Evolution,Data-Only(EV-DO)、HSPA、HSPA+、デュアルセルHSPA(Dual-Cell HSPA、DC-HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離無線通信(near field communication、NFC)、広帯域符号分割多元接続(wideband code division multiple access、W-CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth、Wireless Fidelity(Wi-Fi)(例えば、IEEE 802.11a、IEEE 802.11ac、IEEE 802.11ax、IEEE 802.11b、IEEE 802.11g、及び/若しくはIEEE 802.11n)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol、VoIP)、Wi-MAX、電子メールのためのプロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol、IMAP)及び/若しくはポストオフィスプロトコル(post office protocol、POP))、インスタントメッセージング(例えば、拡張可能メッセージング及びプレゼンスプロトコル(extensible messaging and presence protocol、XMPP)、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service、IMPS))、並びに/又はショートメッセージサービス(Short Message Service、SMS)、あるいは本文書の出願日現在までにまだ開発されていない通信プロトコルを含む任意の他の適切な通信プロトコルを含むが、それらに限定されない、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用する。
オーディオ回路110、スピーカ111、及びマイクロフォン113は、ユーザとデバイス100との間のオーディオインタフェースを提供する。オーディオ回路110は、周辺機器インタフェース118からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ111に送信する。スピーカ111は、電気信号を人間の可聴音波に変換する。また、オーディオ回路110は、マイクロフォン113によって音波から変換された電気信号を受信する。オーディオ回路110は、電気信号をオーディオデータに変換し、このオーディオデータを処理のために周辺機器インタフェース118に送信する。オーディオデータは、任意選択的に、周辺機器インタフェース118によって、メモリ102及び/若しくはRF回路108から取得され、かつ/又はメモリ102及び/若しくはRF回路108に伝送される。いくつかの実施形態では、音声回路110は、更にヘッドセットジャック(例えば、212、図2)も含む。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば片耳又は両耳用のヘッドホン)及び入力(例えばマイクロフォン)の両方を備えるヘッドセットなどの着脱可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
I/Oサブシステム106は、タッチ感知ディスプレイシステム112及びその他の入力又は制御デバイス116などのデバイス100上の入出力周辺機器を周辺機器インタフェース118と結合する。I/Oサブシステム106は、任意選択的に、ディスプレイコントローラ156、光センサコントローラ158、強度センサコントローラ159、触覚フィードバックコントローラ161、及び他の入力若しくは制御デバイスのための1つ以上の入力コントローラ160を含む。1つ以上の入力コントローラ160は、他の入力若しくは制御デバイス116から電気信号を受信し、又は、他の入力若しくは制御デバイス116に電気信号を送信する。その他の入力又は制御デバイス116は任意選択で、物理的ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替的実施形態では、入力コントローラ(単数又は複数)160は任意選択で、キーボード、赤外線ポート、USBポート、スタイラス、及び/又はマウスなどのポインタデバイスのうちのいずれかと結合される(又は、いずれにも結合されない)。1つ以上のボタン(例えば、208、図2)は、任意選択で、スピーカ111及び/又はマイクロフォン113の音量制御のためのアップ/ダウンボタンを含む。1つ以上のボタンは、任意選択で、プッシュボタン(例えば、206、図2)を含む。
タッチ感知ディスプレイシステム112は、デバイスとユーザの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ156は、タッチ感知ディスプレイシステム112から電気信号を受信し、及び/又はタッチ感知ディスプレイシステム112へ電気信号を送信する。タッチ感知ディスプレイシステム112は、ユーザに視覚出力を表示する。この視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ(総称して「グラフィック」)を任意選択的に含む。いくつかの実施形態では、視覚出力の一部又は全ては、ユーザインタフェースオブジェクトに対応する。本明細書で使用されるように、用語「アフォーダンス」は、ユーザ-対話形式のグラフィカルユーザインタフェースオブジェクト(例えば、グラフィカルユーザインタフェースオブジェクトに向かって方向付けられた入力に応答するように構成されているグラフィカルユーザインタフェースオブジェクト)を指す。ユーザ対話形式のグラフィカルユーザインタフェースオブジェクトの例は、ボタン、スライダ、アイコン、選択可能メニュー項目、スイッチ、ハイパーリンク、又はその他のユーザインタフェース制御を含むが、それらに限定されない。
タッチ感知ディスプレイシステム112は、触覚及び/又は触知の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有する。(メモリ102内の任意の関連するモジュール及び/又は命令セットと共に)タッチ感知ディスプレイシステム112及びディスプレイコントローラ156は、タッチ感知ディスプレイシステム112上の接触(及び、接触の任意の移動又は中断)を検出し、検出された接触をタッチ感知ディスプレイシステム112上で表示されるユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との相互作用に変換する。いくつかの実施形態では、タッチ感知ディスプレイシステム112とユーザとの間の接触点は、ユーザの指又はスタイラスに対応する。
タッチ感知ディスプレイシステム112は任意選択で、LCD(liquid crystal display、液晶ディスプレイ)技術、LPD(light emitting polymer display、発光ポリマーディスプレイ)技術、又はLED(light emitting diode、発光ダイオード)技術を使用するが、他の実施形態では、他のディスプレイ技術が使用される。タッチ感知ディスプレイシステム112及びディスプレイコントローラ156は任意選択で、容量技術、抵抗性技術、赤外線技術、及び表面音響波技術、並びに、タッチ感知ディスプレイシステム112との1つ以上の接触点を判定するためのその他の近接センサアレイ又は他の要素を含むが、これらに限定されない、現在既知の又は後に開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及びその任意の移動又は中断を検出する。いくつかの実施形態では、Cupertino、CaliforniaのApple Inc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)などにおいて見られるような、投影型相互キャパシタンス検知技術が使用される。
タッチ感知ディスプレイシステム112は任意選択で、100dpiを超えるビデオ解像度を有する。いくつかの実施形態では、タッチスクリーンの映像解像度は、400dpiを超える(例えば、500dpi、800dpi、又はより高い)。ユーザは任意選択で、スタイラス、指などの任意の適切な物体又は付属物を使用して、タッチ感知ディスプレイシステム112と接触する。いくつかの実施形態では、ユーザインタフェースは、指に基づく接触及びジェスチャで機能するように設計されるが、これらは、タッチスクリーン上での指の接触面積がスタイラスの接触面積よりも大きいことに起因して、スタイラスに基づく入力よりも精度が低い場合がある。一部の実施形態では、デバイスは、指による粗い入力を、ユーザによって所望されているアクションを実行するための、正確なポインタ/カーソルの位置又はコマンドに変換する。
いくつかの実施形態では、タッチスクリーンに加えて、デバイス100は、任意選択的に、特定の機能をアクティブ化又は非アクティブ化するためのタッチパッドを含む。一部の実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知エリアである。タッチパッドは任意選択で、タッチ感知ディスプレイシステム112と分離したタッチ感知面、又はタッチスクリーンによって形成されたタッチ感知面の延長である。
デバイス100は、様々な構成要素に電力を供給する電力システム162も含む。電力システム162は、任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
また、デバイス100は、任意選択的に、1つ以上の光センサ164を含む。図1Aは、I/Oサブシステム106内の光センサコントローラ158と結合された光センサを示す。光センサ(単数又は複数)164は、任意選択で、電荷結合デバイス(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタを含む。光センサ(単数又は複数)164は、1つ以上のレンズを通じて投影された、環境からの光を受信し、画像を表すデータに光を変換する。撮像モジュール143(カメラモジュールとも呼ばれる)と連携して、光センサ(単数又は複数)164は任意選択で、静止画像及び/又はビデオをキャプチャする。いくつかの実施形態では、タッチスクリーンを静止画像及び/又はビデオ画像取得のためのビューファインダとして使用することができるように、光センサは、デバイスの前面上のタッチ感知ディスプレイシステム112の反対である、デバイス100の背面上に配置される。いくつかの実施形態では、ユーザの画像が取得されるように(例えば、自撮りのため、ユーザがタッチスクリーン上で他のビデオ会議参加者を見ている間のビデオ会議のためなど)、別の光センサがデバイスの前面に配置される。
デバイス100はまた、任意選択的に、1つ以上の接触強度センサ165を含む。図1Aは、I/Oサブシステム106内の強度センサコントローラ159と結合された接触強度センサを示す。接触強度センサ(単数又は複数)165は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(若しくは圧力)を測定するために使用されるセンサ)を任意選択で含む。接触強度センサ(単数又は複数)165は、環境から接触強度情報(例えば、圧力情報又は圧力情報のためのプロキシ)を受信する。いくつかの実施形態では、少なくとも1つの接触強度センサは、タッチ感知面(例えばタッチ感知ディスプレイシステム112)と並置される、又はそれに近接される。いくつかの実施形態では、少なくとも1つの接触強度センサは、デバイス100の前面上に位置するタッチスクリーンディスプレイシステム112の反対にある、デバイス100の背面上に配置される。
また、デバイス100は、任意選択的に、1つ以上の近接センサ166を含む。図1Aは、周辺機器インタフェース118と結合された近接センサ166を示す。代わりに、近接センサ166は、I/Oサブシステム106内の入力コントローラ160と結合される。いくつかの実施形態では、多機能デバイスがユーザの耳の近くに配置されるとき(例えば、ユーザが電話通話を行っているとき)、近接センサは、タッチ感知ディスプレイシステム112をターンオフ及び無効にする。
デバイス100はまた、任意選択的に、1つ以上の触知出力生成器167を含む。図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161と結合され触知出力生成器を示す。いくつかの実施形態では、触知出力生成器(単数又は複数)167は、スピーカ若しくは他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などの、エネルギを線形の動きに変換する電気機械デバイスを含む。触知出力生成器(単数又は複数)167は、触覚フィードバックモジュール133から触知フィードバック生成命令を受信し、デバイス100のユーザが感知できる触知出力をデバイス100上に生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)と並置される、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス100の表面の内/外)に、又は水平方向(例えば、デバイス100の表面と同じ平面内の前後)に移動させることによって、触知出力を生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器センサは、デバイス100の前面上に位置するタッチ感知ディスプレイシステム112の反対である、デバイス100の背面上に配置される。
また、デバイス100は、任意選択的に、1つ以上の加速度計168を含む。図1Aは、周辺機器インタフェース118と結合された加速度計168を示す。代わりに、加速度計168は任意選択で、I/Oサブシステム106内の入力コントローラ160と結合される。一部の実施形態では、情報は、1つ以上の加速度計から受信したデータの分析に基づいて、ポートレートビュー又はランドスケープビューでタッチスクリーンディスプレイ上に表示される。デバイス100は、加速度計168に加えて、磁気計並びにデバイス100の場所及び向き(例えば、縦方向又は横方向)に関する情報を取得するためのGPS(又はGLONASS又は他のグローバルナビゲーションシステム)受信機を任意選択的に含む。
いくつかの実施形態では、メモリ102に記憶されたソフトウェア構成要素は、オペレーティングシステム126、通信モジュール(又は、命令セット)128、接触/動きモジュール(又は、命令セット)130、グラフィックモジュール(又は、命令セット)132、触覚フィードバックモジュール(又は、命令セット)133、テキスト入力モジュール(又は、命令セット)134、全地球測位システム(Global Positioning System、GPS)モジュール(又は、命令セット)135、及びアプリケーション(又は、命令セット)136を含む。更に、いくつかの実施形態では、図1A及び図3に示されるように、メモリ102は、デバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、現在アクティブ状態のアプリケーションがある場合に、どのアプリケーションが現在アクティブであるかを示すアクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチ感知ディスプレイシステム112の様々な領域を占有しているかを示す表示状態、デバイスの様々なセンサ及びその他の入力又は制御デバイス116から取得される情報を含むセンサ状態、並びにデバイスの位置及び/又は姿勢に関する位置及び/若しくは位置情報、のうちの1つ以上を含む。
オペレーティングシステム126(例えば、iOS、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、又はVxWorksなどの組み込みオペレーティングシステム)は、全体的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素の間の通信を促進する。
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート124(例えば、ユニバーサルシリアルバス(Universal Serial Bus、USB)、FIREWIREなど)は、直接的に、又はネットワーク(例えばインターネット、無線LANなど)を介して間接的に、他のデバイスに結合するように適合されている。いくつかの実施形態では、外部ポートは、Cupertino、CaliforniaのApple Inc.からのいくつかのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイス内で使用される30ピンコネクタと同一若しくは類似した、及び/又は互換性のあるマルチピン(例えば、30ピン)コネクタである。いくつかの実施形態では、外部ポートは、Cupertino、CaliforniaのApple Inc.からのいくつかのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスにおいて使用されるLightningコネクタと同一若しくは類似した、及び/又は互換性のあるLightningコネクタである。
接触/動きモジュール130は任意選択で、タッチ感知ディスプレイシステム112との接触(ディスプレイコントローラ156と連携して)、及び他のタッチ感知デバイスとの接触(例えば、タッチパッド又は物理クリックホイール)を検出する。接触/動きモジュール130は、接触が発生したかを判定すること(例えば、指ダウンイベントを検出する)、接触の強度を判定すること(例えば、接触の力若しくは圧力、又は接触の力若しくは圧力に代替するもの)、接触の移動があるかを判定すること及びタッチ感知面を横切る移動を追跡すること(例えば、1つ以上の指のドラッグイベントを検出する)、及び接触が停止したかどうかを判定すること(例えば、指アップイベント又は接触の中断を検出する)などの、接触の検出(例えば、指又はスタイラスによる)に関連する様々な動作を実行するためのソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データによって表される、接触点の移動を判定することは、任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを含む。これらの動作は、任意選択で、単一の接触(例えば、1本の指の接触又はスタイラスの接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態では、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
接触/動きモジュール130は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターンを有する(例えば検出される接触の動き、タイミング、及び/又は強度が異なる)。したがって、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指のタップジェスチャを検出することは、フィンガダウンイベントを検出し、続いて(例えば、アイコンの位置での)そのフィンガダウンイベントと同一の位置(又は、実質的に同一の位置)でのフィンガアップ(リフトオフ)イベントを検出することを含む。別の実施例として、タッチ感知面上の指のスワイプジェスチャを検出することは、フィンガダウンイベントを検出し、続いて1つ以上の指のドラッグイベントを検出し、その後、フィンガアップ(リフトオフ)イベントを検出することを含む。同様に、タップ、スワイプ、ドラッグ、及び他のジェスチャは、任意選択で、スタイラスに対して、スタイラスに対する特定の接触パターンを検出することにより、検出される。
いくつかの実施形態では、指のタップジェスチャを検出することは、指ダウンイベントを検出することと指アップイベントを検出することとの間の時間の長さに依存するが、指ダウンイベントを検出することと指アップイベントを検出することとの間の指の接触の強度とは関連しない。いくつかの実施形態では、タップジェスチャは、タップの間の指の接触の強度が、軽い押圧又は深い押圧強度閾値などの所与の強度閾値を満たす(名目上の接触検出強度閾値よりも大きい)かに関わらず、指ダウンイベントと指アップイベントの間の時間の長さが予め定められた値よりも短い(例えば、0.1、0.2、0.3、0.4又は0.5秒よりも短い)との判定に従って検出される。したがって、指のタップジェスチャは、特定の入力基準が満たされるために、接触の特性強度が所与の強度閾値を満たすことを必要としない特定の入力基準を満たすことができる。明確にするために、タップジェスチャにおける指の接触は一般的に、指ダウンイベントを検出するために、それを下回ると接触が検出されない名目上の接触検出強度閾値を満たす必要がある。同様の分析は、スタイラスによるタップジェスチャ又は他の接触を検出することに適用される。デバイスがタッチ感知面上をホバリングする指又はスタイラスの接触を検出することが可能なケースでは、名目上の接触検出強度閾値は任意選択で、指又はスタイラスとタッチ感知面の間の物理的接触に対応しない。
同様の方式で、同一の概念が他のタイプのジェスチャに適用される。例えば、スワイプジェスチャ、ピンチジェスチャ、デピンチジェスチャ、及び/又は長い押圧ジェスチャは任意選択で、ジェスチャに含まれる接触の強度と関係しない、又は認識されるためにジェスチャを実行する接触が強度閾値に到達することを必要としないのいずれかである基準を満たすことに基づいて検出される。例えば、スワイプジェスチャは、1つ以上の接触の移動量に基づいて検出され、ピンチジェスチャは、相互に向かう2つ以上の接触の移動に基づいて検出され、デピンチジェスチャは、相互に離れる2つ以上の接触の移動に基づいて検出され、長い押圧ジェスチャは、閾値移動量よりも小さいタッチ感知面上の接触の期間に基づいて検出される。したがって、特定のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことを特定のジェスチャ認識基準が必要としないという記述は、ジェスチャにおける接触(複数可)が対応する強度閾値に到達しない場合に特定のジェスチャ認識基準が満たされることが可能であること、及びジェスチャにおける接触のうちの1つ以上が対応する強度閾値に到達する、又は強度閾値を超える状況で満たされることも可能であることを意味する。いくつかの実施形態では、タップジェスチャは、接触が所定の時間期間の間にそれぞれの強度閾値を上回るか又は下回るかに関わらず、指ダウンイベント及び指アップイベントが所定の時間期間内で検出されたという判定に基づいて検出され、スワイプジェスチャは、接触が接触の移動の終わりにそれぞれの強度閾値を上回る場合でさえ、接触の移動が所定の大きさよりも大きいという判定に基づいて検出される。ジェスチャの検出がジェスチャを実行する接触の強度によって影響される実施態様でさえ(例えば、接触の強度が強度閾値を上回るときにデバイスが長い押圧をより素早く検出し、又は接触の強度がより高いときにデバイスがタップ入力の検出に遅れる)、接触が特定の強度閾値に到達しない状況でジェスチャを認識する基準を満たすことができる限り(例えば、ジェスチャを認識するために要する時間量が変化する場合でさえ)、それらのジェスチャの検出は、接触が特定の強度閾値に到達することを必要としない。
接触強度閾値、期間閾値、及び移動閾値は、一部の状況では、同一の入力要素又は領域に方向付けられる2つ以上の異なるジェスチャを区別するためのヒューリスティックを作成するために、様々な異なる組み合わせで組み合わされ、それによって、同一の入力要素との複数の異なる相互作用がより豊かなセットのユーザ相互作用及び応答を提供するように有効化される。ジェスチャ認識基準の特定のセットが、その特定のジェスチャ認識基準が満たされるために接触(単数又は複数)の強度がそれぞれの強度閾値を満たすことを必要としないという記述は、ジェスチャがそれぞれの強度閾値を超える強度を有する接触を含むときに満たされる基準を有する他のジェスチャを識別するための他の強度に依存するジェスチャ認識基準をそれと同時に評価することを排除しない。例えば、いくつかの状況では、第1のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことを必要としない第1のジェスチャのための第1のジェスチャ認識基準は、対応する強度閾値に到達する接触(複数可)に依存する第2のジェスチャのための第2のジェスチャ認識基準との競争関係にある。そのような競争では、ジェスチャは任意選択で、第2のジェスチャのための第2のジェスチャ認識基準が最初に満たされる場合に、第1のジェスチャのための第1のジェスチャ認識基準を満たすものとして認識されない。例えば、接触が所定の移動量を移動する前に接触が対応する強度閾値に到達する場合、スワイプジェスチャではなく深い押圧ジェスチャが検出される。逆に、接触が対応する強度閾値に到達する前に接触が所定の移動量を移動する場合、深い押圧ジェスチャではなくスワイプジェスチャが検出される。そのような状況でさえ、第1のジェスチャのための第1のジェスチャ認識基準は、第1のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことをなおも必要としないが、これは、ジェスチャの終わりまで接触が対応する強度閾値を下回ったままであった場合(例えば、対応する強度閾値を上回る強度まで増加しない接触を有するスワイプジェスチャ)、ジェスチャは、スワイプジェスチャとして第1のジェスチャ認識基準によって認識されているからである。そのようにして、特定のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことを必要としない特定のジェスチャ認識基準は、(A)いくつかの状況では、強度閾値(例えば、タップジェスチャのための)に関して接触の強度を無視し、及び/又は(B)いくつかの状況では、特定のジェスチャ認識基準が入力に対応するジェスチャ(例えば、認識のための深い押圧ジェスチャと競争する長い押圧ジェスチャのための)を認識する前に、強度依存ジェスチャ認識基準の競争するセット(例えば、深い押圧ジェスチャのための)が強度依存ジェスチャに対応するものとして入力を認識する場合、特定のジェスチャ認識基準(例えば、長い押圧ジェスチャのための)が機能しないという意味で、強度閾値に関して接触の強度になおも依存している。
グラフィックモジュール132は、表示されるグラフィックの視覚的影響(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含む、タッチ感知ディスプレイシステム112又は他のディスプレイ上でグラフィックをレンダリング及び表示するための様々な既知のソフトウェア構成要素を含む。本明細書で使用される場合、用語「グラフィック」は、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、及びアニメーションなどを含むがこれらに限定されない、ユーザに対して表示することができるいずれかのオブジェクトを含む。
いくつかの実施形態では、グラフィックモジュール132は、使用されることになるグラフィックを表すデータを記憶する。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力する画面の画像データを生成する。
触覚フィードバックモジュール133は、デバイス100とのユーザ相互作用に応じて、触知出力生成器(単数又は複数)167を使用してデバイス100上の1つ以上の位置において触知出力を作成する命令(例えば、触覚フィードバックコントローラ161によって使用される命令)を生成する様々なソフトウェア構成要素を含む。
テキスト入力モジュール134は、任意選択で、グラフィックモジュール132の構成要素であり、様々なアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、及びテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するためのソフトキーボードを提供する。
GPSモジュール135は、デバイスの位置を判定し、この情報を、様々なアプリケーションで使用するために(例えば、位置に基づく電話発信で使用するために電話138へ、写真/ビデオのメタデータとしてカメラ143へ、並びに、気象ウィジェット、地域のイエローページウィジェット、及び地図/ナビゲーションウィジェットなどの、位置に基づくサービスを提供するアプリケーションへ)提供する。
アプリケーション136は、任意選択的に、以下のモジュール(又は命令セット)又はそれらのサブセット若しくはスーパーセットを含む。
●連絡先モジュール137(アドレス帳又は連絡先リストと呼ばれることもある)、
●電話モジュール138、
●テレビ会議モジュール139、
●電子メールクライアントモジュール140、
●インスタントメッセージング(IM)モジュール141、
●トレーニングサポートモジュール142、
●静止画像及び/又はビデオ画像用のカメラモジュール143、
●画像管理モジュール144、
●ブラウザモジュール147、
●カレンダーモジュール148、
●気象ウィジェット149-1、株価ウィジェット149-2、計算機ウィジェット149-3、アラーム時計ウィジェット149-4、辞書ウィジェット149-5、及びユーザによって取得された他のウィジェット、並びにユーザ作成ウィジェット149-6のうちの1つ以上を任意選択的に含む、ウィジェットモジュール149、
●ユーザ作成ウィジェット149-6を作成するためのウィジェット作成モジュール150、
●検索モジュール151、
●任意選択的にビデオプレーヤモジュール及び音楽プレーヤモジュールから構成されている、ビデオ及び音楽プレーヤモジュール152、
●メモモジュール153、
●地図モジュール154、及び/又は
●オンラインビデオモジュール155。
任意選択的にメモリ102に記憶される他のアプリケーション136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と共に、連絡先モジュール137は、(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192に記憶される)アドレス帳又は連絡先リストを管理するための実行可能命令を含み、それには、アドレス帳に名前(単数又は複数)を加えること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、電子メールアドレス(単数又は複数)、実際の住所(単数又は複数)、又は他の情報を名前に関連付けること、画像を名前に関連付けること、名前を分類して並べ替えること、電話番号及び/又は電子メールアドレスを提供して、電話138、ビデオ会議139、電子メール140、又はIM141による通信を開始及び/若しくは促進すること、などが含まれる。
RF回路108、音声回路110、スピーカ111、マイクロフォン113、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、電話モジュール138は、電話番号に対応する一連の文字を入力し、アドレス帳137内の1つ以上の電話番号にアクセスし、入力されている電話番号を変更し、それぞれの電話番号をダイヤルし、会話を実行し、会話が完了したときに切断し又は電話を切る実行可能命令を含む。上述のように、無線通信は、任意選択で、複数の通信規格、プロトコル、及び技術のうちのいずれかを使用する。
RF回路108、音声回路110、スピーカ111、マイクロフォン113、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先リスト137、及び電話モジュール138と連携して、ビデオ会議モジュール139は、ユーザの命令に従って、ユーザと1人以上の他の参加者の間のビデオ会議を開始し、行い、終了する実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、電子メールクライアントモジュール140は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理する実行可能命令を含む。画像管理モジュール144と連携して、電子メールクライアントモジュール140は、カメラモジュール143で撮影された静止画像又はビデオ画像を有する電子メールの作成及び送信を非常に容易にする。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、インスタントメッセージモジュール141は、インスタントメッセージに対応する一連の文字を入力し、前に入力された文字を修正し、それぞれのインスタントメッセージを送信し(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(Multimedia Message Service、MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、Apple Push Notification Service(APNs)、若しくはIMPSを使用して)、インスタントメッセージを受信し、受信したインスタントメッセージを見る実行可能命令を含む。いくつかの実施形態では、送信及び/又は受信されたインスタントメッセージは任意選択で、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service、EMS)でサポートされるような、グラフィック、写真、音声ファイル、ビデオファイル、及び/又は他の添付ファイルを含む。本明細書で使用される場合、「インスタントメッセージ」は、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されたメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE、APNs、又はIMPSを使用して送信されたメッセージ)の両方を指す。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、地図モジュール154、並びにビデオ及び音楽プレーヤモジュール152と連携して、トレーニングサポートモジュール142は、トレーニングを作成し(例えば、時間、距離、及び/又はカロリー消費目標を有する)、(スポーツデバイス及びスマートウォッチ内の)トレーニングセンサと通信し、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正し、トレーニング用の音楽を選択して再生し、並びに、トレーニングデータを表示し、記憶し、及び送信する、実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、及び画像管理モジュール144と共に、カメラモジュール143は、静止画像又はビデオ(ビデオストリームを含む)をキャプチャしてメモリ102にそれらを記憶する、静止画像又はビデオの特性を変更する、及び/又はメモリ102から静止画像若しくはビデオを削除する、実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びカメラモジュール143と共に、画像管理モジュール144は、静止画像及び/又はビデオ画像を配置し、変更し(例えば、編集し)、又はその他の方式で操作し、ラベルを付け、削除し、提示し(例えば、デジタルスライドショー又はアルバム内で)、並びに記憶する、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と共に、ブラウザモジュール147は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付ファイル及び他のファイルの、検索、リンク付け、受信、及び表示を含め、ユーザの命令に従って、インターネットをブラウズする、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と共に、カレンダーモジュール148は、ユーザの命令に従って、カレンダー及びカレンダーに関連付けられたデータ(例えば、カレンダー項目、するべきことのリストなど)を作成、表示、変更、及び記憶する、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と共に、ウィジェットモジュール149は、任意選択で、ユーザによってダウンロードされ使用されるミニアプリケーション(例えば、気象ウィジェット149-1、株価ウィジェット149-2、計算機ウィジェット149-3、アラーム時計ウィジェット149-4、及び辞書ウィジェット149-5)、又はユーザによって作成されるミニアプリケーション(例えば、ユーザ作成ウィジェット149-6)である。いくつかの実施形態では、ウィジェットは、HTML(Hypertext Markup Language、ハイパーテキストマークアップ言語)ファイル、CSS(Cascading Style Sheets、カスケーディングスタイルシート)ファイル、及びJavaScriptファイルを含む。いくつかの実施形態では、ウィジェットは、XML(Extensible Markup Language、拡張可能マークアップ言語)ファイル及びJavaScriptファイル(例えば、Yahoo!ウィジェット)を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と連携して、ウィジェット作成モジュール150は、ウィジェットを作成する(例えば、ウェブページのユーザ指定部分をウィジェットに変える)実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、検索モジュール151は、ユーザの命令に従って、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ102内のテキスト、音楽、サウンド、画像、ビデオ、及び/又は他のファイルを検索する実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、音声回路110、スピーカ111、RF回路108、及びブラウザモジュール147と連携して、ビデオ及び音楽プレーヤモジュール152は、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された記録された音楽又は他のサウンドファイルをユーザがダウンロード及び再生することを可能にする実行可能命令、並びにビデオを表示し、提示し、又はその他の方式で再生する(例えば、タッチ感知ディスプレイシステム112上で、又は無線で若しくは外部ポート124を介して接続された外部のディスプレイ上で)実行可能命令を含む。いくつかの実施形態では、デバイス100は、任意選択的に、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を含む。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、メモモジュール153は、ユーザの命令に従って、メモ、するべきことのリストなどを作成及び管理する実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、及びブラウザモジュール147と連携して、地図モジュール154は、ユーザの命令に従って、地図及び地図と関連付けられたデータ(例えば、運転方向、特定の位置における又はその近くの店舗及び対象となる他の地点についてのデータ、並びに位置に基づく他のデータ)を受信し、表示し、変更し、及び記憶するために使用され得る。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、音声回路110、スピーカ111、RF回路108、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と連携して、オンラインビデオモジュール155は、ユーザがH.264などの1つ以上のファイル形式のオンラインビデオにアクセスし、閲覧し、受信し(例えば、ストリーミング及び/又はダウンロードにより)、再生し(例えば、タッチスクリーン112上で、又は無線で若しくは外部ポート124を介して接続された外部のディスプレイ上で)、特定のオンラインビデオへのリンクを有する電子メールを送信し、別の方法で管理することを可能にする実行可能命令を含む。いくつかの実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール140ではなく、インスタントメッセージングモジュール141が使用される。
上記特定されたモジュール及びアプリケーションの各々は、上記説明された1つ以上の機能、並びに本出願で説明される方法(例えば、コンピュータにより実行される方法、及び本明細書で説明される他の情報処理方法)を実行する実行可能な命令セットに対応する。それらのモジュール(すなわち、命令セット)は、別々のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、よって、それらのモジュールの様々なサブセットは、任意選択で、様々な実施形態において、組み合わされ、又はその他の方式で再配置される。いくつかの実施形態では、メモリ102は、任意選択的に、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ102は、上記で説明されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
いくつかの実施形態では、デバイス100は、そのデバイスにおける既定の機能のセットの動作がタッチスクリーン及び/又はタッチパッドのみを介して実行されるデバイスである。デバイス100が動作するための主要な入力コントロールデバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、任意選択的に、デバイス100上の物理的な入力コントロールデバイス(プッシュボタン、ダイヤルなど)の数が削減される。
タッチスクリーン及び/又はタッチパッドを通じてのみ実行される既定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされたときに、デバイス100上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューにデバイス100をナビゲートする。このような実施形態では、「メニューボタン」は、タッチパッドを使用して実装される。一部の他の実施形態では、メニューボタンは、タッチパッドではなく、物理プッシュボタン又はその他の物理入力コントロールデバイスである。
図1Bは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ102(図1Aにおける)又は370(図3)は、イベントソート部170(例えば、オペレーティングシステム126内)及びそれぞれのアプリケーション136-1(例えば、上述したアプリケーション136、137~155、380~390のいずれか)を含む。
イベントソータ170は、イベント情報を受信し、イベント情報が配信されるアプリケーション136-1、及びアプリケーション136-1のアプリケーションビュー191を判定する。イベントソータ170は、イベントモニタ171及びイベントディスパッチャモジュール174を含む。いくつかの実施形態では、アプリケーション136-1は、アプリケーションがアクティブ又は実行中のとき、タッチ感知ディスプレイシステム112上で表示される現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態192を含む。いくつかの実施形態では、デバイス/グローバル内部状態157は、どのアプリケーション(単数又は複数)が現在アクティブであるかを判定するためにイベントソータ170によって使用され、アプリケーション内部状態192は、イベント情報が配信されるアプリケーションビュー191を判定するためにイベントソータ170によって使用される。
いくつかの実施形態では、アプリケーション内部状態192は、アプリケーション136-1が実行を再開するときに使用すべき再開情報、アプリケーション136-1によって表示されている情報を示す又は表示する準備ができたユーザインタフェース状態情報、ユーザがアプリケーション136-1の前の状態又はビューに戻ることを可能にする状態キュー、及びユーザによって行われた前のアクションのリドゥ/アンドゥキューのうちの1つ以上などの追加の情報を含む。
イベントモニタ171は、周辺機器インタフェース118からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイシステム112上のユーザのタッチ)についての情報を含む。周辺機器インタフェース118は、I/Oサブシステム106、又は近接センサ166、加速度計(単数又は複数)168、及び/若しくは(オーディオ回路110を介した)マイクロフォン113などのセンサから受信する情報を送信する。周辺機器インタフェース118がI/Oサブシステム106から受信する情報は、タッチ感知ディスプレイシステム112又はタッチ感知面からの情報を含む。
いくつかの実施形態では、イベントモニタ171は、所定の間隔で周辺機器インタフェース118に要求を送信する。それに応じて、周辺機器インタフェース118は、イベント情報を送信する。他の実施形態では、周辺機器インタフェース118は、重要なイベント(例えば、予め定められたノイズ閾値を上回り、及び/又は予め定められた期間よりも長い入力を受信すること)が存在するときのみ、イベント情報を送信する。
いくつかの実施形態では、イベントソータ170はまた、ヒットビュー判定モジュール172及び/又はアクティブイベント認識部判定モジュール173を含む。
ヒットビュー判定モジュール172は、タッチ感知ディスプレイシステム112が2つ以上のビューを表示するとき、1つ以上のビュー内のどこにおいてサブイベントが発生したかを判定するためのソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で見ることができる制御装置及び他の要素から構成されている。
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書ではアプリケーションビュー又はユーザインタフェースウィンドウと呼ばれることもあるビューのセットであり、その中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、任意選択的に、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応する。例えば、タッチが検出される最下位レベルビューは、任意選択的に、ヒットビューと呼ばれ、また、適切な入力として認識されるイベントのセットは、任意選択的に、タッチによるジェスチャを開始する初期タッチのヒットビューに少なくとも部分的に基づいて決定される。
ヒットビュー判定モジュール172は、タッチに基づくジェスチャのサブイベントに関連する情報を受信する。アプリケーションが階層状に構成された複数のビューを有するとき、ヒットビュー判定モジュール172は、サブイベントを処理すべき階層内の最下位のビューとして、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、開始するサブイベント(すなわち、イベント又は潜在的なイベントを形成する一連のサブイベントにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュールによって特定されると、ヒットビューは典型的には、それがヒットビューとして特定された同一のタッチ又は入力元に関連する全てのサブイベントを受信する。
アクティブイベント認識部判定モジュール173は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール173は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール173は、サブイベントの物理位置を含む全てのビューがアクティブに関わりがあるビューであると判定し、したがって、全てのアクティブに関わりがあるビューが、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントが1つの特定のビューに関連付けられたエリアに完全に限定された場合でも、階層内の上位のビューは、依然としてアクティブに関わりがあるビューであり続ける。
イベントディスパッチャモジュール174は、イベント情報をイベント認識部(例えばイベント認識部180)にディスパッチする。アクティブイベント認識部判定モジュール173を含む実施形態では、イベントディスパッチャモジュール174は、アクティブイベント認識部判定モジュール173により判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール174は、それぞれのイベント受信部モジュール182によって取得されたイベント情報をイベント待ち行列に記憶する。
いくつかの実施形態では、オペレーティングシステム126は、イベントソータ170を含む。あるいは、アプリケーション136-1がイベントソータ170を含む。更に他の実施形態では、イベントソータ170は、独立型のモジュールであり、又は接触/動きモジュール130などのメモリ102内に記憶されている別のモジュールの一部分である。
いくつかの実施形態では、アプリケーション136-1は、それぞれがアプリケーションのユーザインタフェースのそれぞれのビュー内で発生するタッチイベントを処理するための命令を含む、複数のイベント処理部190及び1つ以上のアプリケーションビュー191を含む。アプリケーション136-1の各アプリケーションビュー191は、1つ以上のイベント認識部180を含む。典型的には、それぞれのアプリケーションビュー191は、複数のイベント認識部180を含む。他の実施形態では、イベント認識部180のうちの1つ以上は、ユーザインタフェースキット、又は、アプリケーション136-1が方法及び他の属性を継承する上位レベルのオブジェクトなどの、別個のモジュールの一部である。いくつかの実施形態では、それぞれのイベント処理部190は、データ更新部176、オブジェクト更新部177、GUI更新部178、及び/又はイベントソータ170から受信されたイベントデータ179、のうちの1つ以上を含む。イベント処理部190は任意選択で、アプリケーション内部状態192を更新するために、データ更新部176、オブジェクト更新部177、又はGUI更新部178を利用し、又は呼び出す。代わりに、アプリケーションビュー191のうちの1つ以上は、1つ以上のそれぞれのイベント処理部190を含む。また、いくつかの実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178のうちの1つ以上は、それぞれのアプリケーションビュー191に含まれる。
それぞれのイベント認識部180は、イベントソート部170からイベント情報(例えば、イベントデータ179)を受信し、イベント情報からイベントを特定する。イベント認識部180は、イベント受信部182及びイベント比較部184を含む。いくつかの実施形態では、イベント認識部180はまた、メタデータ183及びイベント配信命令188(任意選択的にサブイベント配信命令を含む)の少なくともサブセットも含む。
イベント受信部182は、イベントソータ170からイベント情報を受信する。イベント情報は、サブイベント、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントに応じて、イベント情報はまた、サブイベントの位置などの追加の情報を含む。サブイベントがタッチの動きに関わるとき、イベント情報はまた任意選択的に、サブイベントの速さ及び方向を含む。一部の実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへ、又はその逆の)デバイスの回転を含み、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ぶ)についての対応する情報を含む。
イベント比較部184は、イベント情報を、定義済みのイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定するか、あるいはイベント又はサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較部184は、イベント定義186を含む。イベント定義186は、例えばイベント1(187-1)及びイベント2(187-2)などのイベント(例えば、既定のサブイベントのシーケンス)の定義を含む。いくつかの実施形態では、イベント187におけるサブイベントは、例えば、タッチの始め、タッチの終わり、タッチの移動、タッチの中止、及び複数のタッチを含む。一実施例では、イベント1(187-1)についての定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、表示されたオブジェクト上の予め定められた段階についての第1のタッチ(タッチの始め)、予め定められた段階についての第1のリフトオフ(タッチの終わり)、表示されたオブジェクト上の予め定められた段階についての第2のタッチ(タッチの始め)、及び予め定められた段階についての第2のリフトオフ(タッチの終わり)を含む。別の実施例では、イベント2(187-2)の定義は、表示されたオブジェクト上のドラッグである。ドラッグは、例えば、表示されたオブジェクト上の予め定められた段階についてのタッチ(又は、接触)、タッチ感知ディスプレイシステム112を横切るタッチの移動、及びタッチのリフトオフ(タッチの終わり)を含む。いくつかの実施形態では、イベントは、1つ以上の関連付けられたイベント処理部190に関する情報も含む。
いくつかの実施形態では、イベント定義187は、それぞれのユーザインタフェースオブジェクトについてのイベントの定義を含む。いくつかの実施形態では、イベント比較部184は、どのユーザインタフェースオブジェクトがサブイベントに関連付けられているかを判定するヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイシステム112上で表示されるアプリケーションビューにおいて、タッチ感知ディスプレイシステム112上でタッチが検出されたとき、イベント比較部184は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)と関連付けられているかを判定するためにヒットテストを実行する。表示された各オブジェクトが、それぞれのイベント処理部190に関連付けられている場合、イベント比較部は、ヒットテストの結果を用いて、どのイベント処理部190をアクティブ化すべきかを判定する。例えば、イベント比較部184は、ヒットテストをトリガするサブイベント及びオブジェクトに関連付けられたイベント処理部を選択する。
いくつかの実施形態では、それぞれのイベント187の定義は、一連のサブイベントがイベント認識部のイベントタイプに対応するかどうかが判定されるまで、イベント情報の配信を遅らせる遅延アクションも含む。
それぞれのイベント認識部180が一連のサブイベントがイベント定義186のイベントのいずれとも一致しないと判断した場合、それぞれのイベント認識部180は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチに基づくジェスチャの次のサブイベントを無視する。この状況では、ヒットビューについてアクティブのままである他のイベント認識部があれば、そのイベント認識部は、進行中のタッチによるジェスチャのサブイベントの追跡及び処理を続行する。
いくつかの実施形態では、それぞれのイベント認識部180は、イベント配信システムがどのようにサブイベント配信を実行すべきかをアクティブに関与しているイベント認識部に示す構成可能なプロパティ、フラグ、及び/又はリストを有するメタデータ183を含む。いくつかの実施形態では、メタデータ183は、イベント認識部が互いにどのように対話するか、又はイベント認識部が互いにどのように対話することが可能となるかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。いくつかの実施形態では、メタデータ183は、サブイベントがビュー階層又はプログラム階層における多様なレベルに配信されるかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。
いくつかの実施形態では、それぞれのイベント認識部180は、イベントの1つ以上の特定のサブイベントが認識されるときに、イベントに関連付けられたイベント処理部190をアクティブ化する。いくつかの実施形態では、それぞれのイベント認識部180は、イベントに関連付けられたイベント情報をイベント処理部190に配信する。イベント処理部190をアクティブ化することは、それぞれのヒットビューにサブイベントを送信する(及び、送信を延期する)こととは別個である。いくつかの実施形態では、イベント認識部180は、認識したイベントに関連付けられたフラグを投入し、そのフラグに関連付けられたイベント処理部190は、そのフラグを捕らえ、既定のプロセスを実行する。
いくつかの実施形態では、イベント配信命令188は、イベント処理部をアクティブ化することなくサブイベントについてのイベント情報を配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベント処理部に、又はアクティブに関与しているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関与しているビューと関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
いくつかの実施形態では、データ更新部176は、アプリケーション136-1で使用されるデータを作成及び更新する。例えば、データ更新部176は、連絡先モジュール137で使用される電話番号を更新するか、又はビデオ及び音楽プレーヤモジュール152で使用されるビデオファイルを記憶する。いくつかの実施形態では、オブジェクト更新部177は、アプリケーション136-1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部177は、新たなユーザインタフェースオブジェクトを作成し、又はユーザインタフェースオブジェクトの位置を更新する。GUI更新部178は、GUIを更新する。例えば、GUI更新部178は、表示情報を準備し、タッチ感知ディスプレイ上に表示するために表示情報をグラフィックモジュール132に送る。
いくつかの実施形態では、イベント処理部(単数又は複数)190は、データ更新部176、オブジェクト更新部177、及びGUI更新部178を含む又はそれらへのアクセスを有する。いくつかの実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178は、それぞれのアプリケーション136-1又はアプリケーションビュー191の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の記載は、入力デバイスを用いて多機能デバイス100を動作させるための他の形態のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことを理解されたい。例えば、キーボードの単一又は複数の押圧若しくは保持と任意選択的に連携される、マウスの移動及びマウスボタンの押圧、タッチパッド上のタップ、ドラッグ、スクロールなどの接触の移動、ペンスタイラス入力、デバイスの移動、口頭による命令、検出された眼球運動、バイオメトリック入力、並びに/又はそれらの任意の組み合わせを、任意選択的に、認識するイベントを定義するサブイベントに対応する入力として利用する。
図2は、いくつかの実施形態に係る、タッチスクリーン(例えば、タッチ感知ディスプレイシステム112、図1A)を有するポータブル多機能デバイス100を示す。タッチスクリーンは、任意選択的に、ユーザインタフェース(user interface、UI)200内に1つ以上のグラフィックを表示する。これらの実施形態、並びに後述する実施形態では、ユーザは、例えば、1本以上の指202(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス203(図には、正確な縮尺率では描かれていない)を用いて、グラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択することが可能になる。一部の実施形態では、1つ以上のグラフィックの選択は、ユーザが、その1つ以上のグラフィックとの接触を中断する場合に実施される。いくつかの実施形態では、ジェスチャは、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上向きに及び/若しくは下向きに)、並びに/又は、デバイス100と接触した指のローリング(右から左へ、左から右へ、上向きに及び/若しくは下向きに)を、任意選択で含む。一部の実装形態又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択するものではない。
デバイス100は、任意選択で、「ホーム」又はメニューボタン204などの1つ以上の物理的ボタンも含む。前述のように、メニューボタン204は、任意選択で、デバイス100上で任意選択的に実行される、アプリケーションのセットにおける任意のアプリケーション136にナビゲートするために使用される。あるいは、いくつかの実施形態では、メニューボタンは、タッチスクリーンディスプレイ上で表示されるGUI内のソフトキーとして実装される。
いくつかの実施形態では、デバイス100は、タッチスクリーンディスプレイ、メニューボタン204(ホームボタン204と呼ばれる場合がある)、デバイスへの電源供給のオン/オフ及びデバイスのロックのためのプッシュボタン206、音量調節ボタン(単数又は複数)208、加入者識別モジュール(SIM)カードスロット210、ヘッドセットジャック212、並びにドッキング/充電用外部ポート124を含む。プッシュボタン206は、任意選択的に、ボタンを押し下げて、既定の期間にわたってボタンを押し下げた状態に保持することによって、デバイスの電源をオン/オフするため、ボタンを押し下げて、既定の時間が経過する前にボタンを解放することによってデバイスをロックするため、及び/又はデバイスをロック解除する、若しくはロック解除プロセスを開始するために、使用される。いくつかの実施形態では、デバイス100は、マイクロフォン113を通して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力をも受け入れる。デバイス100はまた任意選択で、タッチ感知ディスプレイシステム112上の接触の強度を検出する1つ以上の接触強度センサ165、及び/又はデバイス100のユーザに対する触知出力を生成する1つ以上の触知出力生成器167を含む。
図3は、いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。デバイス300は、ポータブル型である必要はない。いくつかの実施形態では、デバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、家庭用又は業務用コントローラ)である。デバイス300は、典型的には、1つ以上の処理ユニット(CPU)310と、1つ以上のネットワーク又は他の通信インタフェース360と、メモリ370と、及びこれらの構成要素を相互接続するための1つ以上の通信バス320とを含む。通信バス320は、任意選択的に、システム構成要素間の通信を相互接続及び制御する回路(チップセットと呼ばれることもある)を含む。デバイス300は、ディスプレイ340を含む入出力(I/O)インタフェース330を含み、ディスプレイ340は、典型的には、タッチスクリーンディスプレイである。I/Oインタフェース330は、任意選択で、キーボード及び/又はマウス(又は、他のポインティングデバイス)350、並びにタッチパッド355、(例えば、図1Aを参照して上記説明された触知出力生成器(単数又は複数)167と同様の)デバイス300上で触知出力を生成するための触知出力生成器357、センサ359(例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び/又は図1Aを参照して上記説明された接触強度センサ(単数又は複数)165と同様の接触強度センサ)をも含む。メモリ370は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、任意選択で、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを含む。メモリ370は、任意選択で、CPU(単数又は複数)310からリモートに位置する1つ以上の記憶デバイスを含む。いくつかの実施形態では、メモリ370は、ポータブル多機能デバイス100(図1A)のメモリ102に記憶されたプログラム、モジュール、及びデータ構造に類似するプログラム、モジュール、及びデータ構造、又はそれらのサブセットを記憶する。更に、メモリ370は、任意選択で、ポータブル多機能デバイス100のメモリ102に存在しない追加のプログラム、モジュール、及びデータ構造を記憶する。例えば、デバイス300のメモリ370は任意選択で、描画モジュール380、プレゼンテーションモジュール382、ワードプロセッシングモジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、及び/又はスプレッドシートモジュール390を記憶するが、ポータブル多機能デバイス100(図1A)のメモリ102は、任意選択で、それらのモジュールを記憶しない。
上記特定された図3における要素のそれぞれは、任意選択で、前に言及したメモリデバイスのうちの1つ以上に記憶される。上記で特定されたモジュールの各々は、上記で説明された機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、したがって、それらのモジュールの様々なサブセットは、任意選択で、様々な実施形態において組み合わされるか、又はその他の方式で再配置される。いくつかの実施形態では、メモリ370は、任意選択で、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ370は、任意選択的に、上述されていない追加のモジュール及びデータ構造を記憶する。
ここで、ポータブル多機能デバイス100上で任意選択的に実装されるユーザインタフェース(「UI」)の実施形態に着目する。
図4Aは、いくつかの実施形態による、ポータブル多機能デバイス100上のアプリケーションのメニューのための例示的なユーザインタフェース400を示す。同様のユーザインタフェースは、デバイス300上に任意選択的に実装される。いくつかの実施形態では、ユーザインタフェース400は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
●セルラー信号及びWi-Fi信号などの無線通信(単数又は複数)のための信号強度インジケータ(単数又は複数)、
●時間、
●Bluetoothインジケータ、
●バッテリ状態インジケータ、
●以下のような、頻繁に使用されるアプリケーションのアイコンを有するトレイ408
○不在着信又はボイスメールメッセージの数のインジケータ414を任意選択的に含む、「電話」とラベル付けされた、電話モジュール138のアイコン416、
○未読電子メールの数のインジケータ410を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール140のアイコン418、
○「ブラウザ」とラベル付けされた、ブラウザモジュール147のアイコン420、及び
○「音楽」とラベル付けされたビデオ及び音楽プレーヤモジュール152のアイコン422、並びに
●以下のような、他のアプリケーションのアイコン、
○「メッセージ」とラベル付けされた、IMモジュール141のアイコン424、
○「カレンダー」とラベル付けされた、カレンダーモジュール148のアイコン426、
○「写真」とラベル付けされた、画像管理モジュール144のアイコン428、
○「カメラ」とラベル付けされた、カメラモジュール143のアイコン430、
○「オンラインビデオ」とラベル付けされた、オンラインビデオモジュール155のアイコン432、
○「株価」とラベル付けされた、株価ウィジェット149-2のアイコン434、
○「地図」とラベル付けされた、地図モジュール154のアイコン436、
○「天気」とラベル付けされた、気象ウィジェット149-1のアイコン438、
○「時計」とラベル付けされた、アラーム時計ウィジェット149-4のアイコン440、
○「トレーニングサポート」とラベル付けされた、トレーニングサポートモジュール142のアイコン442、
○「メモ」とラベル付けされた、メモモジュール153のアイコン444、及び
○デバイス100及びその様々なアプリケーション136に関する設定へのアクセスを提供する、設定アプリケーション若しくはモジュール用のアイコン446。
図4Aに示されたアイコンのラベルは、単なる例に過ぎないことに留意されたい。例えば、他のラベルが任意選択的に、様々なアプリケーションアイコンに使用される。一部の実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。一部の実施形態では、特定のアプリケーションアイコンのラベルは、その特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
図4Bは、ディスプレイ450と分離したタッチ感知面451(例えば、タブレット又はタッチパッド355、図3)を有するデバイス(例えば、デバイス300、図3)上の例示的なユーザインタフェースを示す。以下の実施例のうちの多くはタッチスクリーンディスプレイ112上の入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して与えられるが、いくつかの実施形態では、デバイスは、図4Bに示すように、ディスプレイと分離したタッチ感知面上の入力を検出する。いくつかの実施形態では、タッチ感知面(例えば、図4Bにおける451)は、ディスプレイ(例えば、450)上の主軸(例えば、図4Bにおける453)に対応する主軸(例えば、図4Bにおける452)を有する。それらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの位置に対応する位置(例えば、図4Bにおいて、460は468に対応し、462は470に対応する)におけるタッチ感知面451との接触(例えば、図4Bにおける460及び462)を検出する。このように、タッチ感知面がディスプレイと分離しているとき、タッチ感知面(例えば、図4Bにおける451)上でデバイスによって検出されたユーザ入力(例えば、接触460及び462、及びそれらの移動)は、多機能デバイスのディスプレイ(例えば、図4Bにおける450)上でユーザインタフェースを操作するためにデバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
加えて、以下の実施例は、主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャなど)を参照して与えられるが、いくつかの実施形態では、それらの指の入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力又はスタイラス入力)と置換されることを理解されたい。例えば、スワイプジェスチャは、(例えば、接触の代わりの)マウスクリックに続けた、(例えば、接触の移動の代わりの)スワイプの経路に沿ったカーソルの移動によって、任意選択的に置き換えられる。別の例として、タップジェスチャは、任意選択的に、カーソルがタップジェスチャの位置の上に位置する間はマウスクリックと置き換えられる(例えば、接触を検出して、それに続いて接触の検出を停止する代わりに)。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが、任意選択的に、同時に使用され、又はマウス及び指の接触が、任意選択的に、同時に使用されることを理解されたい。
本明細書で使用される「フォーカスセレクタ」という用語は、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他のロケーションマーカを含むいくつかの実装形態では、カーソルは、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にある間に、タッチ感知面(例えば、図3におけるタッチパッド355、又は図4Bにおけるタッチ感知面451)上で入力(例えば、押圧入力)が検出されると、特定のユーザインタフェース要素が検出された入力に従って調整されるように、「フォーカスセレクタ」として機能する。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を有効化するタッチスクリーンディスプレイ(例えば、図1Aにおけるタッチ感知ディスプレイシステム112、又は図4Aにおけるタッチスクリーン)を含むいくつかの実装形態では、タッチスクリーン上で検出された接触は、入力(例えば、接触による押圧入力)がタッチスクリーンディスプレイ上で特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の位置において検出されると、特定のユーザインタフェース要素が検出された入力に従って調整されるように、「フォーカスセレクタ」として機能する。一部の実装形態では、タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動(例えば、フォーカスを1つのボタンから別のボタンへ動かすためにタブキー又は矢印キーを使用することによる)なく、フォーカスがユーザインタフェースの1つの領域からユーザインタフェースの別の領域へ動かされ、これらの実装形態では、フォーカスセレクタは、ユーザインタフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタがとる特有の形態に関わらず、フォーカスセレクタは、概して、ユーザインタフェース要素(又はタッチスクリーンディスプレイ上の接触)であり、ユーザの意図する対話をユーザインタフェースによって通信するように、ユーザによって制御される(例えば、ユーザが対話することを意図しているユーザインタフェースの要素をデバイスに示すことによる)。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出されている間の、対応のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の位置は、その対応のボタンを(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。
本明細書及び特許請求の範囲で使用される、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指の接触又はスタイラスの接触)の力、又は圧力(単位面積あたりの力)、又はタッチ感知面上の接触の力又は圧力の代替物(プロキシ)を指す。接触の強度は、少なくとも4つの別個の値を含み、より典型的には、数百の(例えば、少なくとも256の)別個の値を含む、値の範囲を有する。接触の強度は、任意選択的に、様々な手法、及び様々なセンサ又はセンサの組み合わせを使用して、判定(又は測定)される。例えば、タッチ感知面の下又はそれに隣接する1つ以上の力センサは、任意選択的に、タッチ感知面上の様々なポイントにおける力を測定するために使用される。いくつかの実装形態では、複数の力センサからの力測定値は、推定される接触の力を特定するために組み合わされる(例えば、加重平均又は合計)。同様に、スタイラスの感圧性先端部は、任意選択的に、タッチ感知面上のスタイラスの圧力を判定するために使用される。あるいは、タッチ感知面上で検出される接触エリアのサイズ及び/若しくはその変化、接触に近接するタッチ感知面の電気容量及び/若しくはその変化、並びに/又は、接触に近接するタッチ感知面の抵抗及び/若しくはその変化は、任意選択的に、タッチ感知面上の接触の力又は圧力の代替物として使用される。一部の実装形態では、接触の力又は圧力のための代替測定値は、強度閾値を超えているかどうかを判定するために直接使用される(例えば、強度閾値は、代替測定値に対応する単位で記述される)。いくつかの実装形態では、接触の力又は圧力のための代替測定値は、推定される力又は圧力に変換され、推定される力又は圧力は、強度閾値を超えているかどうかを判定するために使用される(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。ユーザ入力の属性として接触の強度を使用すると、(例えば、タッチ感知ディスプレイ上に)アフォーダンスを表示するため、及び/又は(例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタンなどの物理的/機械的コントロールを介して)ユーザ入力を受信するための資産が制限された、低減されたサイズのデバイス上で、そうでない場合ユーザによるアクセスが容易に可能でない場合がある、追加のデバイス機能にユーザがアクセスすることが可能になる。
いくつかの実施形態では、接触/動きモジュール130は、ユーザによって動作が実行されたか否かを判定するための(例えば、ユーザがアイコン上で「クリック」したか否かを判定するための)、1つ以上の強度閾値のセットを使用する。いくつかの実施形態では、少なくとも強度閾値のサブセットは、ソフトウェアパラメータに従って決定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって決定されず、デバイス100の物理ハードウェアを変更することなく調節されてもよい)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、そのトラックパッド又はタッチスクリーンディスプレイのハードウェアを変更することなく、広範囲の既定閾値のうちのいずれかに設定され得る。更に、いくつかの実装形態では、デバイスのユーザは、(例えば、個々の強度閾値を調整することにより、及び/又は、システムレベルのクリック「強度」パラメータで一度に複数の強度閾値を調整することにより)強度閾値のセットのうちの1つ以上を調整するためのソフトウェア設定が提供される。
本明細書及び特許請求の範囲で使用される、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。一部の実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、すなわち、既定のイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増大を検出する前若しくは後、及び/又は、接触の強度の減少を検出する前若しくは後の)に関連する既定の期間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)の間に収集された強度サンプルのセットに基づく。接触の特性強度は任意選択で、接触の強度の最大値、接触の強度の平均値(mean value)、接触の強度の平均値(average value)、接触の強度の上位10%値、接触の強度の最大値の半分の値、接触の強度の最大値の90%の値、予め定義された期間にわたって、又は予め定義された時間において開始した接触の強度を低域フィルタリングすることによって生成された値などのうちの1つ以上に基づく。一部の実施形態では、特性強度を判定する際に(例えば、特性強度が経時的な接触の強度の平均であるときに)、接触の持続期間が使用される。一部の実施形態では、特性強度は、ユーザによって動作が実行されたかどうかを判定するために、1つ以上の強度閾値のセットと比較される。例えば、1つ以上の強度閾値のセットは、第1の強度閾値及び第2の強度閾値を含んでもよい。この実施例では、第1の閾値を上回らない特性強度を有する接触の結果として第1の動作が実行され、第1の強度閾値を上回り第2の強度閾値を上回らない特性強度を有する接触の結果として第2の動作が実行され、第2の強度閾値を上回る特性強度を有する接触の結果として第3の動作が実行される。いくつかの実施形態では、特性強度と1つ以上の強度閾値との間の比較は、第1の操作を実行するか、又は第2の操作を実行するかを判定するために使用されるのではなく、1つ以上の操作を実行するか否か(例えば、それぞれの選択肢を実行するか、又はそれぞれの操作を実行することを控えるか)を判定するために使用される。
一部の実施形態では、特性強度を判定する目的のために、ジェスチャの一部分が特定される。例えば、タッチ感知面は、開始位置から遷移して終了位置に達する連続的なスワイプ接触(例えば、ドラッグジェスチャ)を受け取る場合があり、そのポイントにおいて接触の強度が増大する。この例では、終了位置における接触の特性強度は、スワイプ接触全体ではなく、連続的なスワイプ接触の一部分のみ(例えば、終了位置におけるスワイプ接触の一部分のみ)に基づいてもよい。いくつかの実施形態では、接触の特性強度を特定する前に、スワイプ接触の強度に平滑化アルゴリズムが適用されてもよい。例えば、平滑化アルゴリズムは、任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズムのうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的のために、スワイプ接触の強度の小幅な上昇又は降下を排除する。
本明細書で説明されるユーザインタフェースの図は、任意選択的に、1つ以上の強度閾値(例えば、接触検出強度閾値IT0、軽い押圧強度閾値ITL、(例えば、少なくとも最初はITLよりも高い)深い押圧強度閾値ITD、及び/又は1つ以上の他の強度閾値(例えば、TILよりも低い強度閾値ITH))に対する、タッチ感知面上の接触の現在の強度を示す、様々な強度の図表を含む。この強度の図は、典型的には、表示されるユーザインタフェースの一部ではないが、図の解釈を支援するために提供される。一部の実施形態では、軽い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作をデバイスが実行する強度に相当する。一部の実施形態では、深い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作とは異なる動作をデバイスが実行する強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る(例えば、それを下回ると接触がもはや検出されない名目上の接触検出強度閾値IT0を上回る)特性強度を有する接触が検出されると、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従ってフォーカスセレクタを移動させる。一般に、特に明記しない限り、これらの強度閾値は、ユーザインタフェース図の様々なセットの間で一貫している。
いくつかの実施形態では、デバイスによって検出された入力へのデバイスの応答は、入力中の接触強度に基づく基準に依存する。例えば、いくつかの「軽い押圧」入力の場合、入力中の第1の強度閾値を超える接触の強度は、第1の応答をトリガする。いくつかの実施形態では、デバイスによって検出された入力へのデバイスの応答は、入力中の接触強度と時間ベースの基準の両方を含む基準に依存する。例えば、いくつかの「深い押圧」入力の場合、軽い押圧用の第1の強度閾値より大きい入力中の第2の強度閾値を超える接触の強度は、第1の強度閾値を満たすことと第2の強度閾値を満たすこととの間に遅延時間が経過した場合のみ、第2の応答をトリガする。この遅延時間は典型的には、時間が200ms(ミリ秒)よりも短い(例えば、第2の強度閾値の大きさに依存して、40ms、100ms、又は120msであり、遅延時間は第2の強度閾値が増大するにつれて増大する)。この遅延時間は、深い押圧入力の偶発的な認識を回避することを支援する。別の例として、いくつかの「深い押圧」入力の場合、第1の強度閾値が満たされた時間の後に発生する感度が低下した期間が存在する。感度が低下した期間の間、第2の強度閾値は増大する。第2の強度閾値のこの一時的な増大も、偶発的な深い押圧入力を回避するのに役立つ。他の深い押圧入力の場合、深い押圧入力の検出に対する応答は、時間ベースの基準に依存しない。
いくつかの実施形態では、入力強度閾値及び/又は対応する出力のうちの1つ以上は、ユーザ設定、接触の動き、入力タイミング、実行しているアプリケーション、強度が加わる速度、同時入力の数、ユーザ履歴、環境要因(例えば、周囲ノイズ)、フォーカスセレクタの位置などの、1つ以上の要因に基づいて変化する。例示的な要因が、米国特許出願公開第14/399,606号及び第14/624,296号に記載されており、それらは参照により全体が本明細書に組み込まれている。
例えば、図4Cは、経時的なタッチ入力476の強度に部分的に基づいて、経時的に変化する動的な強度閾値480を示す。動的な強度閾値480は、2つの成分、タッチ入力476が最初に検出されたときから既定の遅延時間p1後に経時的に減衰する第1の成分474、及び経時的にタッチ入力476の強度の跡を辿る第2の成分478の合計である。第1の成分474の最初の高い強度閾値は、タッチ入力476が十分な強度を提供する場合に即時の「深い押圧」応答を更に可能にしながら、「深い押圧」応答の偶発的トリガを削減する。第2の成分478は、タッチ入力の段階的な強度変動によって「深い押圧」応答の意図しないトリガを削減する。いくつかの実施形態では、タッチ入力476が動的な強度閾値480を満たすとき(例えば、図4Cにおけるポイント481において)、「深い押圧」応答がトリガされる。
図4Dは、別の動的な強度閾値486(例えば、強度閾値ID)を示す。図4Dは、2つの他の強度閾値:第1の強度閾値IH及び第2の強度閾値ILも示す。図4Dでは、タッチ入力484が時間p2の前に第1の強度閾値IH及び第2の強度閾値ILを満たすが、時間482において遅延時間p2が経過するまでは応答が提供されない。また、図4Dでは、動的な強度閾値486は経時的に減衰し、減衰は、時間482から既定の遅延時間p1が経過した後(第2の強度閾値ILに関連付けられた応答がトリガされたとき)の時間488に始まる。このタイプの動的な強度閾値は、第1の強度閾値IH又は第2の強度閾値ILなどの、より低い強度閾値に関連付けられた応答をトリガした直後、又はそれと同時に、動的な強度閾値IDに関連付けられた応答の偶発的なトリガを削減する。
図4Eは、更に別の動的な強度閾値492(例えば、強度閾値ID)を示す。図4Eでは、強度閾値ILに関連付けられた応答は、タッチ入力490が最初に検出されたときから遅延時間p2が経過した後にトリガされる。同時に、動的な強度閾値492は、タッチ入力490が最初に検出されたときから既定の遅延時間p1が経過した後に減衰する。そのため、タッチ入力490を解放することなしに、タッチ入力490の強度の増大がその後に続く、強度閾値ILに関連付けられた応答をトリガした後のタッチ入力490の強度の減少は、タッチ入力490の強度が別の強度閾値、例えば、強度閾値ILを下回るときでも、(例えば、時間494において)強度閾値IDに関連付けられた応答をトリガすることができる。
軽い押圧強度閾値ITLを下回る強度から、軽い押圧強度閾値ITLと深い押圧強度閾値ITDとの間の強度への接触の特性強度の増大は、「軽い押圧」入力と呼ばれる場合がある。深い押圧強度閾値ITDを下回る強度から深い押圧強度閾値ITDを上回る強度への接触の特性強度の増大は、「深い押圧」入力と呼ばれる場合がある。接触検出強度閾値IT0を下回る強度から接触検出強度閾値IT0と軽い押圧強度閾値ITLの間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれる場合がある。接触検出強度閾値IT0を上回る強度から接触検出強度閾値IT0を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれる場合がある。いくつかの実施形態では、IT0はゼロである。いくつかの実施形態では、IT0はゼロより大きい。いくつかの例示では、タッチ感知面上の接触の強度を表すために、網掛けの円又は楕円が使用される。いくつかの例示では、それぞれの接触の強度を指定することなく、タッチ感知面上のそれぞれの接触を表すために、網掛けなしの円又は楕円が使用される。
本明細書に記載されるいくつかの実施形態では、1つ以上の動作は、それぞれの押圧入力を含むジェスチャを検出したことに応答して、又はそれぞれの接触(若しくは複数の接触)で実行されるそれぞれの押圧入力を検出したことに応答して実行され、それぞれの押圧入力は、押圧入力強度閾値を上回る接触(又は複数の接触)の強度の増大を検出したことに少なくとも部分的に基づいて検出される。いくつかの実施形態では、それぞれの動作は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大を検出したことに応答して実行される(例えば、それぞれの動作は、それぞれの押圧入力の「ダウンストローク」上で実行される)。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及びその後の押圧入力強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、その後の押圧入力閾値を下回るそれぞれの接触の強度の減少を検出したことに応答して実行される(例えば、それぞれの動作は、それぞれの押圧入力の「アップストローク」上で実行される)。
一部の実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的な入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関係を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりも低いX強度単位であり、又はヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な割合である)。したがって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及びその後の押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、その後のヒステリシス強度閾値を下回るそれぞれの接触の強度の減少を検出したことに応答して実行される(例えば、それぞれの動作は、それぞれの押圧入力の「アップストローク」上で実行される)。同様に、一部の実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、その後のヒステリシス強度以下の強度への接触の強度の減少を検出するときにのみ検出され、それぞれの動作は、押圧入力(例えば、状況に応じて、接触の強度の増大又は接触の強度の減少)を検出したことに応じて実行される。
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応答して、又は押圧入力を含むジェスチャに応答して実行される動作の説明は、任意選択的に、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応答してトリガされる。更に、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて実行されるように動作が記載される例では、動作は、任意選択的に、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応じて実行される。上述されたように、いくつかの実施形態では、これらの応答のトリガは、満たされる時間ベースの基準にも依存する(例えば、遅延時間は、第1の強度閾値が満たされることと第2の強度閾値が満たされることとの間で経過している)。
本明細書及び特許請求の範囲で使用されるように、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するそのデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、そのデバイスの別の構成要素(例えば、筐体)に対する物理的変位、又は、デバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況では、物理的変位によって生成された触知出力は、そのデバイス又はデバイスの構成要素の物理的特性の認識される変化に相当する触感として、ユーザによって解釈されることになる。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として、任意選択的に解釈される。場合によっては、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じる。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。触知出力を使用して触覚フィードバックをユーザに提供することで、デバイスの操作性が向上し、ユーザ-デバイスインタフェースがより効率的になり(例えば、デバイスを動作させ/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによる)、加えて、ユーザがデバイスをより迅速かつ効率的に使用するのを有効化することによって、電力使用を低減させ、デバイスの電池寿命を改善する。
いくつかの実施形態では、触知出力パターンは、触知出力の振幅、触知出力の動き波形の形状、触知出力の周波数、及び/又は触知出力の持続時間などの触知出力の特性を指定する。
異なる触知出力パターンを有する触知出力がデバイスによって生成されると(例えば、触知出力を生成するために可動質量を移動させる1つ以上の触知出力生成器を介して)、触知出力は、ユーザがデバイスを保持又はタッチする際に異なる触覚感覚を引き起こし得る。ユーザの感覚は、触知出力のユーザの知覚に基づいているとき、ほとんどのユーザは、デバイスによって生成される触知出力の波形、周波数、及び振幅の変化を識別することが可能である。したがって、波形、周波数、及び振幅を調整して、異なる動作が実行されたことをユーザに示すことができる。したがって、いくつかの状況では、所与の環境(例えば、グラフィカル特徴及びオブジェクトを含むユーザインタフェース、仮想の境界及び仮想のオブジェクトを有するシミュレートされた物理的環境、物理的な境界及び物理的な物体を有する実際の物理的環境、並びに/又は上記の任意の組み合わせ)において、物体の特性(例えば、サイズ、材料、重量、剛性、平滑度、など)、挙動(例えば、振動、変位、加速、回転、膨張など)、及び/又は相互作用(例えば、衝突、粘着、反発、吸引、摩擦など)をシミュレートするように設計、選択、及び/又は開発された触知出力パターンを有する触知出力は、入力エラーを低減させ、デバイスのユーザの動作の効率を増大させる有用なフィードバックをユーザに提供する。加えて、触知出力は、任意選択的に、入力閾値又はオブジェクトの選択などのシミュレートされた物理的特性に関係ないフィードバックに対応するように生成される。いくつかの状況では、そのような触知出力は、入力エラーを低減させ、デバイスのユーザの動作の効率を増大させる有用なフィードバックをユーザに提供する。
いくつかの実施形態では、適した触知出力パターンを有する触知出力は、ユーザインタフェース内又はデバイス内のシーンの後ろにおける対象イベントの出現に対する合図として働く。対象となるイベントの例は、デバイス上又はユーザインタフェース内で提供されるアフォーダンス(例えば、実ボタン、仮想ボタン、又はトグルスイッチ)のアクティブ化、要求された動作の成功又は失敗、ユーザインタフェース内の境界に到達すること又は超えること、新たな状態に入ること、オブジェクト間の入力の焦点を切り替えること、新たなモードのアクティブ化、入力閾値に到達すること又は超えること、入力又はジェスチャのタイプの検出又は認識などを含む。一部の実施形態では、触知出力は、リダイレクション又は中断入力が時宜を得て検出されない限り発生する、近いうち起こるイベント又は結果に対する警告又はアラートとしての役割を果たすように提供される。触知出力はまた、他の文脈で、ユーザエクスペリエンスの向上、視覚若しくは運動の障害又は他のアクセシビリティに関する必要を有するユーザに対するデバイスのアクセシビリティの改善、並びに/あるいはユーザインタフェース及び/又はデバイスの効率及び機能性の改善のために使用される。触知出力は、任意選択的に、オーディオ出力及び/又は可視のユーザインタフェースの変化を伴い、ユーザがユーザインタフェース及び/又はデバイスと対話するときのユーザのエクスペリエンスを更に向上させ、ユーザインタフェース及び/又はデバイスの状態に関する情報のより良好な伝達を容易にし、入力エラーを低減させ、デバイスのユーザの動作の効率を増大させる。
ユーザインタフェース及び関連するプロセス
ここで、ディスプレイと、タッチ感知面と、(任意選択的に)触知出力を生成するための1つ以上の触知出力生成器と、(任意選択的に)タッチ感知面との接触の強度を検出するための1つ以上のセンサとを備える、ポータブル多機能デバイス100又はデバイス300などの電子デバイス上で実装され得る、ユーザインタフェース(「UI」)及び関連プロセスの実施形態に注意を向ける。
図5A~図5Zは、いくつかの実施形態に係る、アプリケーション切り替えユーザインタフェースと対話するための例示的なユーザインタフェースを示す。これらの図におけるユーザインタフェースは、図6A~図6Dにおけるプロセスを含む、以下で説明されるプロセスを示すために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。そのような実施形態では、フォーカスセレクタは任意選択で、それぞれの指若しくはスタイラスの接触、指若しくはスタイラスの接触に対応する代表的な点(例えば、それぞれの接触の面心若しくはそれぞれの接触と関連付けられた点)、又はタッチ感知ディスプレイシステム112上で検出された2つ以上の接触の面心である。しかしながら、同様の操作は任意選択で、フォーカスセレクタと共に、ディスプレイ450上の図に示されるユーザインタフェースを表示する間、タッチ感知面451上の接触を検出したことに応じて、ディスプレイ450及び別々のタッチ感知面451を有するデバイス上で実行される。
図5A~図5Dは、いくつかの実施形態に係る、デバイスに、アプリケーションのユーザインタフェースからアプリケーション起動ユーザインタフェースにナビゲートさせる、上向きスワイプジェスチャを示す。
図5Aでは、デバイスは、デフォルトの全画面モード(例えば、タッチスクリーン112の実質的に全てを占有するユーザインタフェース5002)内に、地図アプリケーションのユーザインタフェース(例えば、ユーザインタフェース5002)を表示する。デバイスは、タッチスクリーン112の下端部領域内の接触(例えば、接触5004)を検出する。接触が検出される前に、デバイスは、タッチスクリーン112の下端部領域内にインジケータ(例えば、ホームアフォーダンス5006)を表示して、端部スワイプジェスチャを検出するためのタッチスクリーン112の下端部領域の位置を示す。
図5A~図5Bでは、デバイスは、タッチスクリーン112の下端部からの接触5004の上向き移動を検出し、接触5004の上向き移動に従って、デバイスは、地図アプリケーションのユーザインタフェース5002のサイズを縮小し、ユーザインタフェース5002を地図アプリケーションのアプリケーション表現(例えば、ユーザインタフェース5002のスナップショットを含むカード5010)に変換する。カード5010は、複数の可能な宛先状態(例えば、アプリケーション切り替えユーザインタフェース、アプリケーション起動ユーザインタフェース、以前の/次のアプリケーションのアプリケーションユーザインタフェース、又は現在のアプリケーションなどの、異なるユーザインタフェースに対応する宛先状態)を有するナビゲーションユーザインタフェース内の背景(例えば、背景5008(例えば、ホーム画面ユーザインタフェース5014(図5D)のぼかし画像))上に表示される。デバイスは、カード5010を、ナビゲーションユーザインタフェースの背景5008上の接触5004と共に移動させる。アプリケーション切り替えユーザインタフェースへナビゲートするための基準が、接触5004の移動によって満たされる(例えば、接触5004の移動の移動パラメータが第1の閾値を超える(例えば、上向き方向の第1の閾値距離、又は接触5004の中断が続く移動よりも大きい))との判定に従って、デバイスは、背景5008上のカード5010の隣に別のカード5012(例えば、設定アプリケーションのアプリケーション表現)を表示して、アプリケーション切り替えユーザインタフェースへナビゲートするための基準が満たされ、かつこの時点で接触5004のリフトオフが検出された場合に、デバイスがアプリケーション切り替えユーザインタフェースにナビゲートすることになることを示す。接触5004がタッチスクリーン112上で上向きに移動すると、カード5010及び5012は、接触5004と一致して上向きに移動し、カードの(又は接触の)タッチスクリーンの下端部からの距離に従って、サイズを縮小する。カード5012は、地図アプリケーションの前に最後に開かれたアプリケーションを表す。
図5B~図5Cでは、接触5004が上向きに移動し続け、ナビゲーションユーザインタフェース内の背景5008を横切ってカード5010及び5012をドラッグすると、デバイスは、アプリケーション起動ユーザインタフェース(例えば、ホーム画面ユーザインタフェース)へナビゲートするための基準が満たされた(例えば、接触5004の移動の移動パラメータが、第2の閾値を超えた(例えば、上向き方向における第1の閾値距離よりも大きい第2の閾値距離よりも大きい、又は接触5004の移動速度が閾値速度を超えた))ことを検出する。アプリケーション起動ユーザインタフェースへナビゲートするための基準が満たされたとの判定に従って、デバイスは、カード5012をディスプレイから除去し、背景5008上の接触5004と共に移動し続けるカード5010のみを残す。接触5004がナビゲーションユーザインタフェースを横切ってカード5010をドラッグすると、カード5010は、タッチスクリーンの下端部からのその距離に従ってサイズを変更する(例えば、端部からの距離が増大すると縮小する)。
図5C~図5Dでは、デバイスは、カード5010がタッチスクリーン上になおも存在する唯一のカードである間に(例えば、図5Cに示されるような状態で)、接触5004のリフトオフを検出する(例えば、アプリケーション起動ユーザインタフェースへナビゲートするための基準はなおも満たされ、アプリケーション切り替えユーザインタフェースへナビゲートするための基準はもはや満たされない)。接触5004のリフトオフを検出したことに応じて(例えば、図5Dにおいて、接触5004のリフトオフ位置が、ホーム画面ユーザインタフェース5014上の破線によって示されている)、デバイスは、ナビゲーションユーザインタフェースの表示を(例えば、図5Cに示す状態で)停止し、アプリケーション起動ユーザインタフェース(例えば、ホーム画面ユーザインタフェース5014)を(例えば、図5Dに示されるように)表示する。アプリケーション起動ユーザインタフェースは、デバイス上にインストールされたそれぞれのアプリケーションを表す複数のアプリケーションアイコンを表示する。複数のアプリケーションアイコンは、アプリケーションアイコンに対応する(又は、それらのうちの少なくとも一部に対する)アプリケーションがデバイス上で最後に使用された(例えば、最後に表示されたか、又はユーザによって対話された)相対的な最新性に関係なく、アプリケーション起動ユーザインタフェース上で、予め設定された方式で(例えば、アルファベットでリスト化されて、カテゴリによって、又はユーザ構成に従って)配置される。各アプリケーションアイコンは、ユーザ入力(例えば、タップ入力又はダブルタップ入力)によって選択及びアクティブ化されると、デバイスにアプリケーションアイコンに対応するアプリケーションを開かせる(例えば、表示させる)。
図5Eが続く図5Bは、ナビゲーションユーザインタフェースが図5Bに示される構成にあるときに接触5004のリフトオフが検出された場合(例えば、接触5004のリフトオフ位置が図5Eにおいて破線で示されている)、デバイスは、ユーザインタフェース(例えば、ホーム画面ユーザインタフェース5014)を起動するのではなく、アプリケーション切り替えユーザインタフェースにナビゲートすることを示している。
図5Eに示されるように、アプリケーション切り替えユーザインタフェースは、複数の最近使用されたアプリケーション(例えば、開かれたアプリケーションのスタック、又は保持状態のアプリケーション)に対応するアプリケーション表現を含む。アプリケーション表現(例えば、地図アプリケーションに対応するカード5010、設定アプリケーションに対応するカード5012、及び位置共有アプリケーションに対応するカード5016など)は、アプリケーションが最後に使用された(例えば、ユーザによって表示又は対話された)相対的な最新性に基づく順序で、アプリケーション切り替えユーザインタフェース内に(例えば、背景5008上にオーバーレイされて)配置される。例えば、直近に使用されたアプリケーションは、スタックの上部に配置され、少なくとも最近使用されたアプリケーションは、スタックの下部に配置される。図5Eに示されるように、アプリケーション切り替えユーザインタフェースでは、アプリケーションのアプリケーション表現(例えば、カード5010、5012、及び5016)は、最近使用されたアプリケーションのスタック内のそれらの相対的な順序を示す方法で重複して表示される。
図5Eは、ユーザが異なる方法でアプリケーション切り替えユーザインタフェースと対話する、複数のシナリオの開始状態を表す。複数の接触5018、5024、及び5026が図5Eに示されており、これらの接触のそれぞれは、異なる時間で独立して検出され、同時には検出されない。接触5018、5024、及び5026のそれぞれは、異なるシナリオで別個に検出される異なるジェスチャの一部である。
図5E~図5Gは、アプリケーション切り替えユーザインタフェースを横切る接触によるスワイプジェスチャ(例えば、アプリケーションのアプリケーション表現上で開始される)が、デバイスに、アプリケーション切り替えユーザインタフェース内のアプリケーション表現を介してスクロールさせることを示している。
図5E~図5Gでは、デバイスは、カード5012上の(図5Eにおける)接触5018を検出し、タッチスクリーンの右端部に向かう接触5018の水平移動(図5F及び図5Gにおいて水平矢印によって示されるような)を検出し、移動後のタッチスクリーンからの接触5012のリフトオフ(例えば、接触5018のリフトオフ位置が図5Gにおいて破線で示されている)を検出する。接触5018による水平スワイプに応じて、デバイスは、カード5010、5012、及び5016を右向きに移動させて、図5F及び図5Gに示されるように、カード5016の下にあるカード5020(例えば、気象アプリケーション用のアプリケーション表現)を明らかにさせる。
図5H~図5Kが続く図5Eは、上向きスワイプジェスチャがアプリケーション表現上で検出されると、上向きスワイプジェスチャが開始されるアプリケーション表現に対応するアプリケーションをデバイスが閉じることを示している。
図5Eに示されるように、接触5018は、アプリケーション切り替えユーザインタフェースに示されるカード5012上で検出される。図5Hでは、接触5018が閾値時間量(例えば、長い押圧時間閾値)にわたって実質的に静止したままであった後、デバイスは、カード5012を拡大してカード5012が選択されたことを示す。いくつかの実施形態では、デバイスは、接触が最初に閾値時間量にわたって静止したままであることを必要とすることなく、カード5012上の接触5018のタッチダウンを検出すると、カード5012を拡大する。
図5I~図5Jは、(例えば、接触5018の初期のタッチホールドを必要としない実施形態に係る)図5Eに示される状態、又は(例えば、接触5018の初期のタッチホールドを必要とする実施形態に係る)図5Hに示される状態のいずれかから続き、接触5018の上向き移動は、アプリケーション切り替えユーザインタフェース内の背景5008を横切ってカード5012を上向きにドラッグする。図5I~図5Jに示されるように、カード5012が接触5018によって上向きにドラッグされている間、カード5012のサイズは一定のままである。いくつかの実施形態では、上向き移動中のカード5012のサイズは、アプリケーション切り替えユーザインタフェース内の他のカードのサイズと同じである(例えば、カード5012のサイズは、図5Hにおいて接触5018のタッチホールドによりカード5012が拡大されている場合、スタックからドラッグアウトされる前にその元のサイズに縮小し戻される)。いくつかの実施形態では、上向きに移動中のカード5012のサイズは、カード5012の拡大サイズである(例えば、図5Hに示されるように)。
図5J~図5Kでは、デバイスは、接触5018の上向きの移動の終わりに接触5018のリフトオフを検出し、接触5018のリフトオフに応じて(例えば、接触5018のリフトオフ位置が図5Kにおいて破線で示されている)、接触がその元の位置を超えて閾値距離よりも多く移動したという判定に従って、デバイスは、カード5012の表示を停止し、カード5010、5016をシフトさせ、図5Eに示される構成内にカード5020を新たに明らかにさせる。カード5012がアプリケーション起動ユーザインタフェースから除去されると、デバイスは、カード5012に対応するアプリケーション(例えば、設定アプリケーション)を閉じる。アプリケーション切り替えユーザインタフェースが表示される次の時間、カード5012が他の最近使用されたアプリケーションのアプリケーション表現のスタック中に含まれないように、デバイスは、アプリケーション切り替えユーザインタフェースと関連付けられた、設定アプリケーションの最後に表示された状態に関する記憶された情報を除去する。
図5Lは、図5E又は図5Hのいずれかに続く。図5E及び図5L(又は図5H及び図5L)は、接触5018が、タッチスクリーンからリフトオフされる前の閾値時間量の間にその開始位置から閾値量を超えて移動しない(例えば、実質的に静止したままであった)場合、デバイスは、検出された入力(例えば、カード5012上の接触5018によるタップ入力)を、カード5012に対応するアプリケーションに切り替える要求として処理する。図5Lに示されるように(例えば、接触5018のリフトオフ位置が破線で示されている)、デバイスは、図5E(又は図5H)に示されるアプリケーション切り替えユーザインタフェースの表示を停止し、設定アプリケーション(例えば、ユーザインタフェース5022)の最後の表示されたユーザインタフェースを表示する。換言すれば、図5A、図5B、図5E、及び図5Lのシーケンスに示されるプロセスでは、ユーザが、アプリケーション切り替えユーザインタフェースを使用して、地図アプリケーションの表示から設定アプリケーションに切り替えた。
図5Mは、図5Eに続く。図5M~図5Oが続く図5Eは、上向きスワイプジェスチャが別のアプリケーション表現上で検出されると、デバイスが、上向きスワイプジェスチャが開始されるアプリケーション表現に対応するアプリケーションを閉じることを示している。
図5Eに示されるように、接触5024は、アプリケーション切り替えユーザインタフェースに示されるカード5010上で検出される。図5Mでは、接触5024が閾値時間量(例えば、長い押圧時間閾値)にわたって実質的に静止したままであった後、デバイスは、カード5010を拡大してカード5010が選択されたことを示す。いくつかの実施形態では、デバイスは、接触が最初に閾値時間量にわたって静止したままであることを必要とすることなく、カード5010上の接触5024のタッチダウンを検出すると、カード5010を拡大する。
図5Nは、(例えば、接触5024の初期のタッチホールドを必要としない実施形態に係る)図5Eに示される状態、又は(例えば、接触5024の初期のタッチホールドを必要とする実施形態に係る)図5Mに示される状態のいずれかから続き、接触5024の上向き移動は、アプリケーション切り替えユーザインタフェース内の背景5008を横切ってカード5010を上向きにドラッグする。図5Nに示されるように、カード5010が接触5024によって上向きにドラッグされている間、カード5010のサイズは一定のままである。いくつかの実施形態では、上向きに移動中のカード5010のサイズは、アプリケーション切り替えユーザインタフェース内の他のカードのサイズと同じである(例えば、カード5010のサイズは、図5Mにおいて接触5024のタッチホールドによりカード5010が拡大されている場合、スタックからドラッグアウトされる前にその元のサイズに縮小し戻される)。いくつかの実施形態では、上向き移動中のカード5010のサイズは、カード5010の拡大サイズである(例えば、図5Mに示されるように)。
図5N~図5Oでは、デバイスは、接触5024の上向きの移動の終わりに接触5024のリフトオフを検出し、接触5024のリフトオフに応じて(例えば、接触5024のリフトオフ位置が図5Oにおいて破線で示されている)、デバイスは、カード5010の表示を停止し、カード5012、5016をシフトさせ、図5Eに示される構成内にカード5020を新たに明らかにさせる。カード5010がアプリケーション起動ユーザインタフェースから除去されると、デバイスは、カード5010(例えば、地図アプリケーション)に対応するアプリケーションを閉じる。アプリケーション切り替えユーザインタフェースが表示される次の時間、カード5010が他の最近使用されたアプリケーションのアプリケーション表現のスタック中に含まれないように、デバイスは、アプリケーション切り替えユーザインタフェースと関連付けられた、地図アプリケーションの最後に表示された状態に関する記憶された情報を除去する。
図5Pは、図5Nに続く。図5N及び図5Pでは、接触5024は、カード5010を、アプリケーション切り替えユーザインタフェース内のカードのスタックから離れて上向きに(例えば、図5Nに示されるように)、次いで、逆の移動方向にドラッグする(例えば、接触5024の元の位置に向かって下向きに移動する)。図5Pに示されるように、接触5024のリフトオフが検出された後(例えば、接触5024のリフトオフ位置が図5Pに破線で示されている)、デバイスは、カード5010をアプリケーション切り替えユーザインタフェースのカードのスタック内に移動し戻し、図5Eにおけるアプリケーション切り替えユーザインタフェースの構成が復元される。
図5Qは、図5Eに続く。図5Eに続く図5Q~図5Tは、任意のアプリケーションのアプリケーション表現の外側のアプリケーション切り替えユーザインタフェースの一部分(例えば、いずれのカードによってもブロックされていない背景5008の一部分(例えば、背景5008の下部又は上部))において上向きスワイプジェスチャが検出され、タッチスクリーンの下端部内にないプロセスが、デバイスに、アプリケーション切り替えユーザインタフェースからアプリケーション起動ユーザインタフェース(例えば、ホーム画面ユーザインタフェース5014)へナビゲートさせることを示している。
図5E及び図5Qに示されるように、接触5026は、アプリケーション切り替えユーザインタフェース内のカードのスタックの下で最初に検出され(例えば、接触5026の初期位置が図5Qにおいて破線で示されている)、次いで、タッチスクリーン上で上向きに移動する。接触5026の上向き移動に応じて、デバイスは、アプリケーション切り替えユーザインタフェース内のアプリケーション表現の表示構成を変更する。例えば、スタックされたカード5010、5012、及び5016は、図5Qに示されるように、接触5026の上向き移動に応じて、互いから離れて移動し(かつ任意選択的にリサイズされ)、互いに重複することを停止する。
図5Q~図5Rは、接触5026が上向きに移動し続けると、カード5010、5012、及び5016が、接触5026と一致して上向きに移動することを示す。カード5010、5012、及び5016が接触5026と共に上向きに移動すると、カード5010、5012、及び5016のサイズは、接触5026の上方への移動に従って動的に縮小される。
いくつかの実施形態では、接触5026の移動が、アプリケーション切り替えユーザインタフェースへナビゲートし戻すための基準をなおも満たす間に(例えば、接触5026の移動の移動パラメータが閾値を下回る(例えば、移動距離が閾値距離を下回る、又は移動速度がリフトオフ前の閾値速度を下回る)場合)(例えば、アプリケーション起動ユーザインタフェースへナビゲートするための基準が満たされない場合)、3つのカード5010、5012、及び5016は、図5Q~図5Rに示されるように、接触5026の下で並んで表示されたままである。
図5Sでは、接触5026の移動がアプリケーション起動ユーザインタフェース(例えば、ホーム画面ユーザインタフェース5014)へナビゲートするための基準を満たすと、デバイスは、カード5016及び5010の表示を停止し、ナビゲーションユーザインタフェースに示されているセンターカードであるカード5012のみを表示して、この時点で接触5026のリフトオフが検出された場合にデバイスがアプリケーション起動ユーザインタフェースを表示することを示す。
図5S~図5Tでは、アプリケーション起動ユーザインタフェースへナビゲートするための基準が満たされている間に、接触5026のリフトオフが検出される(例えば、接触5026のリフトオフ位置が、図5Tにおいて破線で示されている)。接触5026のリフトオフを検出することに応じて、アプリケーション起動ユーザインタフェースへナビゲートするための基準が満たされたとの判定に従って、デバイスは、ナビゲーションユーザインタフェースの表示を停止し(例えば、図5Sに示されるように)、アプリケーション起動ユーザインタフェース(例えば、図5Tに示されるホーム画面ユーザインタフェース5014)を表示する。
いくつかの実施形態では、ホームアフォーダンス5006は、アプリケーション切り替えユーザインタフェース又はナビゲーションユーザインタフェース内に表示されないが、アプリケーション切り替えユーザインタフェースが表示されている間に検出された(例えば、タッチスクリーンの下端部領域から開始された)上向き端部スワイプジェスチャにより、デバイスにまた、アプリケーション起動ユーザインタフェースにナビゲートさせ、同様に図5Q~図5Sに示されるナビゲーションユーザインタフェースのアニメーションが任意選択的に表示される。これは、図5A~図5Dに示されるナビゲーションシナリオとは対照的である。例えば、図5Q及び図5Rにおけるナビゲーションユーザインタフェースは、アプリケーション切り替えユーザインタフェースの表現を含まない(例えば、図5Q及び図5Rに示されるナビゲーションユーザインタフェース内には、図5Eに示されるアプリケーション切り替えユーザインタフェースを表すカードは存在しない)が、代わりに、接触(例えば、接触5026)がタッチスクリーンの下端部領域で最初に検出された時点で表示されなかった、最近開かれたアプリケーションを表すカードを含む。したがって、いくつかの実施形態では、上向き端部スワイプジェスチャに応じて、ジェスチャの開始時に現在表示されているそれぞれのユーザインタフェースがアプリケーションユーザインタフェースであるとの判定に従って、デバイスは、それぞれのユーザインタフェースの表現を含むナビゲーションユーザインタフェースを表示し、ジェスチャの開始時に現在表示されているそれぞれのユーザインタフェースが、システムレベルユーザインタフェース(例えば、アプリケーション切り替えユーザインタフェース又はアプリケーション起動ユーザインタフェース)であるとの判定に従って、デバイスは、それぞれのユーザインタフェースの表現を含まないナビゲーションユーザインタフェースを表示する。
図5Q~図5Tが続く図5Eでは、視覚フィードバックは、接触5026の上向き及び横方向移動に従って、連続的かつ流動的である。接触5026の移動は、異なるユーザインタフェース(例えば、アプリケーション切り替えユーザインタフェース、又はアプリケーション起動ユーザインタフェース)にナビゲートするための基準に対して連続的に評価され、ユーザインタフェースナビゲーションの現在のターゲット状態を示すために、対応する視覚フィードバックが提供される(例えば、接触5026のリフトオフ前に接触5026の移動が反転した場合、図5S~図5Qに示される変更の反転が示されることになる)。
図5Uは、図5E又は図5Hに続く。図5Eに続く図5U~図5Xのシーケンス、並びに図5U~図5V及び5Zのシーケンスは、アプリケーション切り替えユーザインタフェース内のそれぞれのアプリケーションのアプリケーション表現上の位置から開始される下向きスワイプジェスチャが、拡張到達可能モードでアプリケーションにナビゲートするための基準が満たされているか、又はデフォルトの全画面モードでアプリケーションにナビゲートするための基準が満たされているかに応じて、デバイスに、拡張到達可能モード又はデフォルトの全画面モードでそれぞれのアプリケーションを表示させる、ことを示している。
第1に、図5U及び図5Vが続く図5E(又は図5H)のシーケンスは、接触5018がアプリケーション切り替えユーザインタフェース内のカード5012上で検出された後(例えば、図5E(又は図5H)に示される構成において)、接触5018の下方への移動により、カード5010、5012、及び5016に、接触5018の下方への移動に従ってサイズを拡大させることを示している。カード5012が接触5018の下方への移動と共にサイズが増大し続けると、カード5010及び5016は、(例えば、図5Vに示されるように)視界から押し出される。図5Vでは、カード5012のみが背景5008上に表示されると、デフォルトの全画面モードでカード5012に対応するアプリケーションへナビゲートするための基準が満たされる(例えば、接触5018の下向き移動の距離が、第1の閾値距離より大きく、かつ第2の閾値距離未満であるか、又は接触5018の下向き移動の移動速度が、閾値速度未満である)。接触5018のリフトオフが図5Vに示される時点に生じた場合、デバイスは、デフォルトの全画面モードでの設定アプリケーションに対して(例えば、図5Zに示されるように)ユーザインタフェース5022を表示することになる。
接触5018のリフトオフが図5Vに示される時点に発生せず、接触5018の下方への移動が継続する(例えば、図5Wに示されるように)場合、全幅で表示されたカード5012は、接触5018と共に下向きにシフトされ、タッチスクリーン上のカード5012の上の背景5008の一部分を現す。いくつかの実施形態では、プルアップタブ(例えば、山形5028)の表示は、拡張到達可能モードでアプリケーションを表示するための基準がすぐに満たされることを示すために、徐々に明らかにされる。
図5W~図5Xは、接触がタッチスクリーンの閾値位置を超えた後、接触5018のリフトオフを検出した(例えば、図5Xにおいて破線で示されるコンタクト5018のリフトオフ位置によって示されるように、タッチスクリーンの下端部領域に到達した)ことに応じて、デバイスが、拡張到達可能モードで設定アプリケーションに対するユーザインタフェース(例えば、ユーザインタフェース5032)を表示することを示している(例えば、ユーザインタフェース5032は、ユーザインタフェース5022がタッチスクリーン上で途中まで下にシフトされているかのようにユーザインタフェース5022の上部のみを示す)。いくつかの実施形態では、プルアップタブ(例えば、山形状インジケータを有するタブ5030)は、ユーザインタフェース5032の上部に隣接して表示される。拡張到達可能モードでアプリケーションのユーザインタフェースを表示することにより(例えば、図5Xに示されるように)、ユーザがデバイスを手で保持しながら、ユーザインタフェースの上部に(例えば、親指を使用して)容易にアクセスすることを可能にする。
図5X~図5Zは、アプリケーションのユーザインタフェース(例えば、図5Xにおけるユーザインタフェース5032)が拡張到達可能モードで表示されている間に検出された入力に基づいて、デフォルトの全画面モード(例えば、図5Zにおけるユーザインタフェース5022)でアプリケーションのユーザインタフェースの表示に戻るプロセスを示す。
図5Xでは、複数の接触(例えば、接触5034、5036、及び5038)が、タッチスクリーン上に示されている。これらの接触は、同時に検出された接触ではない。それらは、デフォルトの全画面モードで設定アプリケーションのユーザインタフェースの表示をもたらす、異なる例示的シナリオにおいて別個に検出された接触を表す。
図5X~図5Zでは、デバイスは、タブ5030上の接触5036を検出し、タブ5030を上向きに引っ張る接触5036の移動を検出し、設定アプリケーションのユーザインタフェースを上向きにドラッグする。図5Zでは、いったん接触5036が閾値位置を超えて移動するか、又は閾値速度を超える(例えば、迅速なフリックジェスチャで)リフトオフすると(例えば、接触5036のリフトオフ位置が図5Zにおいて破線で示されている)、デバイスは、デフォルトの全画面モードで設定アプリケーションのユーザインタフェース5022を表示する。
図5Zが続く図5Xでは、デバイスは、拡張到達可能モードで表示された設定アプリケーションのユーザインタフェース5032の上の背景5008の領域内の接触5034によるタップ入力を検出する(例えば、接触5034のリフトオフ位置が、図5Zにおいて破線で示されている)。接触5034によるタップ入力を検出したことに応じて、デバイスは、拡張到達可能モードでの設定アプリケーションの表示を停止し、デフォルトの全画面モードで設定アプリケーションを表示する(図5Zに示されるように)。
図5Zが続く図5Xでは、デバイスは、タッチスクリーンの下端部領域から開始された上向き端部スワイプ入力(例えば、接触5038の上向き移動)を検出する(例えば、ホームアフォーダンス5006の位置によって示されるように)。上向き端部スワイプ入力が既定の基準を満たすとの判定に従って(例えば、閾値速度を超えるリフトオフ速度、又はタッチスクリーンの下端部からの閾値距離を上回る移動距離を有する)との判定に従って、デバイスは、拡張到達可能モードで設定アプリケーションの表示を停止し(例えば、図5Xに示されるように)、デフォルトの全画面モードで設定アプリケーションを表示する(例えば、図5Zに示されるように)。
図6A~図6Dは、いくつかの実施形態に係る、アプリケーション切り替えユーザインタフェースと対話する方法を示すフロー図である。以下の例のうちのいくつかは、タッチ感知面とディスプレイとを組み合わせたタッチ感知ディスプレイ上での入力を参照して説明されるが、いくつかの実施形態では、デバイスは、図4Bに示されるように、ディスプレイ450とは別個のタッチ感知面451上で入力を検出する。
いくつかの実施形態では、方法6000は、電子デバイス(例えば、ポータブル多機能デバイス100、図1A)、及び/又は電子デバイスの1つ以上の構成要素(例えば、I/Oサブシステム106、オペレーティングシステム126など)によって実行される。いくつかの実施形態では、方法6000は、非一時的コンピュータ可読記憶媒体に記憶され、デバイス100の1つ以上のプロセッサ122(図1A)など、デバイスの1つ以上のプロセッサによって実行される命令によって統御される。説明を簡単にするために、以下に、デバイス100により実行されるものとして方法6000を説明する。いくつかの実施形態では、図1Aを参照すると、方法6000の動作は、少なくとも部分的に、オペレーティングシステム126、通信モジュール128、及び/又はグラフィックモジュール132、並びにタッチ感知ディスプレイ(例えば、タッチスクリーン112)によって実行されるか、又は使用される。方法6000の一部の動作が任意選択的に組み合わされ、かつ/又は一部の動作の順序が任意選択的に変更される。
以下で説明するように、方法6000(及び関連付けられたインタフェース)は、アプリケーションを閉じる、アプリケーション起動ユーザインタフェース(例えば、ホーム画面)へナビゲートする、又は異なるアプリケーションへナビゲートするなどの、アプリケーション切り替えユーザインタフェースにおける操作を実行するための直感的な方法を提供する。方法は、アプリケーション切り替えユーザインタフェースで操作を実行するときのユーザからの入力の数、範囲、及び/又は性質を削減し、それによって、より効率的なヒューマンマシンインタフェースを作成する。電池駆動の電子デバイスの場合、ユーザがアプリケーション切り替えユーザインタフェースの操作をより速くより効率的に実行することを可能とすることで、電力が節約され、電池充電の時間間隔が延びる。
方法6000では、デバイスは、ディスプレイ上に、アプリケーションを表示する(6002)(例えば、図5Aに示されるように、デバイスは地図アプリケーションのユーザインタフェース5002を表示する)。ディスプレイ上にアプリケーションを表示している間(例えば、ホーム画面ユーザインタフェース若しくはアプリケーション起動ユーザインタフェース、又は制御パネルユーザインタフェースなどのシステムレベルユーザインタフェースとは対照的に)、デバイスは、アプリケーション切り替えユーザインタフェースを表示する要求に対応する入力(例えば、図5A~図5Bに示されるように、タッチスクリーンの下端部から開始された接触5004による上向きスワイプ)を検出する(6004)。アプリケーション切り替えユーザインタフェースを表示する要求に対応する入力を検出したことに応じて、デバイスは、第1のアプリケーションに対応する第1のアプリケーション表現(例えば、地図アプリケーションに対応するカード5010)及び第2のアプリケーションに対応する第2のアプリケーション表現(例えば、設定アプリケーションに対応するカード5012)を含む、複数の最近使用されたアプリケーション(例えば、デバイス上で最近表示又は使用されたアプリケーションの所定の数(例えば、2、3、4、5、6)などの、デバイス上で直近に使用されたアプリケーション))の表現を含むアプリケーション切り替えユーザインタフェース(例えば、図5Bに続く図5Eに示されるように、最近使用された複数のアプリケーションをリスティングするユーザインタフェース)を表示する(6006)。アプリケーション切り替えユーザインタフェースを表示している間に、デバイスは、タッチ感知面上の接触(例えば、図5Bに続く図5Eにおける接触5018、5024、又は5026)によるタッチジェスチャ(例えば、接触の初期のタッチダウン及び接触のその後の移動、並びに任意選択的に接触のリフトオフを含む、接触によるタッチ及びドラッグジェスチャ)を検出する(6008)。タッチジェスチャ(6010)を検出したことに応じて、デバイスは、様々な判定に従って、1つ以上の動作を実行する(例えば、動作6012、6014、6016、6020、6022、6024、6032、6034、及び6036)。タッチジェスチャが第1の方向(例えば、ディスプレイを横切る垂直上向き方向に対応するタッチ感知面上の方向)への接触(例えば、接触5018)による移動を含み、第1のアプリケーション表現(例えば、設定アプリケーション)に対応する位置から開始されたとの判定に従って、デバイスは、第1のアプリケーションを(例えば、第1の方向における接触の移動を検出する前にタッチ感知面上の接触の持続時間に関係なく)閉じる(6012)。これは、図5E又は図5Hに続く図5I~図5Kに示されており、設定アプリケーションは、接触5018による上向きスワイプジェスチャがカード5012上で検出された後に閉じられる(例えば、アプリケーション切り替えユーザインタフェースと関連付けられて、最近開かれたアプリケーションのリストから除去される)。他のアプリケーション表現アプリケーション及びアプリケーション切り替えユーザインタフェースは、接触5018による上向きスワイプジェスチャの終了後に表示されたままである。タッチジェスチャが、第1の方向における接触(例えば、接触5024)による移動を含み、第2のアプリケーション表現(例えば、地図アプリケーション)に対応する位置で開始されたとの判定に従って、デバイスは、第2のアプリケーションを(例えば、第1の方向における接触の移動を検出する前のタッチ感知面上の接触の持続時間に関係なく)閉じる(6014)。これは、図5E又は図5Mに続く図5N~図5Oに示されており、接触5024による上向きスワイプジェスチャがカード5010上で検出された後に、地図アプリケーションが閉じられる(例えば、アプリケーション切り替えユーザインタフェースに関連付けられた最近開かれたアプリケーションのリストから除外される)。他のアプリケーション表現アプリケーション及びアプリケーション切り替えユーザインタフェースは、接触5018による上向きスワイプジェスチャの終了後に表示されたままである。タッチジェスチャが、第1の方向における接触(例えば、接触5026)による移動を含み、第1のアプリケーション表現及び第2のアプリケーション表現の外側(例えば、下)にあるアプリケーション切り替えユーザインタフェース内の既定の領域に対応する位置(例えば、アプリケーション表現の外側にある位置)で開始されたとの判定に従って、デバイスは、アプリケーション切り替えユーザインタフェースの表示を停止し(6016)、アプリケーション切り替えユーザインタフェース(例えば、ホーム画面ユーザインタフェース)とは異なる、アプリケーション起動ユーザインタフェース(例えば、図5Tに示される、ホーム画面のユーザインタフェース5014)を表示する。これは、図5Eに続く図5Q~図5Tに示されており、デバイスは、アプリケーション切り替えユーザインタフェース内の任意のカードによって覆われていない背景5008上で検出される接触5026による上向きスワイプジェスチャ(上向き端部スワイプジェスチャではない)に応じて、ホーム画面ユーザインタフェース5014を表示する。いくつかの実施形態では、アプリケーション起動ユーザインタフェースは、所定の配置(例えば、アプリケーションの少なくとも一部に対して最後に使用されたときのアプリケーションの相対的な最新性に依存しない配置)で表示されるアプリケーションアイコン及び/又はウィジェットを含むホーム画面ユーザインタフェースである。いくつかの実施形態では、アプリケーション起動ユーザインタフェースは、所定の配置で表示されるアプリケーションアイコンを含む、アプリケーションドロワーユーザインタフェースである。いくつかの実施形態では、アプリケーションアイコンは、(例えば、アイコン上のタップジェスチャにより)アクティブ化されると、対応するアプリケーションを起動する(例えば、デバイスに、アプリケーションを開かせ、アプリケーションのデフォルトの開始ユーザインタフェースを表示させる)アイコンである。いくつかの実施形態では、最近使用されたアプリケーションは、開かれたアプリケーションである。本明細書及び特許請求の範囲で用いられている用語「開かれたアプリケーション」は、状態情報が保持された(例えば、機器/包括的内部状態157及び/又はアプリケーション内部状態192の一部として)ソフトウェアアプリケーションを指す。開かれたアプリケーションとは、ディスプレイ112上に現在表示されている(又は、対応するアプリケーションビューがディスプレイ上に現在表示されている)アクティブアプリケーション、現在ディスプレイ112上には表示されていないが、対応するアプリケーションに関する1つ以上のアプリケーションプロセス(例えば、命令)が、1つ以上のプロセッサ120によって処理されている(すなわち、稼働している)バックグラウンドアプリケーション(又は、バックグラウンドプロセス)、現在稼働していない、中断されたアプリケーションであって、揮発性メモリ(例えば、メモリ102の、DRAM、SRAM、DDR、RAM、又は他の揮発性ランダムアクセス半導体メモリデバイス)内に記憶されているアプリケーション、及び稼働していない、休止状態のアプリケーションであって、不揮発性メモリ(例えば、メモリ102の、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体記憶デバイス)内に記憶されているアプリケーション、であるアプリケーションのタイプのうちのいずれかである。本明細書では、「閉じているアプリケーション」という用語は、保持された状態情報を有していないソフトウェアアプリケーションを指す(例えば、閉じているアプリケーションに対する状態情報は、デバイスのメモリ内に記憶されていない)。したがって、アプリケーションを閉じることは、アプリケーションに対するアプリケーションプロセスを停止及び/又は除去し、アプリケーションに対する状態情報をデバイスのメモリから除去することを含む。概して、第1のアプリケーション中に第2のアプリケーションを開いても、第1のアプリケーションは閉じない。第2のアプリケーションが表示されており、第1のアプリケーションの表示が中止されているとき、表示されているときはアクティブなアプリケーションであった第1のアプリケーションは、バックグラウンドアプリケーション、中断されたアプリケーション、又は休止されたアプリケーションになり得るが、第1のアプリケーションは、その状態情報が機器によって保持されている間、開かれたアプリケーションのままである。
いくつかの実施形態では、タッチジェスチャを検出している間に、デバイスは、接触(例えば、図5Eにおける接触5018又は接触5024)が、それぞれのアプリケーション表現(例えば、図5Eに示されるような設定アプリケーション又は地図アプリケーション)に対応する位置で最初に検出されたと判定する(6018)。接触が、それぞれのアプリケーション表現に対応する位置で最初に検出されたと判定したことに応じて、それぞれのアプリケーション表現を拡大する。これは、例えば、図5H及び図5Mに示されており、デバイスは、接触5018及び5024をそれぞれ検出すると、カード5012及び5010をそれぞれ拡大する。特定のアプリケーション表現を拡大することにより、タッチジェスチャにおける接触が、特定のアプリケーション表現に関連付けられた動作を電子デバイスに実行させることになる位置にあることを示す視覚フィードバックをユーザに提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと対話するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、接触によるタッチジェスチャを検出したことに応じて(6010)、それぞれのアプリケーション表現(例えば、第1のアプリケーション表現又は第2のアプリケーション表現)上でタッチジェスチャが開始し、かつタッチ感知面上の接触の開始位置から閾値量未満移動した接触(例えば、接触5018)でタッチジェスチャが(例えば、接触のリフトオフ後、又は所定のタイムアウト後)終了したとの判定に従って、デバイスは、アプリケーション切り替えユーザインタフェースの表示をそれぞれのアプリケーション(例えば、設定アプリケーション)に対するユーザインタフェース(例えば、全画面ユーザインタフェース)で置き換える。これは、図5Eに続く図5U~図5V及び図5Zに示されており、カード5018上の下向きのスワイプジェスチャ(例えば、タッチスクリーン上の閾値位置を通過しない短い下向きのスワイプ)により、デバイスに、設定アプリケーションのユーザインタフェース5022を全画面モードで表示させる。これはまた、図5Eに続く図5Lにも示されており、接触5018によるタップジェスチャが、デバイスに、設定アプリケーションを表示させ、アプリケーション切り替えユーザインタフェースの表示を停止させる。特定のアプリケーションを移動ジェスチャで閉じる代わりに、静止ジェスチャを用いて特定のアプリケーションにナビゲートすることにより、アプリケーション切り替えユーザインタフェース内で実行することができる追加の操作を提供する。追加の表示制御でユーザインタフェースを混乱させることなく、追加の制御オプションを提供することにより、(例えば、デバイスを操作する/デバイスと対話するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、方法6000では、接触によるタッチジェスチャを検出したことに応じて(6010)、タッチジェスチャが、第1の方向とは異なる(例えば、反対の)第2の方向における接触の移動を含むとの判定に従って、デバイスは、アプリケーション切り替えユーザインタフェースの表示を維持する(6022)。図5Eに続く、図5F、図5H~図5J、図5M~図5N、図5Q~図5S、図5U~図5Wに示されるプロセスのいずれにおいても、接触(例えば、接触5018、5024、又は5026)の移動がその開始位置に逆戻りし(又は開始位置の閾値距離内にあり)、次いでリフトオフする場合、デバイスは、アプリケーション切り替えユーザインタフェースの表示を図5Eに示される構成に復元する。接触が第1の方向とは異なる方向に移動したことに応じて、アプリケーション切り替えユーザインタフェースを維持することにより、接触が第1の方向に移動し続けた場合に生じた動作を回避又はキャンセルするための方法を提供する。追加の表示制御(例えば、元に戻す又はキャンセルアイコン)でユーザインタフェースを混乱させることなく、追加の制御オプションを提供することにより、(例えば、デバイスを操作する/デバイスと対話するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、接触(例えば、接触5018)によるタッチジェスチャを検出したことに応じて、タッチジェスチャが、それぞれのアプリケーション表現(例えば、カード5012)に対応する位置で開始され、第1の方向とは異なる(例えば、反対の)第2の方向(例えば、下向き)への接触の移動を含むとの判定に従って、デバイスは、アプリケーション切り替えユーザインタフェースの表示を、それぞれのアプリケーションに対するユーザインタフェースと置き換え(6024)、ここで、それぞれのアプリケーションに対するユーザインタフェースは、既定の方向に(例えば、それぞれのアプリケーションに対するユーザインタフェースの上部が電子デバイスの下端部により近くなるように下向きに)シフトされる。これは、図5Eに続く図5U~図5Xに示されており、カード5012上の接触5018による下向きスワイプジェスチャは、デバイスに、拡張到達可能モードで(例えば、タッチスクリーンで途中まで下向きにシフトされて)設定アプリケーションのユーザインタフェースを表示させる。別の方向(例えば、上向き)に移動するジェスチャで特定のアプリケーションを閉じる代わりに、ジェスチャが一方向(例えば、下向き)に移動するのに応じて、ユーザインタフェースをシフト(例えば、下向き)させて特定のアプリケーションにナビゲートして、ユーザが片手操作で特定のアプリケーションを操作しやすくすることにより(例えば、特定のアプリケーションのユーザインタフェースの上部におけるコントロールの到達可能性を改善することにより)、アプリケーション切り替えユーザインタフェースで実行できる追加の操作を提供する。追加の表示制御でユーザインタフェースを混乱させることなく、追加の制御オプションを提供することにより(例えば、デバイスを操作する/デバイスと対話するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)、デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、既定の方向にシフトされたそれぞれのアプリケーションに対するユーザインタフェースを表示することは、ディスプレイの既定の部分からそれぞれのアプリケーションに対するユーザインタフェースを除去することを含む(6026)(例えば、タッチスクリーンの上部は、ユーザインタフェース5022の任意の部分を表示せず、図5Xに示されるように、代わりに背景5008の一部分を表示する)。方法600 では、既定の方向にシフトされたそれぞれのアプリケーションに対するユーザインタフェースを表示している間に、デバイスは、ディスプレイの既定の部分に対応する位置で、ジェスチャ(例えば、接触5036又は5038によるドラッグジェスチャ)(例えば、それぞれのアプリケーションに対してシフトされたユーザインタフェース内に又はそれと共に表示されるドラッグアフォーダンス(図5Xの山形5030など)に対応するタッチ感知面上の位置で開始されたドラッグジェスチャ)を検出する。デバイスは、それぞれのアプリケーションに対するユーザインタフェース(例えば、ユーザインタフェース5022)を、ジェスチャに従って、ディスプレイの既定の部分に戻す(例えば、ジェスチャが進行するにつれて、アプリケーションをディスプレイの既定の部分内に徐々に移動し戻す)。これは、例えば、図5X~図5Yに示されている(例えば、タブ5030上の上向きスワイプジェスチャが、デバイスに拡張到達可能モードから出させることを示している)。これは、例えば、図5Xに続く図5Zにも示されている(例えば、タッチスクリーンの下端部からの上向きスワイプジェスチャが、デバイスに拡張到達可能モードを出させることを示している)。
いくつかの実施形態では、既定の方向にシフトされたそれぞれのアプリケーションに対するユーザインタフェースを表示している間に、ディスプレイの既定の部分内でタップジェスチャを検出したことに応じて、デバイスは、それぞれのアプリケーションに対するユーザインタフェースを、ディスプレイの既定の部分内にシフトし戻す。これは、例えば、図5Xに続く図5Zに示されている(例えば、接触5034によるタップジェスチャが、デバイスに拡張到達可能モードから出させることを示している)。別のジェスチャに応じて、アプリケーションのユーザインタフェースをその非シフト位置にシフトし戻すことにより(例えば、アプリケーションがディスプレイ上に全画面で表示される場合)、ユーザが、ユーザインタフェースの下部と対話することを可能にし、ユーザが片手操作を使用してユーザインタフェースの上部と対話することを可能にする。追加の表示制御でユーザインタフェースを混乱させることなく、追加の制御オプションを提供することにより、(例えば、デバイスを操作する/デバイスと対話するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、タッチジェスチャを検出したことに応じて(6010)、タッチジェスチャが、第1の方向とは異なる(例えば、垂直に)第3の方向(例えば、左向き又は右向き)への接触による移動を含むとの判定に従って、デバイスは、アプリケーション切り替えユーザインタフェースの表示を維持し(6028)、アプリケーション切り替えユーザインタフェース内に表示されるアプリケーション表現を(例えば、第3の方向における接触の移動を検出する前のタッチ感知面上の接触の持続時間に関係なく)スクロールする。これは、例えば、図5E~図5Gに示され、接触5018による右向きスワイプジェスチャがアプリケーション切り替えユーザインタフェース内のカードをスクロールする場合、最近使用されたアプリケーションを表すカードのスタック内のより深くに新しいカードを現す。第3の方向(例えば、右向き又は左向き)に移動ジェスチャでアプリケーション表現をスクロールすることにより、第1の方向(例えば、上向き)での移動ジェスチャで特定のアプリケーションを閉じる代わりに、アプリケーション切り替えユーザインタフェース内の選択のための追加のアプリケーション表現を表示する。追加の表示制御でユーザインタフェースを混乱させることなく、追加の制御オプションを提供することにより、(例えば、デバイスを操作する/デバイスと対話するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、タッチジェスチャを検出したことに応じて(6010)、タッチジェスチャが、それぞれのアプリケーション表現に対応する位置で開始され、接触の移動を含むとの判定に従って、デバイスは、接触の移動に従って、それぞれのアプリケーション表現を移動させる(6030)(例えば、タッチ感知ディスプレイ上で、接触がディスプレイを横切って上向きに移動する場合はアプリケーション表現を上向きに移動させ、接触がディスプレイを横切って下向きに移動する場合はアプリケーション表現を下向きに移動させ、接触がディスプレイを横切って左向きに移動する場合はアプリケーション表現を左向きに移動させ、及び/又は接触がディスプレイを横切って右向きに移動する場合はアプリケーション表現を右向きに移動させる)。これは、例えば、図5F、図5I、図5N、図5U~図5Wに示されている。接触の移動に従って特定のアプリケーション表現を移動させることにより、タッチジェスチャが、特定のアプリケーション表現に関連付けられた動作を電子デバイスに実行させることになることを示す視覚フィードバックをユーザに提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと対話するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、タッチジェスチャを検出したことに応じて(6010)、タッチジェスチャがそれぞれのアプリケーション表現(例えば、第1又は第2のアプリケーション表現)に対応する位置で開始され、第1の方向における接触の移動を含むとの判定に従って、デバイスは、(例えば、図5I~図5Jに示されるように)他のアプリケーション表現を第1の方向に移動させることなく、それぞれのアプリケーション表現を第1の方向に移動させ(6032)(例えば、第1の方向における接触の移動の量が増大するにつれて、それぞれのアプリケーションの移動の量が増大する)、タッチジェスチャが、既定の領域の外側の位置に対応する位置で開始され、第1の方向における接触の移動を含むとの判定に従って、それぞれのアプリケーション表現及び1つ以上の他のアプリケーション表現を第1の方向に同時に移動させる(例えば、図5Q~図5Rに示されるように)(例えば、第1の方向におけるコンタクトの移動量が増大するにつれて、それぞれのアプリケーション及び1つ以上の他のアプリケーション表現の移動量が増大する)。他のアプリケーション表現を第1の方向に移動させることなく、特定のアプリケーション表現のみを第1の方向に移動させることにより、特定のアプリケーション表現に対応するアプリケーション上でのみ動作が実行されることになることを示す視覚フィードバックをユーザに提供する(例えば、他の開かれたアプリケーションを閉じることなく、対応するアプリケーションを閉じる)。複数のアプリケーション表現を第1の方向に同時に移動させることにより、特定のアプリケーションに固有ではない(例えば、ホーム画面ユーザインタフェースに行く)動作が実行されることになることを示す視覚フィードバックをユーザに提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと対話するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、タッチジェスチャを検出したことに応じて(6010)、タッチジェスチャがそれぞれのアプリケーション表現(例えば、第1又は第2のアプリケーション表現)に対応する位置で開始され、第1の方向における接触の移動を含むとの判定に従って、デバイスは、第1の方向における接触の移動に従って、それぞれのアプリケーション表現のサイズを変更することなく、それぞれのアプリケーション表現を移動させ(6034)(例えば、図5I~図5Jに示されるように、接触5018によって引き起こされる上方への移動中、カード5012のサイズは一定のままである)、タッチジェスチャが、既定の領域の外側の位置に対応する位置で開始され、第1の方向における接触の移動を含むとの判定に従って、デバイスは、それぞれのアプリケーション表現を同時に移動させ、第1の方向における接触の移動に従って、それぞれのアプリケーション表現のサイズを変更(例えば、サイズを拡大又は縮小)する(例えば、第1の方向における接触の移動量が増大するにつれて、それぞれのアプリケーション表現のサイズの変化量が増大する)(例えば、図5Q~図5Rに示されるように、カード5012のサイズは、接触5026によって上向きにドラッグされると縮小する)。いくつかの実施形態では、デバイスは、第1の方向における接触の移動に従って、1つ以上の他のアプリケーション表現のサイズを同時に変更する。例えば、図5Q~図5Rに示されるように、カード5010、5012、及び5016のサイズは、接触5026の移動によって引き起こされるカードの上向き移動中に、一致して変化する。そのサイズを変更することなく、特定のアプリケーション表現を第1の方向に移動させることにより、特定のアプリケーション表現に対応するアプリケーション上で動作が実行されることになることを示す視覚フィードバックをユーザに提供する(例えば、他の開かれたアプリケーションを閉じることなく、対応するアプリケーションを閉じる)。第1の方向に複数のアプリケーション表現を移動させることにより、そのサイズを変更している間に、特定のアプリケーションに固有ではない(例えば、ホーム画面ユーザインタフェースに行く)動作が実行されることになることを示す視覚フィードバックをユーザに提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと対話するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
いくつかの実施形態では、アプリケーション切り替えユーザインタフェースは、互いに重複する(例えば、図5Eに示されるように、カード5010、5012、及び5016が互いに重複する)複数のアプリケーション表現を含む(6036)。方法6000では、タッチジェスチャを検出したことに応じて(6010)、タッチジェスチャがそれぞれのアプリケーション表現(例えば、第1又は第2のアプリケーション表現)に対応する位置で開始され、第1の方向における接触の移動を含むとの判定に従って、デバイスは、複数のアプリケーション表現の重複の少なくとも一部を維持しながら、それぞれのアプリケーション表現を移動させ(6038)(例えば、図5I~図5Jに示されるように、カード5012は、その上方移動中、カード5010及び5016と重複し続ける)、タッチジェスチャが、既定の領域の外側の位置に対応する位置で開始され、第1の方向における接触の移動を含むとの判定に従って、デバイスは、それぞれのアプリケーション表現を移動させ、アプリケーション表現のうちの1つ以上を移動及び/又はリサイズして、複数のアプリケーション表現間の重複を排除する(例えば、図5Q~図5I に示されるように、カード5012、5010、及び5016は、離間して広げられ、リサイズされ、重複することなく平行に上向きに移動する)。他のアプリケーション表現のうちの少なくとも一部の重複を維持しながら、特定のアプリケーション表現を第1の方向に移動させることにより、特定のアプリケーション表現に対応するアプリケーション上で動作が実行されることになることを示す視覚フィードバックをユーザに提供する(例えば、他の開かれたアプリケーションを閉じることなく、対応するアプリケーションを閉じる)。アプリケーション表現間の重複を排除するための複数のアプリケーション表現を移動及び/又はリサイズすることにより、特定のアプリケーションに固有ではない(例えば、ホーム画面ユーザインタフェースに行く)動作が実行されることになることを示す視覚フィードバックをユーザに提供する。改善されたフィードバックを提供することにより、(例えば、デバイスを操作する/デバイスと対話するときにユーザが適切な入力を提供するのを助け、ユーザの誤りを低減することによって)デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にする。
図6A~図6Dにおける動作が説明された特定の順序は一例に過ぎず、説明された順序は、動作を実行することができる唯一の順序であることを示すものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。いくつかの実施形態では、方法6000の1つ以上の動作は、本明細書に記載される他の方法の1つ以上の動作と組み合わされるか、補完されるか、又は置き換えられる。
図6A~図6Dを参照して上述された動作は、任意選択的に、図1A~図1Bに記される構成要素によって実施される。例えば、表示動作6002、6006、及び6016、検出動作6004、及び6008、並びに閉じる動作6012及び6014は、任意選択的に、イベントソータ170、イベント認識部180、及びイベント処理部190によって実行される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136-1に配信する。アプリケーション136-1の対応するイベント認識部180は、そのイベント情報を対応するイベント定義186と比較し、タッチ感知面上の第1の位置における第1の接触(又は、デバイス100の回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイス100の回転などの、所定のイベント又はサブイベントに対応するかどうかを判定する。対応する既定のイベント又はサブイベントが検出されると、イベント認識部180は、そのイベント又はサブイベントの検出に関連付けられたイベント処理部190をアクティブ化する。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を、任意選択で使用するか又は呼び出す。いくつかの実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が図1A~図1Bに記される構成要素に基づいてどのように実施されるかは明らかであろう。
上記は、説明を目的として、特定の実施形態を参照して記述されている。しかしながら、上記の例示的な論考は、網羅的であること、又は開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正及び変形が可能である。本発明の原理及びその実際的な応用を最良の形で説明し、それによって他の当業者が、想到される特定の用途に適した様々な変更で本発明及び様々な記載された実施形態を最良の形で使用することを有効化するために、これらの実施形態を選択し記載した。