Android
テキストエディタにおける
使いやすい逐次検索インタフェース
中村 学
Useful Incremental Search Interface for Android Text Editor
(平成29年10月11日受理)Manabu NAKAMURA (Received October 11, 2017)
The search interface for the Android mobile OS is implemented using search dialogs and search widgets, but it is not possible to implement an incremental search interface that uses the cursor (the matching parts of the text cannot be selected by the cursor as the search word is inputted character by character). This is because there is only one cursor displayed even if there are multiple places where a user may enter characters in a window in Android. This paper proposes a useful incremental search interface for the text editor on the Android system. The user can perform a variety of tasks (such as scrolling the text, editing the text, and using the buttons and the navigation drawer in the toolbar) without closing the incremental search interface.
Keyword:Android, Text Editor, Incremental Search Interface
Androidには,検索インタフェースを実現するために,検索ダイアログ, 検索ウィジェットと呼ばれる部品が用意されているが,通常の方法では, カーソルを使用した逐次検索インタフェースを実現できない(検索語が 1 文字 1 文字入力される毎に本文内の一致する部分をカーソルで選択するこ とはできない)。ウィンドウ内に文字を入力できる部品が複数存在していた としても,文字をどれに入力できるかを示すために,カーソルは1箇所しか
表示されないからである。本稿では,Androidテキストエディタにおける
カーソルを使用した使いやすい逐次検索インタフェースを提案する。ユー ザは,逐次検索インタフェースを表示したままで,本文をスクロールした り,本文を編集したり,ツールバー内のボタン,ナビゲーションドロワな どを使用できる。
1.はじめに
Androidでは,ウィンドウ内に文字を入力できる部品が複数存在していたとしても,文字をど れに入力できるかを示すために,カーソルは 1 箇所しか表示されない。そのため,検索語を入力す るための部品に検索語が 1 文字 1 文字入力される毎に本文内の一致する部分をカーソルで選択する こと(逐次検索)はできない。しかし,ダイアログを表示し,そこに検索語を入力するための部品
を配置することでカーソルを使用した逐次検索インタフェースを実現できる。本稿では,Android
テキストエディタにおけるカーソルを使用した使いやすい逐次検索インタフェースを提案する。こ れは,テキストエディタ以外でも表計算ソフトのような文字を入力するアプリにおける検索インタ フェースとしても有効であろう。
2.調 査
Google Playで「テキストエディタ」という検索語で 上位に表示された,無料で提供されているアプリ15個を 簡易調査した。半数以上のアプリが検索インタフェース を提供していたが,逐次検索インタフェースを提供して い た の はJotterPad1︶,Text Editor2︶の み で あ っ た。
JotterPadはダイアログを使用しているようであるが, カーソルを使用せず,本文内の一致する部分の背景に色 を付け,逐次検索インタフェースを実現しているようで ある(図 1 )。Text Editorはダイアログを使用せず,本 文内の一致する部分の背景に色を付け,逐次検索インタ フェースを実現しているようである(図 2 )。その後, 検索ボタンをタッチすると,本文内の一致する部分の 1 つがカーソルで選択される(図 3 )。この時,フォーカ スは本文に移動している。検索語を修正するためには, 検索語を入力するための部品をタッチする必要がある (検索語を入力するための部品をタッチすると,カーソ
ルによる本文の選択は解除される)。これはWindows用
のMicrosoft Word 2016の検索インタフェースと同様の 動作である。
3.検索ダイアログと検索ウィジェット
Androidには,検索インタフェースを実現するため に,検索ダイアログ,検索ウィジェットと呼ばれる部品
が用意されている(図 4 , 5 )3︶。しかし,検索ダイアロ
グは検索語が 1 文字 1 文字入力されるのを監視するため
のAPIが用意されていないので,逐次検索インタフェー
スを実現できない。また,検索ウィジェットは主にツー ルバー内で使用し,検索語が 1 文字 1 文字入力されるの
図 1 JotterPad
図 2 Text Editor
図 3 Text Editor
を監視できるが, 1 .で述べたようにカーソル はウィンドウ内に 1 箇所しか表示されないの で,カーソルを使用した逐次検索インタフェー スを実現できない( 2 .で述べたように,本文 内の一致する部分の背景に色を付けるなどして 逐次検索インタフェースを実現することはでき る )。 ダ イ ア ロ グ を 表 示 し, そ こ に 検 索 ウ ィ ジェットを配置すると, 1 .で述べたようにカー ソルを使用した逐次検索インタフェースを実現 できる(図 6 )。検索語が1文字1文字入力される のを監視し,本文内の一致する部分をカーソル で選択する。この時,検索ボタンをタッチする と本文内の一致する前または後の部分にカーソ ルが移動するが, 2 .で述べたText Editorとは 異なり,フォーカスは本文に移動していない ( 4 .で述べるように,ダイアログを非フォーカ サブルにしたり,隠すことにより,移動させる ことも可能である。ダイアログを使用しない場 合は,このような選択はできない)。検索語を修 正するために,検索語を入力するための部品を
タッチする必要はない。これはWindows用の
Android Studioの検索インタフェースと同様の 動作である。しかし,検索ウィジェットはボタ ンの位置や大きさなどを調整できないので,ダ イアログ内に必要な部品を配置したものの方が 使いやすいと思われる(図 7 )。以降では,ダイ アログ内に必要な部品を配置した検索用のダイ アログについて述べる。
4.逐次検索インタフェースの使いやすさ
3 .で述べたように検索ウィジェット(図 5 )はカーソルを使用した逐次検索インタフェースを 実現できないが,使用中でも本文をスクロールしたり,本文を編集したり,ツールバー内のボタ ン,ナビゲーションドロワなどを使用できる。しかし,検索用のダイアログ(図 7 )を表示したま まで,本文をスクロールしたり,本文を編集することができないので,不便である。ダイアログ外 をタッチするとダイアログが閉じられるのがデフォルトの動作である。ユーザが検索用のダイアロ グ外をタッチしても検索用のダイアログが閉じられないように検索用のダイアログをモードレスに することで,検索用のダイアログを表示したままで,本文をスクロールできる。しかし,フォーカ スがダイアログに固定されているため,本文を編集できない。検索用のダイアログ外のタッチも監 視し,検索用のダイアログ外がタッチされた時に検索用のダイアログを非フォーカサブルにするこ
図 4 検索ダイアログ
図 5 検索ウィジェット
図 6 ダイアログ内の検索ウィジェット
とで,検索用のダイアログを表示したままで, 本文を編集できる。検索用のダイアログ内が タッチされた時に検索用のダイアログを再び フォーカサブルにすることで,検索語を入力で きるようになる。
さらに,Androidのダイアログは邪魔になっ
てもユーザが移動させることができないので, 図 7 のような状況では,検索用のダイアログを 表示したままでツールバー内のボタンなどを使 用することができないので,不便である。本文 の領域を狭くし,検索用のダイアログと同じ大 きさの部品を配置し,その手前に検索用のダイ アログを重ねれば,この検索用のダイアログを 表示したままでツールバー内のボタンなどを使 用できる(図 8 )。しかし,ナビゲーションド ロワ,Android 6.0以降で文字列を選択した際 に表示されるアクションモードなどは検索用の ダイアログの奥に表示されるため,違和感があ り,不便である(図 9 ,10)。さらに,画面サ イズの小さい端末が横に回転された時に全画面 表示された本文も検索用のダイアログの奥に表 示されるため,違和感があり,不便である(図 11)。
これらの問題を解決するために,検索用のダ イアログ外がタッチされた時や端末が横に回転 された時に先に述べたように検索用のダイアロ グを非フォーカサブルにするのではなく,検索 用 の ダ イ ア ロ グ を 隠 す( 図12,13,14)。 図 12,13のように,検索用のダイアログの奥に配 置した部品内にも検索用のダイアログ内の部品 と同じものを配置しておけば,検索用のダイア ログを隠した時にもユーザは違和感を覚えない と思われる。検索用のダイアログの奥に配置し た部品内がタッチされた時に先に述べたように 再び検索用のダイアログをフォーカサブルにす るのではなく,再び検索用のダイアログを表示 する(アクションモードが表示されていた場合 はアクションモードも終了する)。
図 8 逐次検索インタフェース
図 9 検索用のダイアログの奥に表示された
ナビゲーションドロワ
図10 検索用のダイアログの奥に表示された
アクションモード
図11 検索用のダイアログの奥に表示された
本文
図12 問題なく表示されたナビゲーションド
5.おわりに
本稿では,Androidテキストエディタにおけ
るカーソルを使用した使いやすい逐次検索イン タフェースを提案した。ユーザは,逐次検索イ ンタフェースを表示したままで,本文をスク ロールしたり,本文を編集したり,ツールバー 内のボタン,ナビゲーションドロワなどを使用 できる。これらはAndroid 3.0以降で使用可能 である。これらの動作はNexus 72013(Android
4.3(純正),Android 6.0.1(純正),Android 7.1.2 (非純正)4)),Nexus 72012(Android 7.1.2(非 純正)5)),SO-03H(Android 7.0)などで確認
した。今後の課題はAndroidテキストエディタ
の評価と使いやすさのさらなる改善である。
AndroidはPCと思想が異なり,考慮すべき点が多々ある。
参 考 文 献
1︶ Two App Studio, “JotterPad 12.4.1B-pi,” https://play.google.com/store/apps/details?id=com. jotterpad.x, 2017
2︶ Byte Mobile, “Text Editor 1.3.b19,” https://play.google.com/store/apps/details?id=com. byteexperts.texteditor, 2017
3︶ Google Inc., “Creating a Search Interface,” https://developer.android.com/guide/topics/ search/search-dialog.html, 2011
4︶ followmsi, “Android 7.1.2,” https://forum.xda-developers.com/nexus-7-2013/development/ rom-t3569067, 2017
5︶ AndDiSa, “Android 7.1.2,” https://forum.xda-developers.com/nexus-7 /development/rom-android-7-aosp-grouper-t3467514, 2017
図13 問題なく表示されたアクションモード