通知ベルをなくした話|シンプルさへの小さな決断
ヘッダーから通知ベルのアイコンを外しました。
代わりに、アバターを押した時に開くメニューの中に入れました。
小さな変更に見えますが、理由があります。
ヘッダーにアイコンが増えていくと、ごちゃごちゃする。
ベルアイコンとアバターアイコンが並ぶより、「アカウントのことは全部アバターを押せばわかる」の方がシンプルです。
通知ベルを動かした副作用

通知ベルをメニュー内に移したら、アバターに未読の数を赤い丸で表示する必要が出てきました。
「3件の未読があります」が一目でわかるように。
モバイルも同じです。
メニューを開いた時に通知のリンクが見えて、未読があれば赤いバッジが光る。
こういう作業は「やってみたら芋づる式に修正が広がる」典型です。
通知ベルの位置を変えただけなのに、未読数の取得ロジックを共通化し、PCとモバイルの両方を修正し、メニューの表示順を見直すことになりました。
アカウントメニュー自体にも問題がありました。
メニューがページの他の要素の後ろに隠れてしまう不具合です。
表示の優先順位を調整して、メニューが常に手前に出るように修正しました。
マイページや管理画面にいる時は、そのリンクをメニューから隠す工夫もしました。
ユーザー側に見せていたオンライン/取り込み中のステータス表示も、思い切って非表示にしました。
270行のコードを削除。
管理画面では引き続き使えるけれど、ユーザー側に見せる必要はなかったんです。
使わない機能を消すのは、追加するより勇気がいることがあるんです。
でも結果として、ヘッダーがすっきりしたんです。
相談サービスに未ログインの人がアクセスした時のために「ログインして予約」ボタンも追加しました。
コードを書くだけが仕事じゃない

UIの整理が一段落して、ふと思いました。
直した内容をユーザーに伝えていないな、と。
この日もう一つやったのは、Discordに自動でリリース情報を投稿するスクリプトを作ることでした。
Mintorにはコミュニティとして使えるDiscordサーバーがあります。
でも以前は、何かアップデートをしても手動で告知するか、しないかのどちらかだったんです。
スクリプトを作ったことで、今日どんな改善をしたかをDiscordに投稿できるようになりました。
技術的な変更を、ユーザーが読みやすい言葉に自動で変換してくれる機能もつけました。
テスト用のチャンネルで確認してから本番に投稿する安全な二段階の流れにしました。
「動いてる感」は大事だと気づきました。
サービスが更新されているのを見ると、「ちゃんと続いてるんだ」と感じます。
ユーザーからすると、沈黙しているサービスは不安です。
更新があること、声が届いてくること、それだけで「ここにいてもいいんだ」という安心になります。
iPhoneからの画像アップロード問題

この日はもう一つ、iPhoneからの画像アップロードが失敗するバグも修正しました。
iPhoneのカメラで撮った写真は独自の形式(HEIC)で保存されるのですが、サーバー側がその形式を受け付けていませんでした。
変換処理を追加し、サムネイルの画質も改善しました。
さらに、サムネイルの圧縮サイズも見直しました。
以前は800ピクセル幅で圧縮していたのを、1200ピクセルに拡大。
高解像度の画面で見てもきれいに表示されるようにしました。
圧縮が失敗した場合は元の画像をそのまま使うフォールバック処理も入れました。
通知ベルを移動して、画像の形式に対応して、Discordに更新を届ける仕組みを作って。
振り返ると、この日はずっと「伝わるかどうか」を考えていたと思います。
270行のコードを消す勇気

この日で一番印象に残っているのは、ステータス表示の削除です。
270行のコードを消しました。
ユーザーのオンライン状態を表示する機能でした。
「オンライン」「取り込み中」「退席中」。
作った時は「あったら便利かも」と思っていました。
でも実際には、ユーザーが少ない今のMintorでは意味をなしていませんでした。
ほとんどの人が「オフライン」と表示されるだけです。
機能を追加するより、不要な機能を削除する方が勇気がいります。
「いつか使うかも」という未来の可能性を手放すことだから。
でも、使われていない機能は画面をごちゃごちゃにして、コードの保守コストを増やします。
270行を消して、画面がすっきりしました。
「動いてる感」を伝える

サービスの更新通知は「のれん」のようなものだと思います。
「今日もちゃんと動いています」「改善し続けています」と伝える小さな印。
大きなアップデートでなくても、小さな更新を届け続けることが、信頼につながっていくのかもしれません。
コードの裏側にいる誰かの顔を、前より少しだけ想像できるようになったのかもしれません。

