【DAY25】検索機能の改善と、ローカル環境だけで完結しない理由
【DAY25】検索機能の改善と、ローカル環境だけで完結しない理由
こんにちは、Keisukeです。
今日は、最近取り組んでいた検索機能の改善について、技術的な観点から振り返ります。
以前から作っていた「Firebase連携の生活支援Webアプリ」で、検索フォームの機能を強化したいと思っていました。
というのも、単純な「キーワードを含むデータを一覧で表示する」だけでは、情報量が増えるにつれて目的のデータに辿り着きにくくなると感じたからです。
そこで今回、新たに以下のような改良を加えました。
- 入力キーワードに対するヒット件数の表示
- 全データの中で、そのキーワードがどのくらい使われているかのランキング表示(TOP3)
- 入力された検索ワードが存在しない場合には、「該当なし」とユーザーに明示
この改善により、ユーザーが「どのワードがよく使われているか」や「自分の探している情報が本当に存在しているか」が一目でわかるようになりました。
たったこれだけでも、UXは大きく変わります。
ローカル環境だけでは限界があると痛感
この作業を進める中で、特に印象的だったのは、「ローカル(JavaScriptのみ)で完結しようとすると、データの整合性や集計の再現性が保てない」という事実です。
JavaScriptだけでヒット件数やランキングを出そうとすると、毎回すべてのデータを読み込み直して処理する必要があり、パフォーマンスが落ちます。
一方で、FirebaseなどのリアルタイムDBを活用すれば、データの更新・取得・集計が効率的に行え、他ユーザーとも情報共有が可能になります。
「複数人が使うこと」「データが日々変わっていくこと」を前提に設計するなら、やはりクラウドDB連携が必要不可欠なのだと再認識しました。
技術は「小さな不満」を解決する
今回の検索機能の強化は、見た目には地味な改良かもしれません。
でも実際に使ってみると「こんな細かいフィードバックがあると嬉しい」と自分でも思えたし、
「なんとなく便利」から「明確に使いやすい」へ一歩進めたと感じています。
技術って、こういう「ちょっとした不便さ」を丁寧に拾っていくことで、ぐっと人の役に立てるんだと思います。
次は、このランキング表示に「グラフ可視化」も取り入れてみようかと模索中です。
ということで、DAY25は「検索機能の技術的改善」について書いてみました。
自分が便利に思う機能を、他の人にも使ってもらえるよう、引き続き改善していきます!
Discussion