一般に、複数のアプリケーション・インタフェース要素を管理するとき、ユーザはグラフィック・ユーザ・インタフェース上のフォルダを使用する。ユーザは、手動で当該複数のアプリケーション・インタフェース要素を1つずつ移動し、例えば、それらをフォルダに移動するかもしれない。当該グラフィック・ユーザ・インタフェース上のアプリケーション・インタフェース要素の数が多いとき、手動収集動作が多数回繰り返され、これが多くの電力を消費し貧弱なユーザ・エクスペリエンスにつながる。
以下で説明する当該実施形態は、少量の動作を実施することによってユーザがグラフィック・ユーザ・インタフェース上のアプリケーション・インタフェース要素を収集し、ユーザの手動動作を減らし、電力を節約し、ユーザ・エクスペリエンスを高めるのを支援する。
幾つかの実施形態では、グラフィック・ユーザ・インタフェース上のアプリケーション・インタフェース要素a(例えば、アプリ・アイコン)の領域(例えば、デバイスのタッチ・センシティブ・サーフェス上の位置)上でユーザ・ジェスチャが行われたとき、当該アプリケーション・インタフェース要素は可動状態に入り、アプリケーション・インタフェース要素aはアプリケーションAに対応する。別のジェスチャがアプリケーション・インタフェース要素aの当該領域または当該グラフィック・ユーザ・インタフェースの別の領域上で行われたとき、新たなフォルダCが当該グラフィック・ユーザ・インタフェースに表示される。さらに、アプリケーション・インタフェース要素aおよびアプリケーションAと同一のタイプのアプリケーションBに対応するアプリケーション・インタフェース要素bが自動的にフォルダCに移動される。このように、アプリケーション・インタフェース要素aおよびbは自動的に同一のフォルダCに収集される。幾つかの実施形態では、ユーザ・ジェスチャがグラフィック・ユーザ・インタフェース上で行われるとき、1つまたは複数のアプリケーション・インタフェース要素が可動であるために選択されてもよく、1つまたは複数の可動アプリケーション・インタフェース要素が非可動であるために選択解除されてもよい。
幾つかの実施形態では、ユーザ・ジェスチャがグラフィック・ユーザ・インタフェースまたは当該グラフィック・ユーザ・インタフェースの別の領域(例えば、既存のフォルダCの領域)上のアプリケーション・インタフェース要素a(例えば、アプリ・アイコン)の領域上で行われるとき、アプリケーション・インタフェース要素aが可動状態に入り、アプリケーション・インタフェース要素aはアプリケーションAに対応する。別のジェスチャがアプリケーション・インタフェース要素aまたは当該グラフィック・ユーザ・インタフェースの別の領域上で行われるとき、アプリケーション・インタフェース要素aおよびアプリケーションAと同一のタイプであるアプリケーションBに対応するアプリケーション・インタフェース要素bは自動的に当該グラフィック・ユーザ・インタフェース上の既存のフォルダCに移動される。このようにアプリケーション・インタフェース要素aおよびbは自動的に同一のフォルダCに移動される。幾つかの実施形態では、ユーザ・ジェスチャがグラフィック・ユーザ・インタフェース上で行われるとき、1つまたは複数のアプリケーション・インタフェース要素が可動のために選択されてもよく、1つまたは複数の可動アプリケーション・インタフェース要素が非可動のために選択解除されてもよい。
幾つかの実施形態では、ユーザ・ジェスチャがグラフィック・ユーザ・インタフェース上で行われるとき、上述の当該複数のイベントをトリガしてもよい。例えば、当該複数のアプリケーション・インタフェース要素が可動であり、当該複数のアプリケーション・インタフェース要素が自動的に同一のフォルダに収集される。幾つかの実施形態では、複数のイベントがユーザ・ジェスチャをタッチ・センシティブ・サーフェス上で行った時間に従って成功裏にトリガされる。例えば、ユーザ・ジェスチャが当該タッチ・センシティブ・サーフェスで行われた時間がT1に到達すると、複数のアプリケーション・インタフェース要素が可動であり、当該ジェスチャが当該タッチ・センシティブ・サーフェスで実行され続け、連続実行時間がT2に到達すると、当該複数のアプリケーション・インタフェース要素は自動的に同一のフォルダに収集され、T2>T1である。
以下では、図1Aおよび1B、図2、および図3は例示的なデバイスを示す。図4および図5A乃至5Gはアプリケーション・インタフェース要素を移動するために使用される例示的なユーザ・インタフェースを示す。図6は、アプリケーション・インタフェース要素を移動するための方法の流れ図を示す。図7は、アプリケーション・インタフェース要素を移動するために使用される機能ブロックを示す。図5A乃至5Gのユーザ・インタフェースは図6および図7のプロセスおよび/または機能を詳説するために使用される。
例示的なデバイス
次に当該実施形態を詳細に参照し、当該実施形態の例が添付図面に示されている。本発明の徹底的な理解のために、多くの特定の詳細を以下の詳細な説明に与える。しかし、明らかに、本発明を特定の詳細なしに実施できることを当業者は理解する。別のケースでは、周知の方法、プロセス、コンポーネント、回路、およびネットワークの詳細な説明は当該実施形態の態様の不必要な曖昧さを避けるために省略されている。
また理解できるように、明細書において「第1の」および「第2の」のような用語を様々な要素を記述するために使用してもよいが、当該要素は当該用語によって限定されないものとする。当該用語は或る要素を別の要素から区別するために使用されるにすぎない。例えば、本発明の範囲から逸脱することなく、第1の接触を第2の接触と名付けてもよいし、同様に、第2の接触を第1の接触と名付けてもよい。第1の接触および第2の接触の両方は接触であるが、同一の接触でなくてもよく、幾つかのシナリオでは同一の接触であってもよい。
本明細書では、本発明の説明において使用する用語は特定の実施形態を説明しようとするものであり本発明を限定するものではない。本明細書および本発明の諸請求項で使用するように、「one」、「a」または「this」という単数形の表現は文脈で特に断らない限りその複数形の表現を含むことを意図している。また理解できるように、本明細書で使用される「および/または」という用語は、関連して列挙された項目内の1つまたは複数の項目の任意の組合せおよび全ての可能な組合せを指し、カバーするものである。また理解できるように、本明細書で使用する「includes」および/または「comprise」という用語は、述べた特性、整数、ステップ、動作、要素、および/またはコンポーネントの存在を指すが、1つまたは複数の他の特性、整数、ステップ、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除しない。
文脈に応じて、本明細書で使用する「if」という用語を、「when・・・」または「after・・・」または「in response to determining」または「in reponse to detecting」として解釈してもよい。同様に、文脈に応じて、「if determining・・・」または「if detecting[the mentioned condition or event]」という表現を、「when determining・・・」または「in reponse to determining・・・」または「when detecting[the mentioned condition or event]」または「in response to detecting[the mentioned condition or event]」と解釈してもよい。
電子装置、かかるデバイスに適用されるユーザ・インタフェース、およびかかるデバイスを使用する関連するプロセスの実施形態を説明する。幾つかの実施形態では、当該デバイスは、携帯情報端末および/または音楽再生機能、例えば、携帯電話のような別の機能をさらに含むポータブル通信デバイスである。ポータブル電子装置の例示的な実施形態は、iOS(登録商標)、Android(登録商標)、またはMicrosoft(登録商標)のオペレーティング・システムまたは別のオペレーティング・システムがインストールされたポータブル電子装置を含むがこれらに限られない。別のポータブル電子装置を、例えば、(タッチ・スクリーン・ディスプレイおよび/またはタッチパッドのような)タッチ・センシティブ・サーフェスを有するラップトップ・コンピュータまたはタブレットにより使用してもよい。また理解できるように、幾つかの実施形態では、当該デバイスはポータブル通信デバイスではないが、(タッチ・スクリーン・ディスプレイおよび/またはタッチパッドのような)タッチ・センシティブ・サーフェスを有するデスクトップ・コンピュータである。
以下の説明では、ディスプレイおよびタッチ・センシティブ・サーフェスを備える電子装置を説明する。しかし、当該電子装置が物理キーボード、マウス、および/またはジョイスティックのような1つまたは複数の他の物理ユーザ・インタフェースデバイスを含んでもよいことは理解されるべきである。
デバイスは一般に、描画アプリケーション、プレゼンテーション・アプリケーション、ワード・プロセッシングアプリケーション、ウェブ生成アプリケーション、ディスク編集アプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、通話アプリケーション、ビデオ会議アプリケーション、電子メールアプリケーション、インスタント・メッセージングアプリケーション、エクササイズ・サポートアプリケーション、写真管理アプリケーション、デジタルカメラ・アプリケーション、デジタル・ビデオ・カメラ・アプリケーション、ウェブ閲覧アプリケーション、デジタル音楽再生アプリケーション、および/またはデジタル・ビデオ再生アプリケーションのうち1つまたは複数のような複数のアプリケーションをサポートする。
当該デバイスで実行できる様々なアプリケーションは、タッチ・センシティブ・サーフェスのような少なくとも1つの物理ユーザ・インタフェースデバイスを共有してもよい。当該タッチ・センシティブ・サーフェスの1つまたは複数の機能および当該デバイスで表示される対応する情報を、次のアプリケーションに調整および/または変更してもよく、かつ/または、当該対応するアプリケーション内で調整および/または変更してもよい。このように、(タッチ・センシティブ・サーフェスのような)当該デバイスの共有される物理アーキテクチャが、ユーザに直感的であり明らかなユーザ・インタフェースを用いることによって様々なアプリケーションをサポートすることができる。
次に、タッチセンシティブ・ディスプレイを有するポータブル・デバイスの1実施形態に着目する。図1A-aおよび図1A-bは、幾つかの実施形態に従うタッチセンシティブ・ディスプレイ112を有するポータブル電子装置100のブロック図を示す。便宜上、タッチセンシティブ・ディスプレイ112はしばしば「タッチ・スクリーン」と称され、またタッチセンシティブ・ディスプレイ・システムと呼ばれるかまたはそのように知られていてもよく、または、タッチ・センシティブ・サーフェス(touch‐sensitive surface)およびスクリーン(display)を有するディスプレイ・システムと称してもよい。デバイス100が、メモリ102(1つまたは複数のコンピュータ可読記憶媒体を含んでもよい)、メモリ・コントローラ122、1つまたは複数の処理ユニット(CPU)120、周辺デバイス・インタフェース118、RF回路システム108、オーディオ回路システム110、スピーカ111、マイクロフォン113、入出力(I/O)サブシステム106、別の入力制御デバイス116、および外部ポート124を備えてもよい。デバイス100が1つまたは複数の光センサ164を含んでもよい。かかるコンポーネントは、1つまたは複数の通信バスまたは信号ケーブル103を用いて通信してもよい。
デバイス100はポータブル電子装置の1例にすぎず、デバイス100は示したものより多くのまたは少ないコンポーネントを有してもよく、2つ以上のコンポーネントを組み合わせてもよく、または、当該コンポーネントの異なる構成またはレイアウトを有してもよいことは理解されるべきである。図1A-aおよび図1A-bに示した様々なコンポーネントを、1つまたは複数の信号処理および/または専用集積回路を含む、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組合せにより実装してもよい。
メモリ102が高速ランダム・アクセス・メモリを含んでもよく、さらに1つまたは複数のディスク記憶デバイス、フラッシュ・メモリ・デバイス、または他の不揮発性固体状態記憶デバイスのような不揮発性メモリを含んでもよい。デバイス100の(CPU120および周辺デバイス・インタフェース118のような)他のコンポーネントはメモリ・コントローラ122の制御下でメモリ102にアクセスしてもよい。
周辺デバイス・インタフェース118を、当該デバイスの入力および出力周辺デバイスをCPU120およびメモリ102に接続するために使用してもよい。1つまたは複数のプロセッサ120は、メモリ102に格納された様々なソフトウェア・プログラム、および/または命令セットを実行し、デバイス100の様々な機能を実行しデータを処理する。幾つかの実施形態では、1つまたは複数のプロセッサ120は画像信号プロセッサおよびデュアルコアまたはマルチコアプロセッサを含む。
幾つかの実施形態では、周辺デバイス・インタフェース118、CPU120、およびメモリ・コントローラ122をチップ104のような単一のチップで実装してもよい。幾つかの他の実施形態では、それらを独立なチップで実装してもよい。
RF(無線周波数)回路システム108はRF信号を受信し送信し、当該信号はまた電磁信号と称される。RF回路システム108は、電気信号を電磁信号に変換し、電磁信号を電気信号に変換し、当該電磁信号を用いることによって通信ネットワークおよび別の通信デバイスと通信する。RF回路システム108がかかる機能を実行するように構成された周知の回路システムを備えてもよい。当該機能には、アンテナ・システム、RF送受信器、1つまたは複数の増幅器、チューナ、1つまたは複数の発振器、デジタル信号プロセッサ、コーデック・チップセット、サブスクライバ・アイデンティティ・モジュール(SIM)カード、メモリ等が含まれるがこれらに限られない。RF回路システム108は無線通信によりネットワークおよび別のデバイスと通信してもよい。当該ネットワークは、例えば、インターネット(ワールド・ワイド・ウェブ(WWW)とも称される)、イントラネット、および/または(セルラネットワーク、無線ローカル・エリア・ネットワーク(LAN)、および/またはメトロポリタン・エリア・ネットワーク(MAN)のような)無線ネットワークである。当該無線通信が任意のタイプの複数の通信標準、プロトコル、および技術を使用してもよく、これらには、全地球モバイル通信システム(GSM(登録商標))、高度データGSM(登録商標)環境(EDGE)、高速ダウンリンク・パケット・アクセス(HSDPA)、高速アップリンク・パケット・アクセス(HSUPA)、広帯域符号分割多重アクセス(W-CDMA)、符号分割多重アクセス(CDMA)、時分割多重アクセス(TDMA)、ブルートゥース(登録商標)、ワイヤレス・フィデリティ(WI-Fi)(例えば、IEEE802.11a、IEEE802.11b、IEEE802.11gおよび/またはIEEE802.11n)、ボイス・オーバ・インターネットプロトコル(VoIP)、Wi-MAX、電子メール・プロトコル(例えば、インターネット・メッセージ・アクセス・プロトコル(IMAP)および/またはポスト・オフィス・プロトコル(POP))、インスタント・メッセージング(例えば、拡張可能メッセージング・プレゼンテーション・プロトコル(XMPP)、インスタント・メッセージングおよびプレゼンテーションレバレッジ拡張のためのSIP(SIMPLE)、インスタント・メッセージングおよびプレゼンテーションサービス(IMPS))、および/またはショート・メッセージ・サービス(SMS)、または本願の出願日で開発されていない通信プロトコルを含む任意の他の適切な通信プロトコルが含まれるがこれらに限られない。
オーディオ回路システム110、スピーカ111、およびマイクロフォン113はユーザおよびデバイス100の間のオーディオ・インタフェースを提供する。オーディオ回路システム110はオーディオ・データを周辺デバイス・インタフェース118から受信し、当該オーディオ・データを電気信号に変換し、当該電気信号をスピーカ111に送信する。スピーカ111は当該電気信号を人に可聴な音波に変換する。オーディオ回路システム110はさらに、マイクロフォン113により音波から変換される電気信号を受信する。オーディオ回路システム110は、当該電気信号をオーディオ・データに変換し、処理するために当該オーディオ・データを周辺デバイス・インタフェース118に送信する。当該オーディオ・データを、周辺デバイス・インタフェース118によりメモリ102および/またはRF回路システム108から取り出してもよく、かつ/または、周辺デバイス・インタフェース118によりメモリ102および/またはRF回路システム108に送信してもよい。幾つかの実施形態では、オーディオ回路システム110はヘッドセット・ジャック(例えば、図2の212)をさらに含む。当該ヘッドセット・ジャックはオーディオ回路システム110および取外し可能オーディオ入出力周辺デバイスの間のインタフェースを提供する。当該周辺デバイスは、例えば、出力のみを有するイヤフォン、または(単一の受話器イヤフォンまたは二重の受話器イヤフォンのような)出力および(マイクロフォン)のような入力の両方を有するヘッドセットである。
I/Oサブシステム106は、タッチ・スクリーン112および別の入力制御デバイス116のようなデバイス100上の入出力周辺デバイスを周辺デバイス・インタフェース118に接続する。I/Oサブシステム106が、ディスプレイ・コントローラ156および別の入力制御デバイスに適用される1つまたは複数の入力コントローラ160を含んでもよい。1つまたは複数の入力コントローラ160は電気信号を別の入力制御デバイス116から受信し、または電気信号を別の入力制御デバイス116に送信する。他の入力制御デバイス116が、(プッシュボタン、およびロッカー・ボタン)のような物理ボタン、ダイヤル・パッド、スライダ・スイッチ、ジョイスティック、クリック・ホイール等を含んでもよい。幾つかの代替的な実施形態では、入力コントローラ160は、キーボード、赤外線ポート、USBポート、またはマウスのようなポインタデバイスのうち何れかに接続され(または接続されなく)てもよい。当該1つまたは複数のボタン(例えば、図2の208)が、スピーカ111および/またはマイクロフォン113のボリュームを制御するために使用される上下ボタンを含んでもよい。当該1つまたは複数のボタンがプッシュボタン(例えば、図2の206)を含んでもよい。
タッチセンシティブ・ディスプレイ112は当該デバイスおよびユーザの間の入力インタフェースおよび出力インタフェースを提供する。ディスプレイ・コントローラ156は電気信号をタッチ・スクリーン112から受信し、かつ/または当該電気信号をタッチ・スクリーン112に送信する。タッチ・スクリーン112は視覚出力をユーザに表示する。当該視覚出力がグラフ、テキスト、アイコン、ビデオ、およびそれらの任意の組合せ(集合的に「グラフ」と称される)を含んでもよい。幾つかの実施形態では、幾つかの視覚出力または全ての視覚出力はユーザ・インタフェース・オブジェクトに対応してもよい。
タッチ・スクリーン112は、触覚性および/または触覚接触に基づいて入力をユーザから受信するタッチ・センシティブ・サーフェス、センサ、またはセンサグループを有する。タッチ・スクリーン112およびディスプレイ・コントローラ156は(メモリ102内の任意の関連するモジュールおよび/または命令セットとともに)、タッチ・スクリーン112上の接触(および当該接触の任意の移動または割込み)を検出し、当該検出された接触をタッチ・スクリーン112に表示されたユーザ・インタフェース・オブジェクト(例えば、1つまたは複数のソフト・キー、アイコン、ウェブページまたは画像)との対話に変換する。例示的な実施形態では、タッチ・スクリーン112およびユーザの間の接触ポイントはユーザの指に対応する。
タッチ・スクリーン112がLCD(液晶ディスプレイ)技術、LPD(発光ポリマディスプレイ)技術、またはLED(発光ダイオード)技術を使用してもよく、別の実施形態では別のディスプレイ技術を使用してもよい。タッチ・スクリーン112およびディスプレイ・コントローラ156は、現在公知であるかまたは将来開発される複数のタッチ・センシング技術の何れかを用い、別の近接性センサアレイを用いることによって、または、タッチ・スクリーン112に接触する1つまたは複数のポイントを決定するために使用される別のコンポーネントを用いることによって、接触および任意の移動またはその割込みを検出してもよい。当該複数のタッチ・センシング技術は容量技術、抵抗技術、赤外線技術、および表面音響波技術を含むがこれらに限られない。例示的な実施形態では、投影された相互容量検知技術が使用される。
タッチ・スクリーン112は100dpiより高いビデオ解像度を有してもよい。幾つかの実施形態では、当該タッチ・スクリーンは約160dpiのビデオ解像度を有する。ユーザは、接触タッチ・スクリーン112に接触するためのスタイラスペンまたは指のような任意の適切なオブジェクトまたはアクセサリを使用してもよい。幾つかの実施形態では、ユーザ・インタフェースは、指ベースの接触およびジェスチャとともに主に動作するように設計される。スタイラスペンベースの入力と比較すると、指は、当該タッチ・スクリーン上のより大きな接触領域のため精度が低いかもしれない。幾つかの実施形態では、当該デバイスは、ユーザが期待する動作を実行するために、指ベースの粗い入力を正確なポインタ/カーソル位置またはコマンドに変換する。
幾つかの実施形態では、当該タッチ・スクリーンに加えて、デバイス100が、特定の機能を起動または停止するように構成されたタッチパッド(図示せず)を備えてもよい。幾つかの実施形態では、当該タッチパッドは当該デバイスのタッチセンシティブ領域であり、当該タッチセンシティブ領域は当該タッチ・スクリーンと異なり、当該視覚出力を表示しない。当該タッチパッドが、タッチ・スクリーン112から分離されたタッチ・センシティブ・サーフェス、または当該タッチ・スクリーンにより形成された当該タッチ・センシティブ・サーフェスの拡張部分であってもよい。
デバイス100は、電力を様々なコンポーネントに供給するように構成された電力システム162をさらに備える。電力システム162が電力管理システム、1つまたは複数の電源(例えば、バッテリ、交流電流(AC))、充電システム、電力故障検出回路、電力変換器またはインバータ、および電力ステータスインジケータ(例えば、発光ダイオード(LED))、およびポータブル・デバイス内の電力の生成、管理、および分配に関連付けられた任意の他のコンポーネントを備えてもよい。
デバイス100はさらに1つまたは複数の光センサ164を含んでもよい。図1A-aおよび図1A-bは、I/Oサブシステム106内の光センサ・コントローラ158に接続された光センサを示す。光センサ164が電荷結合素子(CCD)または相補型金属酸化物半導体(CMOS)写真トランジスタを備えてもよい。光センサ164は、環境から、1つまたは複数のレンズを通じて投影された光を受信し、当該光を、画像を表すデータに変換する。画像化モジュール143(カメラ・モジュールとも称される)と組み合わせて、光センサ164は静的画像またはビデオをキャプチャしてもよい。幾つかの実施形態では、1つまたは複数の光センサは、デバイス100の背面に、当該デバイスの前面にあるタッチ・スクリーン・ディスプレイ112と対向して配置され、その結果、当該タッチ・スクリーン・ディスプレイを、静的画像および/またはビデオ画像を収集するためのビューファインダとして使用することができる。幾つかの実施形態では、別の1つまたは複数の光センサが当該デバイスの前面に配置され、したがって、ユーザが当該タッチ・スクリーン・ディスプレイ上の別のビデオ会議参加者を見るとき、ユーザの画像を当該ビデオ会議内で使用するために取得することができる。
デバイス100はさらに、1つまたは複数の近接性センサ166を備えてもよい。図1A-aおよび図1A-bは、周辺デバイス・インタフェース118に接続された近接性センサ166を示す。代替的に、近接性センサ166をI/Oサブシステム106内の入力コントローラ160に接続してもよい。幾つかの実施形態では、当該電子装置がユーザの耳に配置されているとき(例えば、ユーザが電話をかけているとき)、当該近接性センサはタッチ・スクリーン112をオフにし無効にする。
デバイス100はさらに1つまたは複数の加速度計168を含んでもよい。図1A-aおよび図1A-bは、周辺デバイス・インタフェース118に接続された加速度計168を示す。代替的に、加速度計168をI/Oサブシステム106内の入力コントローラ160に接続してもよい。幾つかの実施形態では、情報は、当該1つまたは複数の加速度計から受信されたデータの分析に基づいて、当該タッチ・スクリーン・ディスプレイに表示された縦表示または横表示として表示される。任意選択で、加速度計168に加えて、デバイス100が磁力計(図示せず)およびGPS(またはGLONASS、北斗衛星導航系統、または別のグローバルナビゲーションシステム)受信器(図示せず)を含んでもよい。これらは、デバイス100の(縦表示または横表示のような)位置および方位情報を取得するように構成される。
幾つかの実施形態では、メモリ102に格納されたソフトウェアコンポーネントはオペレーティング・システム126、通信モジュール(または命令セット)128、接触/移動モジュール(または命令セット)130、グラフィック・モジュール(または命令セット)132、テキスト入力モジュール(または命令セット)134、全地球測位システム(GPS)モジュール(または命令セット)135、およびアプリケーション(または命令セット)136を含む。さらに、幾つかの実施形態では、メモリ102は、図1A-a、図1A-bおよび図3に示すように、デバイス/グローバル内部ステータス157を格納する。デバイス/グローバル内部ステータス157は、アプリケーション(もしあれば)が現在アクティブであるかを示すために使用されるアクティブなアプリケーションステータス、アプリケーション、ビューまたは他の情報がタッチ・スクリーン・ディスプレイ112の領域を占有するかを示すために使用されるディスプレイステータス、当該デバイスおよび入力制御デバイス116の各センサから取得される情報を含むセンサステータス、または当該デバイスの位置および姿勢に関連する位置情報の1つまたは複数を含む。
オペレーティング・システム126(例えば、Darwin、RTXC、Linux(登録商標)、Unix、OSX、Windows、Androidまたは(VxWorksのような)組込みオペレーティング・システム)が、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、および電力管理)を制御し管理するように構成された様々なソフトウェアコンポーネントおよび/またはドライバを含み、ハードウェアおよびソフトウェアコンポーネントの間の通信に貢献する。さらに、幾つかの実施形態では、メモリ102はデジタル・カメラ・フィルム159およびデジタル画像パイプライン161を格納する。
通信モジュール128は1つまたは複数の外部ポート124を用いた別のデバイスとの通信に貢献し、RF回路システム108および/または外部ポート124により受信されたデータを処理するように構成された様々なソフトウェアコンポーネントをさらに含む。外部ポート124(例えば、ユニバーサル・シリアル・バス(USB)またはFireWire)は、別のデバイスに直接、または、ネットワーク(例えば、インターネットまたは無線LAN)を用いることによって間接的に接続するのに適している。幾つかの実施形態では、当該外部ポートは、iPod(登録商標)(Apple社の商標)デバイス上で使用される30ピンコネクタと同一または類似であり、かつ/または、30ピンコネクタと互換であるマルチピン(例えば、30ピン)コネクタである。
接触/移動モジュール130は、(ディスプレイ・コントローラ156と組み合わせた)タッチ・スクリーン112および別のタッチセンシティブデバイス(例えば、タッチパッドまたは物理クリック・ホイール)との接触を検出することができる。接触/移動モジュール130は、接触検出に関連する様々な動作、例えば、接触が既に生じたかどうかを判定すること(例えば、指押下イベントの検出)、接触移動が存在するかどうかを判定しタッチ・センシティブ・サーフェス全体で当該移動を追跡すること(例えば、1つまたは複数の指のドラッグイベントの検出)、および当該接触が既に終了したかどうかを判定すること(例えば、指上げイベントまたは接触割込みの検出)を実行するように構成された複数のソフトウェアコンポーネントを含む。接触/移動モジュール130は接触データを当該タッチ・センシティブ・サーフェスから受信する。接触ポイントの移動の決定が、当該接触ポイントでの割合(量の値)、速度(量の値と方向)、および/または加速度(量の値および/または方向の変化)を含んでもよい。当該接触ポイントの移動は一連の接触データにより表現される。かかる動作を単一ポイント接触(例えば、1本の指での接触)またはマルチポイント接触(例えば、複数の指での「マルチポイント・タッチ」/接触)に適用してもよい。幾つかの実施形態では、接触/移動モジュール130およびディスプレイ・コントローラ156は当該タッチパッド上の接触を検出する。
接触/移動モジュール130がユーザのジェスチャ入力を検出してもよい。当該タッチ・センシティブ・サーフェス上の異なるジェスチャは異なる接触パターンを有する。したがって、ジェスチャを、特定の接触パターンを検出することによって検出してもよい。例えば、単一の指のタップ・ジェスチャの検出は、指押下イベントを検出し、次いで指押下イベントと同一の位置での(または基本的に同一の位置での)(例えば、アイコンの位置での)指上げ(リフトアップ)イベントを検出することを含む。別の例として、当該タッチ・センシティブ・サーフェスで指スイープ・ジェスチャを検出することは、指押下イベントを検出し、次いで、1つまたは複数の指ドラッグイベントを検出し、次いで指上げ(リフトアップ)イベントを検出することを含む。
グラフィック・モジュール132は、表示されたグラフの強度を変更するように構成されたコンポーネントを含む、グラフをタッチ・スクリーン112または別のディスプレイに描画し表示するように構成された複数の既知のソフトウェアコンポーネントを含む。本明細書で使用する用語「グラフ」は、ユーザに表示可能な任意のオブジェクトを含み、当該オブジェクトは、テキスト、ウェブページ、アイコン(例えば、ソフト・キーを含むユーザ・インタフェース・オブジェクト)、デジタル画像、ビデオ、およびアニメーションを含むがこれらに限られない。
幾つかの実施形態では、グラフィック・モジュール132はグラフを表現するための使用すべきデータを格納する。対応するコードを各グラフィックに割り当ててもよい。グラフィック・モジュール132は、アプリケーション等から、表示されるように指定されたグラフの1つまたは複数のコードを受信し、必要なときは、座標データおよび他のグラフィック属性データを一緒に受信し、次いで、スクリーン画像データを生成し、当該スクリーン画像データをディスプレイ・コントローラ156に出力する。
グラフィック・モジュール132のコンポーネントとしての役割を果たしうるテキスト入力モジュール134は、テキストを複数のアプリケーション(例えば、コンタクト・パーソン・137、電子メール140、インスタント・メッセージング141、ブラウザ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、
・音声/オーディオ・レコーダ・モジュール163、および/または
・通知モジュール165。
メモリ102に格納されうる別のアプリケーション136の例は、別のワード・プロセッシングアプリケーション、別の画像編集アプリケーション、描画アプリケーション、プレゼンテーション・アプリケーション、Java(登録商標)有効アプリケーション、暗号化アプリケーション、デジタル権利管理アプリケーション、音声認識アプリケーション、および音声再生アプリケーションを含む。
タッチ・スクリーン112、ディスプレイ・コントローラ156、接触モジュール130、グラフィック・モジュール132、およびテキスト入力モジュール134と組み合わせて、コンタクト・パーソン・モジュール137は、名前を連絡帳に追加すること、名前を連絡帳から削除すること、電話番号、電子メールアドレス、実際のアドレスまたは他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類しソートすること、電話番号または電子メールアドレスを提供して、通話138、ビデオ会議139、電子メール140、IM141等を用いて実施される通信を開始および/または促進することを含めて、(例えば、メモリ102またはメモリ370内のコンタクト・パーソン・モジュール137のアプリケーション内部ステータス192に格納された)連絡帳またはコンタクト・パーソン・リストを管理するように構成されてもよい。
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)プロトコルまたはマルチメディア・メッセージ・サービス(MMS)プロトコルを使用する呼ベースのインスタント・メッセージ、またはXMPP、SIMPLE、またはIMPSを使用するインターネット・ベースのインスタント・メッセージ)を送信し、インスタント・メッセージを受信し、受信されたインスタント・メッセージを参照するために使用される実行可能命令を含む。幾つかの実施形態では、当該送信されたおよび/または受信されたインスタント・メッセージが、MMSおよび/または拡張メッセージ・サービス(EMS)でサポートされたグラフ、写真、オーディオ・ファイル、ビデオ・ファイル、および/または別の添付物を含んでもよい。本明細書で使用する際、「インスタント・メッセージ」とは、呼ベースのメッセージ(例えば、SMSまたはMMSを用いることによって送信されたメッセージ)またはインターネット・ベースのメッセージ(例えば、XMPP、SIMPLE、またはIMPSを用いることによって送信されたメッセージ)のことをいう。
RF回路システム108、タッチ・スクリーン112、ディスプレイ・コントローラ156、接触モジュール130、グラフィック・モジュール132、テキスト入力モジュール134、GPSモジュール135、地図モジュール154、および音楽再生モジュール146と組み合わせて、エクササイズ・サポート・モジュール142は、(例えば、時間、距離、および/またはカロリー消費の目的を有する)エクササイズを生成し、エクササイズセンサ(スポーツ機器)と通信し、データを当該エクササイズセンサから受信し、当該エクササイズを監視するために使用されるセンサを較正し、当該エクササイズ向けの音楽を選択および再生し、エクササイズ・データを表示、格納、および送信するために使用される実行可能命令を含む。
タッチ・スクリーン112、ディスプレイ・コントローラ156、光センサ164、光センサ・コントローラ158、接触モジュール130、グラフィック・モジュール132、(当該光センサからの元のデータを最終的な画像またはビデオに変換するデジタル画像パイプライン161)、および画像管理モジュール144と組み合わせて、カメラ・モジュール143は、静的画像またはビデオ(ビデオストリームを含む)をキャプチャし、当該静的画像またはビデオをメモリ102に(例えば、デジタル・カメラ・フィルム159に)格納し、当該静的画像またはビデオの特性を修正し、または静的画像またはビデオをメモリ102から(例えば、デジタル・カメラ・フィルム159から)削除するために使用される実行可能命令を含む。
タッチ・スクリーン112、ディスプレイ・コントローラ156、接触モジュール130、グラフィック・モジュール132、テキスト入力モジュール134、およびカメラ・モジュール143と組み合わせて、画像管理モジュール144は、(カメラ・フィルム159および/またはビデオ画像に格納した静的画像を含む)静的画像および/またはビデオ画像を並べ、修正(例えば、編集)し、または、別の手段により、操作し、ラベル付けし、削除し、(例えば、デジタルスライドまたはアルバム)で提供し、格納するために使用される実行可能命令を含む。
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 sheetファイル、および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は、1つまたは複数のファイル・フォーマット(例えば、MP3またはAACファイル)に格納された記録された音楽および別の音声ファイルをユーザがダウンロードし再生できるようにする実行可能命令、および(例えば、タッチ・スクリーン112上でまたは外部ポート124を用いることによって接続された外部ディスプレイ上で)ビデオを表示し、提供し、別の手段により、再生するために使用される実行可能命令を含む。幾つかの実施形態では、デバイス100が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は、ユーザが、アクセスし、閲覧し、受信し(例えば、ストリーミング方式で受信および/またはダウンロードする)、再生し(例えば、当該タッチ・スクリーン上でまたは外部ポート124を用いることによって接続された外部ディスプレイ上で)、特定のオンラインビデオへのリンクを有する電子メールを送信し、別の手段により、オンラインビデオを1つまたは複数のファイル・フォーマット(例えば、H.264)で管理できるようにする命令を含む。幾つかの実施形態では、特定のオンラインビデオへのリンクは、電子メール・クライアント・モジュール140ではなくインスタント・メッセージングモジュール141を用いることによって送信される。
タッチ・スクリーン112、ディスプレイ・システムコントローラ156、接触モジュール130、グラフィック・モジュール132、オーディオ回路システム110、スピーカ111、およびマイクロフォン113と組み合わせて、音声/オーディオ・レコーダ・モジュール163は、ユーザがオーディオ(例えば、音声)を1つまたは複数のファイル・フォーマット(例えば、MP3またはAACファイル)に記録できるようにする実行可能命令、および当該記録されたオーディオ・ファイルを提供し、または、別の手段により、再生するために使用される実行可能命令を含む。
タッチ・スクリーン112、ディスプレイ・システムコントローラ156、接触モジュール130、およびグラフィック・モジュール132と組み合わせて、通知モジュール165は、通知またはアラーム(例えば、着信メッセージ、着信、カレンダイベント、またはアプリケーションイベントのリマインダ)をタッチ・スクリーン112に表示するために使用される実行可能命令を含む。
上述の各モジュールまたはアプリケーションは、上述の1つまたは複数の機能および本明細書で説明する方法(例えば、本明細書で説明したコンピュータにより実装される方法、および別の情報処理方法)を実行するために使用される1組の実行可能命令に対応する。かかるモジュール(即ち、命令セット)は必ずしも別々のソフトウェア・プログラム、プロセスまたはモジュールとして実装されず、したがって当該モジュールの様々なサブセットを様々な実施形態で結合し、または、別の手段により再配置してもよい。幾つかの実施形態では、メモリ102が上述のモジュールまたはデータ構造のサブセットを格納してもよい。さらに、メモリ102が、上述していない別のモジュールまたは別のデータ構造を格納してもよい。
幾つかの実施形態では、デバイス100は、当該デバイス上で予め定義された1組の機能の動作がタッチ・スクリーンおよび/またはタッチパッドを用いることによって一意に実行されるデバイスである。当該タッチ・スクリーンおよび/または当該タッチパッドを、デバイス100を動作させるためのメイン入力制御デバイスとして使用することによって、デバイス100上の物理入力制御デバイス(例えば、押下ボタンおよびダイヤル・パッド)の量を減らすことができる。
当該タッチ・スクリーンおよび/または当該タッチパッドを用いることによって一意に実行できる1組の所定の機能はユーザ・インタフェースの間のナビゲーションを含む。幾つかの実施形態では、当該タッチパッドがユーザによりタッチされたとき、デバイス100は、デバイス100上で表示可能な任意のユーザ・インタフェースからプライマリメニュー、メインメニュー、またはルート・メニューにナビゲートされる。かかる実施形態では、当該タッチパッドを「メニュー・ボタン」と称してもよい。幾つかの他の実施形態では、当該メニュー・ボタンが、タッチパッドではなく物理プッシュボタンまたは別の物理入力制御デバイスであってもよい。
図1Bは、幾つかの実施形態に従うイベント・ハンドリングに使用される例示的なコンポーネントのブロック図を示す。幾つかの実施形態では、(図1A-aおよび図1A-bの)メモリ102または(図3の)メモリ370は、(例えば、オペレーティング・システム126の)イベント・クラシファイア170および対応するアプリケーション136-1(例えば、上述のアプリケーション137乃至151、155、および380乃至390内の任意のアプリケーション)を含む。
イベント・クラシファイア170は、イベント情報を受信し、当該イベント情報が送信されるアプリケーション136-1、およびアプリケーション136-1のアプリケーション・ビュー191を決定する。イベント・クラシファイア170はイベント・モニタ171およびイベント・スケジューラ・モジュール174を含む。幾つかの実施形態では、アプリケーション136-1はアプリケーション内部ステータス192を含む。アプリケーション内部ステータス192は、当該アプリケーションがアクティブであるかまたは実行されているとき、タッチセンシティブ・ディスプレイ112に表示される現在のアプリケーション・ビューを示す。幾つかの実施形態では、デバイス/グローバル内部ステータス157はどのアプリケーション/アプリケーションが現在アクティブであるかを判定するためにイベント・クラシファイア170により使用され、アプリケーション内部ステータス192は、当該イベント情報が送信されるアプリケーション・ビュー191を決定するためにイベント・クラシファイア170により使用される。
幾つかの実施形態では、アプリケーション内部ステータス192は、アプリケーション136-1の実行が復元されるときに使用すべき復元情報、アプリケーション136-1により現在表示されている情報を示すかまたはアプリケーション136-1により容易に表示される情報を示すユーザ・インタフェース・ステータス情報、ユーザがアプリケーション136-1の以前の状態またはビューに戻ることを可能とするために使用されるステータス待ち行列、またはユーザがとった以前の動作を戻ることを可能とするために使用されるリドゥ/アンドゥ待ち行列の1つまたは複数のような他の情報を含む。
イベント・モニタ171は当該イベント情報を周辺デバイス・インタフェース118から受信する。当該イベント情報は、サブ・イベント(例えば、マルチポイント・タッチ・ジェスチャの一部としての役割を果たすタッチセンシティブ・ディスプレイ112上のユーザタッチ)に関する情報を含む。周辺デバイス・インタフェース118は、(オーディオ回路システム110を用いることによって)I/Oサブシステム106またはセンサ(例えば、近接性センサ166)、加速度計168、および/またはマイクロフォン113から受信した情報を送信する。周辺デバイス・インタフェース118によりI/Oサブシステム106から受信された情報は、タッチセンシティブ・ディスプレイ112またはタッチ・センシティブ・サーフェスからの情報を含む。
幾つかの実施形態では、イベント・モニタ171は所定の間隔で要求を周辺デバイス・インタフェース118に送信する。応答して、周辺デバイス・インタフェース118はイベント情報を送信する。別の実施形態では、周辺デバイス・インタフェース118は重要なイベントが存在するときにのみイベント情報を送信する(例えば、所定の雑音閾値より高い入力が受信され、かつ/または所定の期間を超える入力が受信される)。
幾つかの実施形態では、イベント・クラシファイア170はヒット・ビュー決定モジュール172および/またはアクティブ・イベント認識器決定モジュール173をさらに含む。
タッチセンシティブ・ディスプレイ112が複数のビューを表示するとき、ヒット・ビュー決定モジュール172は、1つまたは複数のビューのどの場所でサブ・イベントが発生したかを判定するために使用されるソフトウェアプロセスを提供する。当該ビューは、ディスプレイ上でユーザにより可視であるコントロールおよび他のコンポーネントにより形成される。
当該アプリケーションに関連するユーザ・インタフェースの別の態様は1組のビューであり、これは、本明細書ではしばしばアプリケーション・ビューまたはユーザ・インタフェースィンドウと称される。かかるビューにおいて、情報が表示され、タッチベースのジェスチャが生じる。タッチが検出される(対応するアプリケーションの)アプリケーション・ビューが、当該アプリケーションのプログラムされた階層またはビュー階層内のプログラムされたレベルに対応してもよい。例えば、タッチが検出された最低レベルビューをヒット・ビューと称してもよく、正確な入力として認識されたイベント集合を初期タッチのヒット・ビューに少なくとも部分的に基づいて決定してもよい。当該初期タッチはタッチベースのジェスチャで開始する。
ヒット・ビュー決定モジュール172は、当該タッチベースのジェスチャのサブ・イベントと関連する情報を受信する。当該アプリケーションが当該階層で編成された複数のビューを有するとき、ヒット・ビュー決定モジュール172は、当該ビューを当該階層内の当該サブ・イベントを処理すべき最低のビューとして認識する。大抵のケースでは、当該ヒット・ビューは、開始サブ・イベント(即ち、生成されたイベントまたは潜在的なイベントのサブ・イベントシーケンス内の第1のサブ・イベント)が発生する最低レベルビューである。当該ヒット・ビューが当該ヒット・ビュー決定モジュールにより認識されると、当該ヒット・ビューは一般には、当該認識されたヒット・ビューが関連する同一のタッチまたは入力ソースに関連する全てのサブ・イベントを受信する。
アクティブ・イベント認識器決定モジュール173は、当該ビュー階層内のどのビュー(views)が特定のサブ・イベントシーケンスを受信すべきかを判定する。幾つかの実施形態では、アクティブ・イベント認識器決定モジュール173が、当該ヒット・ビューのみが特定のサブ・イベントシーケンスを受信すると判定する。別の実施形態では、アクティブ・イベント認識器決定モジュール173は、当該サブ・イベントの物理位置を含む全てのビューがアクティビティ関連ビューであると判定し、したがって全てのアクティビティ関連ビューが特定のサブ・イベントシーケンスを受信すべきであると判定する。別の実施形態では、当該タッチサブ・イベントが特定のビューと関連する領域に完全に限定される場合であっても、当該階層内のより高いビューが依然としてアクティビティ関連ビューとして留まる。
イベント・スケジューラ・モジュール174は、イベント情報をイベント認識器(例えば、イベント認識器180)に対してスケジュールする。アクティブ・イベント認識器決定モジュール173を含む1実施形態では、イベント・スケジューラ・モジュール174は、当該イベント情報を、アクティブ・イベント認識器決定モジュール173により決定されるイベント認識器に送信する。幾つかの実施形態では、イベント・スケジューラ・モジュール174は当該イベント情報をイベント待ち行列に格納し、当該イベント情報が対応するイベント受信器モジュール182により取り出される。
幾つかの実施形態では、オペレーティング・システム126はイベント・クラシファイア170を含む。代替的に、アプリケーション136-1はイベント・クラシファイア170を含む。別の実施形態では、イベント・クラシファイア170は独立なモジュールであるか、または、メモリ102に格納された別のモジュール(例えば、接触/移動モジュール130)の一部である。
幾つかの実施形態では、アプリケーション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は、データ更新器176、オブジェクト更新器177、またはGUI更新器178を使用または起動して、アプリケーション内部ステータス192を更新してもよい。代替的に、アプリケーション・ビュー191の1つまたは複数はそれぞれ1つまたは複数の対応するイベント・ハンドラ190を含む。さらに、幾つかの実施形態では、データ更新器176、オブジェクト更新器177、またはGUI更新器178の1つまたは複数は対応するアプリケーション・ビュー191に含まれる。
対応するイベント認識器180は、イベント情報(例えば、イベント・データ179)をイベント・クラシファイア170から受信し、当該イベント情報に従ってイベントを特定する。イベント・クラシファイア180はイベント受信器182およびイベント比較器184を含む。幾つかの実施形態では、イベント認識器180は、メタデータ183およびイベント送信命令188(サブ・イベント送信命令を含んでもよい)の少なくとも1つのサブセットをさらに含む。
イベント受信器182は当該イベント情報をイベント・クラシファイア170から受信する。当該イベント情報は、サブ・イベント、例えば、タッチまたはタッチ移動に関する情報を含む。当該サブ・イベントに応じて、当該イベント情報はサブ・イベント位置のような他の情報をさらに含む。当該サブ・イベントがタッチ移動を含むとき、当該イベント情報はさらに当該サブ・イベントの速度と方向を含んでもよい。幾つかの実施形態では、イベントは或る方位から別の方位へ(例えば、縦表示の方位から横表示の方位へ、またはその反対)のデバイスの回転を含み、当該イベント情報は当該デバイスの現在の方位に関する対応する情報(デバイス姿勢とも称される)を含む。
イベント比較器184は、イベント情報を所定のイベント定義またはサブ・イベント定義と比較し、当該比較に基づいて、イベントまたはサブ・イベントを決定し、または、当該イベントまたはサブ・イベントの状態を決定もしくは更新する。幾つかの実施形態では、イベント比較器184はイベント定義186を含む。イベント定義186は、イベント(例えば、所定のサブ・イベントシーケンス)、例えば、イベント1(187-1)、イベント2(187-2)の定義および他の情報を含む。幾つかの実施形態では、イベント187内のサブ・イベントは、例えば、タッチ開始、タッチ終了、タッチ移動、タッチキャンセル、およびマルチポイント・タッチを含む。1事例では、イベント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は、当該サブ・イベントがビューまたはプログラムされた階層に送信されるかどうかを示す可変の、並列なおよび構成可能な属性、フラグおよび/またはリストを含む。
幾つかの実施形態では、イベントの1つまたは複数の特定のサブ・イベントが認識されるとき、対応するイベント認識器180は当該イベントと関連するイベント・ハンドラ190を起動する。幾つかの実施形態では、対応するイベント認識器180は当該イベントに関連するイベント情報をイベント・ハンドラ190に送信する。イベント・ハンドラ190を起動するステップは、当該サブ・イベントを対応するヒット・ビューに送信する(および、遅延方式で送信する)ステップと異なる。幾つかの実施形態では、イベント認識器180は当該認識されたイベントと関連するフラグを送信し、当該フラグと関連するイベント処理プログラム190は当該フラグを受信し、所定のプロセスを実施する。
幾つかの実施形態では、イベント送信命令188は、イベント・ハンドラを起動せずにサブ・イベントに関するイベント情報を送信するサブ・イベント送信命令を含む。その代わり、サブ・イベント送信命令は、当該イベント情報をサブ・イベント文字列と関連するイベント・ハンドラにまたはアクティビティ関連ビューに送信する。当該サブ・イベント文字列または当該アクティビティ関連ビューと関連するイベント・ハンドラは当該イベント情報を受信し、所定のプロセスを実施する。
幾つかの実施形態では、データ更新器176は、アプリケーション136-1で使用されるデータを生成し更新する。例えば、データ更新器176は、コンタクト・パーソン・モジュール137で使用される電話番号、またはビデオ再生モジュール145で使用され格納されるビデオ・ファイルを更新する。幾つかの実施形態では、オブジェクト更新器176は、アプリケーション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を有するポータブル電子装置100を示す。当該タッチ・スクリーンが1つまたは複数のグラフをユーザ・インタフェース(UI)200に表示してもよい。当該実施形態および以下で説明する他の実施形態では、ユーザは、例えば、1つまたは複数の指202(添付図面では正しい縮尺で描かれていない)または1つまたは複数のスタイラスペン203(添付図面では正しい縮尺で描かれていない)を使用して、当該グラフ上のジェスチャを生成して、当該グラフの1つまたは複数を選択してもよい。幾つかの実施形態では、ユーザが当該1つまたは複数のグラフとの接触に割り込むと、当該1つまたは複数のグラフの選択が生ずる。幾つかの実施形態では、当該ジェスチャが、1つまたは複数のタップ、1つまたは複数のフリック(左から右、右から左、上方および/または下方)および/またはデバイス100に既に接触している指のフリップ(左から右、右から左、上方および/または下方)を含んでもよい。幾つかの実施形態では、グラフとの不意の接触は当該グラフを選択しない。例えば、当該選択に対応するジェスチャがタップであるとき、アプリケーション・アイコンをスイープするスイープ・ジェスチャは対応するアプリケーションの選択を生じさせない。
デバイス100はさらに「メイン・スクリーン」またはメニュー・ボタン204のような1つまたは複数の物理ボタンを含んでもよい。上述のように、メニュー・ボタン204は、デバイス100で実行されるアプリケーションのグループ内の任意のアプリケーション136にナビゲートするように構成されてもよい。代替的に、幾つかの実施形態では、当該メニュー・ボタンは、タッチ・スクリーン112に表示されたGUI内のソフト・キーとして実装される。
1実施形態では、デバイス100は、タッチ・スクリーン112、メニュー・ボタン204、および当該デバイスをオンまたはオフにし当該デバイスをロックするように構成されたプッシュボタン206、(1つまたは複数の)ボリューム調節ボタン208、サブスクライバ・アイデンティティ・モジュール(SIM)スロット210、ヘッドセット・ジャック212、および相互接続/充電外部ポート124を含む。プッシュボタン206は、当該ボタンを押下し、所定の時間間隔だけ当該ボタンの押下状態を保つことによって当該デバイスをオンまたはオフにし、当該ボタンを押下し当該所定の時間間隔が切れる前に当該ボタンを解放することによって当該デバイスをロックし、かつ/または当該デバイスをアンロックするかまたはアンロック・プロセスを開始するように構成されてもよい。代替的な実施形態では、デバイス100は、マイクロフォン113を用いることによって、機能を起動または停止するために使用される音声入力を受信してもよい。
図3は、幾つかの実施形態に従うディスプレイおよびタッチ・センシティブ・サーフェスを有する例示的な電子装置のブロック図である。デバイス300は必ずしもポータブルではない。幾つかの実施形態では、デバイス300は、ラップトップ・コンピュータ、デスクトップ・コンピュータ、タブレット、マルチメディア再生デバイス、ナビゲーションデバイス、教育デバイス(例えば、子供向けラーニング・トイ)、ゲーミング・システム、または制御デバイス(例えば、家庭用コントローラまたは産業用コントローラ)である。デバイス300は一般に、1つまたは複数の処理ユニット(CPU)310、1つまたは複数のネットワーク・インタフェースまたは他の通信インタフェース360、メモリ370、および当該コンポーネントを相互接続するために使用される1つまたは複数の通信バス320を含む。幾つかの実施形態では、処理ユニット310は画像信号プロセッサおよびデュアルコアまたはマルチコアプロセッサを含む。通信バス320が、システム・コンポーネントを相互接続し、当該システム・コンポーネントの間の通信を制御するように構成された回路システム(しばしばチップ・セットと称される)を含んでもよい。デバイス300はディスプレイ340を有する入出力(I/O)インタフェース330を含む。ディスプレイ340は一般にタッチ・スクリーン・ディスプレイである。I/Oインタフェース330はさらに、キーボードおよび/またはマウス(または別のポインティング・デバイス)350およびタッチパッド355を含んでもよい。デバイス300は光センサ164および光センサ・コントローラ158をさらに含む。メモリ370はDRAM、SRAM、DDR、RAM、または別のランダムアクセス固体状態記憶デバイスのような高速ランダム・アクセス・メモリを含み、1つまたは複数のディスク記憶デバイス、コンパクトディスク記憶デバイス、フラッシュ・メモリ・デバイス、または他の不揮発性固体状態記憶デバイスのような不揮発性メモリを含んでもよい。任意選択で、メモリ370がCPU310からリモートに配置されうる1つまたは複数の記憶デバイスを含んでもよい。幾つかの実施形態では、メモリ370は、プログラム、モジュール、およびプログラムと同様なデータ構造、モジュール、およびポータブル電子装置100(図1)のメモリ102に格納されたデータ構造、またはそのサブセットを格納する。さらに、メモリ370は、ポータブル電子装置100のメモリ102に存在しない別のプログラム、モジュールおよびデータ構造を格納してもよい。例えば、デバイス300のメモリ370は、描画モジュール380、プレゼンテーション・モジュール382、ワード・プロセッサ・モジュール384、ウェブページ生成モジュール386、ディスク編集モジュール388、および/またはスプレッドシート・モジュール390を格納してもよく、ポータブル電子装置100(図1)のメモリ102はかかるモジュールを格納しなくてもよい。
図3における認識されたコンポーネントの各々を上述の記憶デバイスの1つまたは複数に格納してもよい。当該認識されたモジュールの各々は、上述の機能を実施するために使用される命令セットに対応する。当該認識されたモジュールまたはプログラム(即ち、命令セット)は必ずしも別々のソフトウェア・プログラム、プロセスまたはモジュールとして実装されず、したがって当該モジュールの様々なサブセットを様々な実施形態において結合してもよいかまたは別の手段により再配置してもよい。幾つかの実施形態では、メモリ370が上述のモジュールおよびデータ構造のサブセットを格納してもよい。さらに、メモリ370は上述していない別のモジュールまたは別のデータ構造を格納してもよい。
次に、ポータブル電子装置100で実装できるユーザ・インタフェース(「UI」)の1実施形態に着目する。
図4Aは、幾つかの実施形態に従うポータブル電子装置100上のアプリケーションメニューに使用される例示的なユーザ・インタフェースを示す。同様に、ユーザ・インタフェースをデバイス300で実装してもよい。幾つかの実施形態では、ユーザ・インタフェース400は以下の要素またはそのサブセットまたはスーパーセットを含む。即ち、
・(例えば、携帯電話信号およびWi-Fi信号に対する)無線通信の信号強度インジケータ402、
・時間404、
・ブルートゥース(登録商標)・インジケータ405、
・バッテリ・ステータス・インジケータ406、
・共通アプリケーション・アイコンを有するトレイ408。当該共通アプリケーションは、例えば、
・不在着信または音声メッセージの量を示すインジケータ414を含んでもよい、通話138、
・新たな電子メールの量を示すインジケータ410を含んでもよい、電子メールクライアント140、
・ブラウザ147、
・iPod(登録商標)(Apple社の商標)モジュール152とも称される、ビデオおよび音楽再生152、である。
・他のアプリケーションのアイコン。他のアプリケーションは、例えば、
・IM141、
・画像管理144、
・カメラ143、
・天気149-1、
・株式市場149-2、
・エクササイズ・サポート142、
・カレンダ148、
・アラーム・クロック149-4、
・地図154、
・メモ153、
・デバイス100および様々なアプリケーション136の設定へのアクセスを提供する、セットアップ412、
・Youtube(登録商標)(Google社の商標)モジュール155とも称される、オンライン・ビデオ・モジュール155、である。
さらに、指入力(例えば、単一の指接触、単一の指タップ・ジェスチャ、および単一の指スイープ・ジェスチャ)を主に参照して以下の例を与えるが、理解できるように幾つかの実施形態では、当該指入力の1つまたは複数を別の入力デバイスからの入力(例えば、スタイラスペン入力)で置き換える。
ユーザ・インタフェースおよび関連するプロセス
次に、ディスプレイおよびタッチ・センシティブ・サーフェスを有する電子装置(例えば、デバイス300またはポータブル電子装置100)で実施できるユーザ・インタフェース(「UI」)の1実施形態、および関連するプロセスの1実施形態に着目する。
図5A乃至5Gは、幾つかの実施形態に従うアプリケーション・インタフェース要素(例えば、アプリケーション・アイコン)を自動的に収集するために使用される例示的なユーザ・インタフェースを示す。かかる添付図面におけるユーザ・インタフェースは、図6および図7におけるプロセスおよび/または機能を含む、以下で説明するプロセスおよび/または機能を詳説するために使用される。
図5Aは、デバイス100のタッチ・スクリーン112に表示されたデバイス・インタフェースを示す。
当該デバイス・インタフェースは、複数のアプリケーションに対応するアプリケーション・アイコン501乃至503を表示する。アプリケーション・アイコン501A乃至501Dに対応するアプリケーションは同種のアプリケーションである。アプリケーション・アイコン501A乃至501Dに対応するアプリケーションおよびアプリケーション・アイコン503に対応するアプリケーションは異なるタイプのアプリケーションである。アプリケーション・アイコン501A乃至501Dに対応するアプリケーションがビデオタイプのアプリケーションでありアプリケーション・アイコン503に対応するアプリケーションがゲーム・タイプのアプリケーションである例を以下の議論に使用する。
本明細書において、アプリケーションが同種のアプリケーションであるかどうかを判定するためのルール、即ち、当該アプリケーションの分類ルールは柔軟であることは強調されるべきである。当該分類ルールを、当該デバイスの配送前に予め設定してもよく、またはユーザによりカスタマイズし当該ネットワークを用いることにより、またはそれらの組合せである方式で更新してもよい。当該分類ルールを、デフォルトで有効にしてもよく、ユーザにより定常的に(例えば、定期的に)または非定常的に(例えば、ランダムに)トリガされた際に有効にしてもよく、ネットワーク命令によりトリガされた際に有効にしてもよく、またはそれらの組合せである方式で有効にしてもよい。同一のタイプのアプリケーションは以下の1つまたはそれらの任意の組合せを含むがこれらに限られない。
・同一のまたは同様なソースから来たアプリケーション(例えば、2つのアプリケーションは工場からの配送前にインストールされたアプリケーションであり、2つのアプリケーションは同一のまたは同様なアプリ・ストアからダウンロードされたアプリケーションであるか、または2つのアプリケーションは同一のまたは同様な開発者により開発されたアプリケーションである)、
・同一のまたは同様な目的を果たすアプリケーション(例えば、2つのアプリケーションはビデオタイプのアプリケーションであり、2つのアプリケーションはフィットネス・タイプアプリケーションであり、または2つのアプリケーションは金融タイプアプリケーションである)、
・同一のまたは同様なタイプとして特定されたアプリケーション(例えば、2つのアプリケーションはアプリ・ストア上のゲーム・タイプのアプリケーション、最大回数ダウンロードされたアプリケーション、或る期間に最大回数ダウンロードされたアプリケーション、または地理的領域で最大回数ダウンロードされたアプリケーションとして特定される)、
・ユーザの同一のまたは同様な使用習慣を有するアプリケーション(例えば、2つのアプリケーションは特定の範囲に入る回数(例えば、1000より多く)ユーザにより使用されたアプリケーションであり、2つのアプリケーションは特定の期間(例えば、先月50回より多く)ユーザにより使用または頻繁に使用されたアプリケーションであり、2つのアプリケーションは特定の地理的領域でユーザにより使用または頻繁に使用されたアプリケーションであり、または2つのアプリケーションは同一の登録情報を用いることによりユーザによりアクセスされたアプリケーションである)。
本明細書では、特に断らない限り、述べたユーザ・ジェスチャは柔軟であり、タップ、ダブルタップ、サークリング、線描画、単一の指タッチ、マルチ指タッチ等であってもよい。基本的に同一の効果が実現されるならば、特定のジェスチャの選択は柔軟であることを当業者は理解することができる。本明細書では、特に断らない限り、当該タッチ・センシティブ・サーフェスで実施されるユーザ・ジェスチャの位置または領域も柔軟であり、当該スクリーンに表示されたアプリケーション・インタフェース要素の領域または近傍領域、アプリケーション・インタフェース要素が当該スクリーンに表示されない空白領域、当該スクリーンに表示された機能により設定された領域等であってもよい。基本的に同一の効果が実現されるならば、ジェスチャが当該タッチ・センシティブ・サーフェス上で行われる特定の位置または領域が柔軟に設定可能であることを当業者は理解することができる。
以下では、ユーザの単一の指押下アプリケーション・アイコン501Aを1例として用いることによって非制限的な議論を与える。
ジェスチャ505をタッチ・スクリーン112のタッチ・センシティブ・サーフェスで検出してもよい。アプリケーション・アイコン501A乃至501Dが可動であるように、デバイス100はジェスチャ505に応答する。アプリケーション・アイコン503はジェスチャ505に応答しなくてもよい。
幾つかの実施形態では、ジェスチャをタッチ・センシティブ・サーフェスで実施する圧力、期間、領域、または位置、当該ジェスチャおよびアプリケーション・アイコンまたは幾つかのアプリケーション・アイコンの間の距離、または当該ジェスチャと当該タッチ・センシティブ・サーフェスの境界との間の距離を検出することによって、デバイス100は、当該ジェスチャの意図が、当該アプリケーション・アイコン上の動作、例えば、当該ジェスチャに応答するための編集、移動、または集約された管理を実施するように当該デバイスに指示することであると判定してもよい。
幾つかの実施形態では、当該デバイスは、アプリケーション・アイコン501A乃至501Dが可動であることをユーザに明示的または暗黙的に通知してもよい。例えば、振動アイコンは、当該アイコンが編集可能であること、または当該アイコンが起動されたこと、または当該アイコンがアプリケーション・インタフェース要素トレイに対して可動であることをユーザに通知するために使用される。
幾つかの実施形態では、当該デバイスが、アプリケーション・アイコン503がジェスチャ505に応答しないことをユーザに明示的または暗黙的に知らせてもよい。
続いて、当該デバイス・インタフェースは図5Bにシフトする。同一のタイプのアプリケーション(例えば、ビデオタイプのアプリケーション)に対応するアプリケーション・インタフェース要素は、当該デバイス・インタフェース上で生成された新たなフォルダに自動的に収集される。別のタイプの別のアプリケーション(例えば、ゲーム・タイプのアプリケーション)は移動されない。
幾つかの実施形態では、デバイス100はジェスチャ505に応答して、以下のイベント、即ち、新たなフォルダ507をデバイス・インタフェースに表示し、アプリケーション・アイコン501A乃至501Dをフォルダ507に自動的に移動するステップ等をトリガする。本明細書における議論において、特に断らない限り、イベント発生は順序に敏感ではない。例えば、ここでのイベント順序が、最初に、アプリケーション・アイコン501A乃至501Dの領域への自動移動を表示し、次いで当該領域にフォルダを表示することであってもよく、または、最初にフォルダを領域に表示し、次いでアプリケーション・アイコン501A乃至501Dの当該フォルダへの自動移動を表示することであってもよい。
幾つかの実施形態では、デバイス100が、ユーザがさらに別のジェスチャ505乃至2を提供するのを待機した後に、以下のイベント、即ち、新たなフォルダ507をデバイス・インタフェースに表示し、アプリケーション・アイコン501A乃至501Dをフォルダ507に自動的に移動することをトリガしてもよい。上述のように、ジェスチャ505-2の形態、例えば、タッピング、およびフリッキングは柔軟であり、ジェスチャ505-2がタッチ・センシティブ・サーフェス上で行われる位置または領域も柔軟である。例えば、当該位置が、ジェスチャ505が当該タッチ・センシティブ・サーフェス上で行われる位置と同一または異なってもよく、当該イベント発生順序も柔軟である。
幾つかの実施形態では、当該デバイスがユーザのカスタマイズされた管理要件に応答してもよい。例えば、デバイス・インタフェースは図5Cにシフトする。即ち、当該デバイスは、カスタマイズされた選択機会を提供し、ユーザがアプリケーション・アイコン501Dの選択を解除(de-select)するのを待機し、アプリケーション・アイコン501A乃至501Dの自動移動の前に、ジェスチャ505-3を用いることによって、次いで当該アイコンの自動移動をトリガする。次いで、当該デバイスがユーザ・ジェスチャに応答し、フォルダ507に自動的に収集される同一のタイプのアプリケーション・アイコンをトリガしたとき、アイコン501Dはフォルダ507に移動されない。別の例として、当該デバイス・インタフェースは図5Dにシフトする。即ち、当該デバイスは、カスタマイズされた選択機会を提供し、ユーザがアプリケーション・アイコン503(例えば、アイコン501Aに対応するアプリケーションとは異なるタイプのアプリケーション・アイコン)を選択するのを待機し、アプリケーション・アイコン501A乃至501Dの自動移動の前に、ジェスチャ505-4を用いることによって、次いで当該アイコンの自動移動をトリガする。次いで、当該デバイスがユーザ・ジェスチャに応答し、フォルダ507に自動的に収集される同一のタイプのアプリケーション・アイコンをトリガしたとき、アイコン503もフォルダ507に移動される(図5E)。アイコン503に対応するゲーム・タイプのアプリケーションはアイコン501に対応するビデオタイプのアプリケーションと同一でないが、よりカスタマイズされた選択肢がユーザに提供され、したがって当該デバイスはより効率的な対話インタフェースを提供し、ユーザの動作頻度を削減し、電力消費を削減し、ユーザ・エクスペリエンスを改善できることが分かりうる。
幾つかの実施形態では、フォルダ507(図5F)がデバイス・インタフェースに既に存在する。ユーザ・ジェスチャに応答し集約化された管理を同一のタイプのアプリケーション・アイコンに実施するとき、アイコン501A、501D、および501Cに対応するアプリケーションがフォルダ507内のアイコン501Bに対応するアプリケーションと同一のタイプのアプリケーションであると当該デバイスが判定するので、当該デバイスはフォルダ507外部のアイコン501A、501D、および501Cを可動とする。当該デバイス・インタフェース上に生成された新たなフォルダを除いて、図5A乃至5Eに関する上述の議論はフォルダが既に当該デバイス・インタフェース上に存在するシナリオに適用可能である。例えば、アイコン501A、501D、および501Cはフォルダ507に自動的に収集され、アプリケーション・アイコンが選択解除されるかまたは選択される等である。
幾つかの実施形態では、フォルダ507が既にデバイス・インタフェースに存在する。当該デバイスがユーザ・ジェスチャに応答し集約化された管理を同一のタイプのアプリケーション・アイコンに実施したとき、ユーザ・ジェスチャがフォルダ507の位置または領域(図5G)で実施される。アイコン501A、501D、および501Cに対応するアプリケーションがフォルダ507内のアイコン501Bに対応するアプリケーションと同一のタイプのアプリケーションであると当該デバイスが判定するので、当該デバイスはフォルダ507外部のアイコン501A、501D、および501Cを可動とする。当該デバイス・インタフェースで生成された新たなフォルダを除いて、図5A乃至5Fに関する上述の議論は、フォルダが当該デバイス・インタフェースに既に存在するシナリオに適用可能である。例えば、アイコン501A、501D、および501Cはフォルダ507に自動的に収集され、アプリケーション・アイコンが選択解除されるかまたは選択される等である。
図6は、幾つかの実施形態に従うアプリケーション・インタフェース要素を移動するための方法の流れ図600を示す。方法600は、ディスプレイ、タッチ・センシティブ・サーフェス、および複数のアプリケーション(カメラ・アプリケーションを含む)を有するポータブル電子装置(例えば、図3のデバイス300、または図1のポータブル電子装置100)で実行される。幾つかの実施形態では、当該ディスプレイはタッチ・スクリーン・ディスプレイであり、当該タッチ・センシティブ・サーフェスは当該ディスプレイ上にある。幾つかの実施形態では、当該ディスプレイは当該タッチ・センシティブ・サーフェスから分離されている。方法600における幾つかの動作を結合してもよく、かつ/または幾つかの動作の順序は変更可能である。
後述のように、方法600は、アプリケーション・インタフェース要素を迅速に移動するためより効率的な方式を提供する。当該方法は、少数の動作を実施することによってユーザがアプリケーション・インタフェース要素をグラフィック・ユーザ・インタフェース上で収集するのを支援し、ユーザの手動動作を減らし、電力を節約し、ユーザ・エクスペリエンスを高める。
グラフィック・ユーザ・インタフェースが編集可能モードであるとき、ポータブル電子装置は、ユーザ・インタフェース上のアイコンX(アプリケーション・アイコンまたはフォルダ・アイコン)で実施された第1のジェスチャを検出する(602)。当該デバイスは第1のジェスチャの意図を決定する(603)。第1のジェスチャがユーザ定義のジェスチャ、例えば、ダブルタップまたはサークリングのような動作ジェスチャであってもよい。当該決定が、タッチ時間、タッチ位置、または圧力強度が所定の閾値を超えたかどうかを判定すること、例えば、当該圧力強度閾値が単一のアイコンを起動するための強度値より大きいかどうかを判定すること、当該タッチ時間が単一のアイコンを起動するためのタッチ時間値より大きいかどうかを判定すること、当該タッチ位置がデスクトップ上の2つのアイコンの間の距離より短いかどうかを判定すること等であってもよい。判定結果が否定的である場合、当該デバイスは、第1のジェスチャの意図がアイコンXに対応するアプリケーションを起動することのみであると判定するか、または、アイコンXに対応するフォルダを開くことであると判定する。次いで、当該デバイスは、当該アイコンを起動することのような対応する動作を実施する(604)。判定結果が肯定的である場合には、当該デバイスは、第1のジェスチャの意図が、アイコンXに対応するアプリケーション(アイコンXがフォルダ・アイコンである場合、当該フォルダ内のアプリケーション・アイコンに対応するアプリケーション)と同一のタイプを有するアプリケーション・アイコンを同一のフォルダに自動的に収集することであると判定する。次いで、当該デバイスは、同一のタイプのアプリケーションに対応するアイコンを起動する(605)。任意選択で、当該デバイスは、ユーザのさらなる管理アクション、例えば、1つまたは複数の起動されたアイコンの削除、または1つまたは複数の停止されたアイコンの追加を待機し続けてもよい(606)。続いて、当該デバイスは、ユーザの第2のジェスチャ(例えば、タッチによる任意のアイコンの起動のような動作)を検出する(607)。同一のタイプのアイコンは自動的に同一のフォルダに収集される(609)。任意選択で、当該デバイスはさらに当該フォルダを名付けるユーザ動作を待機してもよい(609)。
幾つかの実施形態では、方法600における判定(603)が、当該アイコンに対するユーザ・ジェスチャのタッチ時間が第1の閾値を超えたかどうか、および/または当該タッチ位置が所定の範囲閾値を超えたかどうかを判定することであってもよい。第1の閾値の設定が単一のアイコンを起動するための値よりも少々大きくてもよい。例えば、単一のアイコンを起動するための値が2秒である場合、第1の閾値を3.5秒に設定してもよい。当該タッチ位置の範囲閾値を2つのアイコンの間の距離として定義してもよい。例えば、2つのアイコンの間の距離が10画素である場合、当該範囲閾値は10画素である。
幾つかの実施形態では、当該アプリケーションのタイプをアプリ・ストア内の当該アプリケーションの「type」ラベルに従って決定してもよい。例えば、アプリ・ストア内のアプリケーションYがGameと分類される場合、アプリケーションYのタイプはGameである。
幾つかの実施形態では、当該デバイスがアプリケーションYのタイプ情報を認識しないとき、当該タイプ情報を当該アプリケーションの名前に従って推論してもよい。例えば、Yの名前が**Golfである場合、YがGameタイプのアプリケーションであると推論することができる。
幾つかの実施形態では、当該デバイスがアプリケーションYのタイプ情報を認識しないとき、当該アプリケーションのタイプを、接続されたインターネットを検索することによって取得または推論してもよい。
幾つかの実施形態では、方法600における判定(603)が、当該アイコン上のユーザ・ジェスチャのタッチ圧力強度が所定の圧力強度閾値を超えるかどうかを判定するステップであってもよい。
幾つかの実施形態では、当該デバイスは、当該アイコンの自動収集をトリガする前に(608)、タッチ・センシティブ・サーフェス上で第2のジェスチャを実施する時間が所定の時間閾値を超えるまで待機する必要がある。
幾つかの実施形態では、当該デバイスは、当該アイコンの自動収集をトリガする前に(608)、当該タッチ・センシティブ・サーフェスで第2のジェスチャを実施する圧力強度が所定の圧力強度値を超えるまで、待機する必要がある。
幾つかの実施形態では、当該デバイスは、ユーザの第1のジェスチャおよび第2のジェスチャが当該タッチ・センシティブ・サーフェスの同一の位置または領域で実施されることを検出する。
幾つかの実施形態では、当該デバイスは、ユーザの第1のジェスチャおよび第2のジェスチャが同一のアプリケーション・インタフェース要素(例えば、アプリケーション・アイコンまたはフォルダ・アイコン)で実施されることを検出する。
幾つかの実施形態では、当該フォルダが新たなフォルダであるとき、当該デバイスは、当該新たなフォルダをアイコンXの位置または領域に表示してもよく、または、当該新たなフォルダを第1のジェスチャまたは第2のジェスチャの位置または領域に表示してもよい。
幾つかの実施形態では、当該フォルダが既存のフォルダであるとき、当該アイコンの自動収集プロセスの前、間、または後に、当該スクリーン上の当該フォルダの位置が可変または非可変であってもよい。
幾つかの実施形態では、当該デバイスがアプリケーションをアプリ・ストアからダウンロードするとき、当該アプリケーションのダウンロード・パッケージはタイプ・ラベルを運搬する。ダウンロードの完了後に当該アプリケーションをインストールするとき、当該デバイスは、同一のタイプ・ラベルを有するフォルダ(例えば、フォルダ内のアプリケーションおよび新たにダウンロードされたアプリケーションは同一のタイプである)が当該デバイスのローカル・デスクトップに存在するかどうかを問い合わせる。判定結果が「はい」である場合、当該デバイスは当該デスクトップ上のアプリケーションのフォルダに対する保存パスを自動的に設定する。次いで、当該新たにダウンロードされたアプリケーションがインストールされた後、当該アプリケーションのアイコンが当該フォルダに表示される。
図5に関して説明した動作の順序は例示的なものにすぎず、当該順序が当該動作を実施するための一意な順序であることは意味しないことは理解されるべきである。当業者は本明細書で説明した動作を並べる様々な方式を学習しうる。
本明細書の全ての実施形態で述べたジェスチャは、単一の指フリックのジェスチャ、所定の方向への単一の指の連続的な移動、任意の期待される経路に沿った単一の指の連続的な移動、単一の指タップのジェスチャ等を含むがこれらに限られないことは理解されるべきである。
データベース(例えば、Androidシステムにおけるコンテンツ・プロバイダ)を当該デバイスの(例えば、メモリ102に格納された)ソフトウェア・モジュールで設定してもよいことは理解されるべきである。当該データベースは、アプリケーション・ショートカット、アプリケーション・ウィジェット、およびフォルダを含む、当該デスクトップ上に配置しうる3種類のオブジェクトまたはアプリケーション・インタフェース要素を格納してもよい。当該データベース内の当該オブジェクトはツリー風の方式で保存される。例えば、当該3種類のオブジェクト、即ち、当該アプリケーション・ショートカット、当該フォルダ、および当該アプリケーション・ウィジェットが当該グラフィック・ユーザ・インタフェース上に直接提供されるとき、これは、当該オブジェクトが当該データベースのメイントランク(またはメインノード)上にあることを示す。
当該アプリケーション・ショートカットが当該フォルダに保存される場合、当該デバイスにおける実装方式が、当該アプリケーション・ショートカットに対応するオブジェクトが当該フォルダ・オブジェクトの当該トランク(またはノード)の下に保存されることであってもよいことは理解されるべきである。同様に、当該アプリケーション・ショートカットを有効にするために、当該フォルダにまずアクセスする必要があり、次いで、当該アプリケーション・ショートカットを再度タップして当該アプリケーションにアクセスする。
フォルダ・アイコンをスクリーンに表示することが、本明細書で述べたように、当該デバイスにより、フォルダ・オブジェクトをデータベース内に生成し、次いで対応するオブジェクト・アイコンを当該デバイスのデスクトップに表示することであってもよいことは理解されるべきである。
フォルダが当該デバイスによりユーザにスクリーン上に提供されるとき、当該デバイスは、当該フォルダ・オブジェクトが配置されたノードを発見するために当該データベースをまず検索し、当該ノードの下にアプリケーション・ショートカット・データ・オブジェクトを表示してもよいことは理解されるべきである。当該デバイスが当該フォルダ内のアプリケーション・ショートカット・アイコンをタッチするためのジェスチャを検出した場合、当該デバイスは当該ジェスチャに応答して、当該フォルダ・オブジェクトの下の当該アプリケーション・ショートカットに対応するアプリケーションを開く。
幾つかの実施形態によれば、図7は、本発明の原理に従って構成された電子装置700の機能ブロック図を示す。当該デバイスの機能ブロックを、本発明の原理を実行するためのハードウェア、ソフトウェア、またはそれらの組合せにより実装してもよい。図7で述べた機能ブロックをサブブロックに組み合わせるかまたは分離して本発明の原理を実装してもよいことを当業者は理解しうる。したがって、本明細書における説明は、本明細書で説明した機能ブロックの任意の可能な組合せまたは分離、またはさらなる限定をサポートすることができる。
図7に示すように、電子装置700はタッチセンシティブ・ディスプレイ・ユニット702と処理ユニット703とを備える。タッチセンシティブ・ディスプレイ・ユニット702は、スクリーンインタフェースを表示するように構成され、ジェスチャを受信するように構成される。処理ユニット703はタッチセンシティブ・ディスプレイ・ユニット702に接続される。幾つかの実施形態では、当該処理ユニットは、タッチ・スクリーン受信ユニット704、動作解釈ユニット705、イベント分配ユニット706、メイン・スクリーン受信ユニット707、イベント検出ユニット708、アイコン起動ユニット709、アイコン管理ユニット710、およびフォルダ管理ユニット711を備える。
以下で電子装置700の機能を説明する。以下の機能は本明細書で説明した電子装置、システム、装置、方法、グラフィック・ユーザ・インタフェース、情報処理装置(例えば、プロセッサ・チップまたはプロセッサ・チップセット)、およびコンピュータ可読記憶媒体の実施形態に対応することを当業者は理解し、それらの組合せおよび/またはそれらの様々な組合せは、当業者が本明細書を理解した後に当業者により直接的かつ曖昧さなく理解することができる。
タッチ・スクリーン受信ユニット704:タッチセンシティブ・ディスプレイはスクリーンをタッチするユーザ・ジェスチャの動作信号を受信する。当該動作がタッピング、移動、および持ち上げのような動作を含んでもよい。
アクション解釈ユニット705:当該ユニットは、タッピング、移動、および持ち上げのような元の動作をクリック、タッチおよび保持、およびドラッグのようなイベントに解釈するように構成される。
イベント分配ユニット706:当該システム動作解釈ユニット内のイベントを上位層アプリケーション(例えば、メイン・スクリーン受信ユニット)に送信する。
メイン・スクリーン受信ユニット707:当該メイン・スクリーンは当該イベントを受信し、当該イベントを当該イベントに対応する以下の処理ユニットに配送し、当該イベントに対応するプロセスを実施する。
イベント検出ユニット708:現在のイベントを検出し、当該イベントに従って対応する処理ユニットを開始し、例えば、現在のイベントがタッチおよび保持イベントであると検出する(以下のユニットの機能は当該タッチおよび保持イベントを1例として用いることによって説明される)。
アイコン起動ユニット709:当該タッチおよび保持イベントに従って、メイン・スクリーン上の同一のタイプのアプリケーションに対応するアイコンをトリガし起動する。当該起動されたアイコンが当該メイン・スクリーン上のアプリケーション・アイコンを含んでもよく、さらに当該フォルダ内の同一のタイプのアプリケーションに対応するアイコンを含んでもよい。当該起動プロセスの特定の実装が、同一のタイプのアプリケーション・アイコンのデータを求めて当該メイン・スクリーンのデータベースを検索すること、それらを一時フォルダに配置すること、または後続の管理動作を促進するために動作可能なフラグを同一のタイプのアプリケーション・アイコンのデータに固定することであってもよい。最終的に、当該起動されたアプリケーション・アイコンの形態を異なる視覚効果としてスクリーンに表示してもよい。
アイコン管理ユニット710:起動されたアイコンのデータがデータベースの一時フォルダに保存される場合、当該アイコンのデータを削除または追加によって管理してもよく、当該起動されたアイコンのデータが動作可能フラグを用いて特定される場合、削除または追加を、当該動作フラグを修正することによって実施してもよい。
フォルダ管理ユニット:当該タイプに対応するフォルダがメイン・スクリーンのデータベースに存在しない場合、フォルダが先ず当該データベース内に生成され、その結果、起動されたアイコンのデータが当該フォルダに移動される。当該タイプに対応するフォルダが既に当該メイン・スクリーンのデータベースに存在する場合、上述のユニット内の一時フォルダ内のデータまたは同一のタイプのフラグ付けされたアプリケーション・アイコンが当該既存のフォルダに移動される。さらに、当該メインインタフェースは、当該アイコンを当該フォルダに移動するアニメーション効果を表示する。最終的に、当該イベントが終了する場合、現在の更新されたデータベースが保存され、当該メインインタフェース上のアイコン位置が更新される。
当業者は、本明細書を読むことによって、図6および図7を参照して説明した動作を、図1A乃至1Bで示したコンポーネントにより実装してもよいことを学習しうることは理解されるべきである。例えば、イベント・クラシファイア170内のイベント・モニタ171はタッチセンシティブ・ディスプレイ112との接触を検出し、イベント・スケジューラ・モジュール174は当該イベント情報をアプリケーション136-1に送信する。アプリケーション136-1の対応するイベント認識器180は当該イベント情報を対応するイベント定義186と比較し、当該タッチ・センシティブ・サーフェス上の第1の位置での第1の接触が所定のイベントまたはサブ・イベント、例えば、ユーザ・インタフェース上のオブジェクトの選択に対応するかどうかを判定する。当該対応する所定のイベントまたはサブ・イベントが検出されたとき、イベント認識器180は当該検出されたイベントまたはサブ・イベントと関連するイベント・ハンドラ190を起動する。イベント・ハンドラ190は、データ更新器176またはオブジェクト更新器177を使用または起動して、アプリケーション内部ステータス192を更新してもよい。幾つかの実施形態では、イベント・ハンドラ190は対応するGUI更新器178にアクセスして、当該アプリケーションにより表示された内容を更新する。同様に、図1A乃至1Bに示したコンポーネントに基づいてどのように別のプロセスを実装するかを当業者は明確に理解する。
理解の目的のため、上述の説明は特定の実施形態を参照して与えられている。しかし、当該例示的な議論は、包括的であることを意図したものではなく、開示された厳密な形態に本発明を限定しようとするものでもない。上述の教示事項に従って多くの修正と変形が可能である。当該実施形態の選択と記述は、本発明の原理と実際の適用を詳述しようとするものであり、その結果、当業者は、考えられる特定の目的に適した様々な修正を有する本発明および様々な実施形態を十分に利用できる。