正直なところ次善策と言うには厳しいです.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS14.0 (iOS14からはバージョン表記ではなくなったようです)
スポンサーリンク
iOS14で無くなった検索機能
ショートカットにおける「メニューから選択」および「リストから選択」アクションでは, これまでは項目数が一定数を超えると検索ボックスが表示されていました.
これで項目数が増えても対応できたのですがiOS14ではそれが無くなった上, 動作自体も重くなってしまったようです.
他の選択肢と言えば, 思いつくのは先日紹介した, 「繰り返す」あるいは「各項目で繰り返す」のアクションを使った(正直)強引なやり方です.
検索ボックスがない以上, こちらでどうなるかやってみるしかないですが記事でも紹介したとおり, 行数が増えると途方も無い時間を要します.
検証
実際どうなるのか試してみました.
使用するアクションは全体のアクション数が少なく済む「各項目で繰り返す」アクションにします.
参考も兼ねてレシピを紹介しておきます.
今回は行数の調整があるためBearに書かれたテキストを読み込んで, 指定のキーワードのある行を変数に追加する処理に要する時間を計ることにします.
Bearから対象のテキストを読み込み, 「テキストを分割」アクションで改行で分割, この行数をカウントしておきます.
繰り返し処理の時間だけ計測したいので上記を終えてから現在の時間を取得し, 「各項目を繰り返す」を行います.
指定のキーワード(今回は"arch"ですがテキストにあったものを適当に選んだだけです)に一致したら"value"という変数に追加していきます.
繰り返しが終わったらその時点での時間を取得, 先程得た時間との差を計算します.
実際にはこの後に体裁を整えてBearの別のメモに書き込んでいます.
結果
あまり多くは施行していませんが結果は画像のようになりました.
ある程度行ったところで見ての通り一次近似で十分であると判断したためです.
行数をx, 処理時間をy(秒)とすると近似曲線はおよそ
y = 0.2706x-0.755
でした.
これを元にした参考値は以下となります(1秒未満四捨五入).
行数 | 所要時間 |
---|---|
10 | 2秒 |
20 | 5秒 |
50 | 13秒 |
100 | 26秒 |
200 | 53秒 |
500 | 2分15秒 |
1000 | 4分30秒 |
検索ボックスがあった頃なら万単位の行数があったテキストも1秒と待たされずに結果を返してくれたのと比べると使い物にならないと言わざるを得ない酷さです.
〆
ショートカットは処理時の無駄なアクションが本来のパフォーマンスを妨げてるのでは?と思いたくなるのですがあれを省略する設定が欲しいですね.
それでもこの問題が解決するとは思えませんが…
もし検索対象が一つであると初めから分かっている場合なら, 例えば10行ずつ, 20行ずつ繰り返し, ワードを含む行が見つかったら抜けることで検索対象を行全体まで行わずに済む「可能性」はあります.
しかし対象が末尾にあれば結果は同じですし, まして複数ありうる場合は結局全部見ないといけません.
検索ボックスが無くなってしまったことでたくさんの文字から検索する真っ当な手段を失ったのが致命的であることは間違いありません.
iOS14.1や14.2で解消されていることを期待したいです.
それだけでなくユーザビリティの視点で考えて, 検索ボックスはもちろん操作ボタンも画面下部に変更, あるいは切り替えるようにしてほしいものです.
iOS14になって今回の問題に加え「入力を要求」なども画面上部に移動してしまってとても使いにくいですね.