前回はダッキング処理を実装し、録音機能が完成しました。しかし、夜の車内や運転中という実際の環境でテストすると、いくつか問題点が見つかりました。今回はUIの改善プロセスをまとめます。
録音途中で画面が消える
録音開始までに間が空くと、スマホが省電力モードに入り画面が暗転します。それに伴い音声認識も停止しました。運転中に画面をタップしてスリープを解除するのは危険です。
プログラムにFLAG_KEEP_SCREEN_ONを追加しました。アプリ起動中は画面を消灯させない仕様です。これで途切れる心配がなくなりました。
フロントガラスに画面が反射する
白ベースの画面では、状況によってはフロントガラスへ反射して眩しいです。
ダークモード化を行いました。背景を完全な黒(Deep Black)にし、テキスト色も暗めのグレー(Dim Text)に変更しました。アクセントカラーにはオレンジを採用しています。シンプルな中にもう少し格好良さが欲しいかなとも思ってますが。
動作状況が分かりにくい
無音検知で自動終了する仕組みですが、画面の数字が固定だと動作しているか不安になります。
タイマーと画面表示を同期させ、終了までの秒数をカウントダウン表示するように改修しました。音声入力中はタイマーが止まり、ステータスが表示されます。画面の数字が動くことで動作状況を確認できます。
手動で即座に終了させたい
基本は自動終了ですが、無音判定を待たずにすぐ保存して閉じたい場合があります。誤操作を防ぐため、画面全体をタップ範囲にする仕様は見送りました。
画面右下にオレンジ色の保存ボタンを配置しました。ナビゲーションバーを避け、持った時に親指で触れやすい位置です。 これで手動での終了も以前よりは改善できました。
実際の環境に合わせて改善し操作のストレスは減りましたが、個人的な感覚ではありますが現在も使っている中で微妙な使いにくさを感じているので、今後も最適化は継続したいです。
残る課題はマナーモード時の挙動と、アプリアイコンの設定です。次回(第4回)はマナーモード時の処理とオリジナルアイコンの設定を行って、ひとまず完成させます。ここまでの機能を実行できるソースコードも展開します。
