こんにちは!visionOS Developer の kato です!
みなさんは Apple Vision Pro を購入しましたか?私は発売日に購入し、毎日 Apple Vision Pro をつけて生活しています。今日は、Apple Vision Pro での検索体験を改善するためにアプリを開発したため、お話ししようと思います。
Apple Vision Pro での検索について
みなさんは普段どのように検索していますか?私は検索が大好きで、個人開発でも検索に関係するアプリをリリースしています。 そこで、今日は Apple Vision Pro での検索方法について考えてみました。
現在の検索フロー
Apple Vision Pro で検索する場合、以下のようなステップが必要です。
- Digital Crown を押す
- アプリ一覧を左右にスワイプし、Safari を探す
- Safari アイコンを見つめてタップする
- 検索バーにフォーカスを合わせてバーチャルキーボードで検索する(もしくは注視して音声入力する)
このプロセス、ちょっと複雑で面倒に感じませんか?
Siriに「Safariで〇〇を検索して」と依頼することもできますが、私が検索したい単語群では認識精度が低いことが多く、複数の単語の入力もしにくく、私の用途には最適と言えません。
せっかくの Apple Vision Pro の体験をもっとスムーズにする方法がないかと考えました。
より快適な検索体験の提案
そこで、私が考えたのは「検索バー」を使った新しい検索体験です。
Apple Vision Pro では空間にアプリを配置できます。 空間に常に表示しておく「検索バー」アプリを開発し、素早く検索できるようにしました。 この方法を使うと、以下のような検索体験が可能になります。
- あらかじめ検索バーを空間に配置しておく
- バーチャルキーボードで最初の数文字だけ入力し、サジェスト機能で続きのワードを入力する
- 検索バーを注視して最初のワードだけ音声入力し、サジェスト機能で続きのワードを入力する
これにより、Digital Crown を押す必要もなく、キーボードもほとんど使わずに検索ができるようになります。
実装方法
TechBlog なので、実装のポイントについても触れておきますね。
.windowStyle(.plain) を指定する
まず、検索バーだけのミニマムな Window を作るために、.windowStyle(.plain) を指定しています。これにより、小さなサイズのアプリが作れるようになり、UI がシンプルになります。
WindowGroup { ContentView() } .windowStyle(.plain)
「注視して音声入力」を使用するために、UISearchBar を使用する
「注視して音声入力」の API は現状公開されておらず、現時点では UISearchBar を使用するのが最適です。SwiftUI の SearchBar を使うには NavigationStack とあわせて searchable を使用する必要があり、単体では使用できないため、今回は UIKit の UISearchBar を活用しました。
visionOS では APIKitが使えない
私は APIKit が大好きで愛用しているのですが、今日時点では visionOS に対応しておらず、ビルドすることができません。
toshi0383 さんが visionOS 対応したブランチを公開してくれていたため、使わせていただきました! ありがとうございます!
上記のforkについて、場当たり的な対応を入れただけのものが多いので本家へのPRにはしていませんが、しばらく置いておくと思うのでご自由にどうぞ!
おわりに
Apple Vision Pro を使っての検索体験がより快適になるように考えたこの方法、いかがでしたか? 数ヶ月前からシミュレータは触っていたのですが、実機を触って初めてわかることも多く、非常にワクワクしています。
「空間に配置する」という新しい体験を考えると、同様にAIアシスタントなども簡単に作れそうですね。今回実装したアプリにボタンを1つ追加すれば、「注視して音声でAIアシスタントに相談」できそうです。
現時点ではリリースする予定はありませんが、iOS Developer の方なら非常に簡単に作れると思うので、みなさんもぜひ試してみてください。Apple Vision Pro を使う楽しさが広がることを願っています!
Goodpatchではデザイン好きなエンジニアの仲間を募集しています。 少しでもご興味を持たれた方は、ぜひ一度カジュアルにお話ししましょう!