こんにちは、Karouです。KUKU BATTLE MASTERはv0.3のリリースで一区切りとなりましたが、開発が止まったわけではありません。リリース後も細かな改善を続けています。今回は、v0.3以降に行ったアップデートの内容と、その背景をまとめます。

リリース後にやるべきこと

個人開発において、「リリースしたら終わり」は最大の罠です。実際に使ってみて初めて気づくバグ、セキュリティの穴、ユーザー体験の改善ポイント——これらはリリース後にしか見えてきません。

KUKU BATTLE MASTERも例外ではありませんでした。v0.3をリリースした直後から、いくつかの問題と改善点が見つかりました。

バグ修正:練習モードの実績トースト

最初に対処したのは、練習モードで実績解除のトースト通知が表示されないバグでした。原因は、onDoneコールバックがレンダリングのたびに再生成され、useEffectがリセットされてトーストが表示される前に消えてしまっていたこと。

修正はシンプルで、onDoneをuseRefで保持するようにしただけ。たった数行の修正ですが、実績が解除されたのに通知が出ないのはユーザー体験として致命的です。こうした「小さいけど重要なバグ」はリリース後に多く見つかります。

セキュリティヘッダーの追加

次に取り組んだのは、Firebase Hostingの設定にセキュリティヘッダーを追加すること。具体的には以下の3つです。

  • Content-Security-Policy(CSP):XSS攻撃の緩和。許可するスクリプトソースや接続先を明示的に制限。
  • X-Frame-Options:クリックジャッキング攻撃の防止。他サイトのiframeに埋め込まれることをブロック。
  • X-Content-Type-Options:MIMEスニッフィングの防止。ブラウザが勝手にContent-Typeを推測しないよう制御。

子ども向けのアプリだからこそ、セキュリティには気を配りたい。攻撃対象になる可能性は低くても、基本的な防御策は入れておくべきです。

親ダッシュボードの進化:苦手な段の可視化

今回のアップデートで最も大きな機能追加が、親ダッシュボードへの「苦手な段の棒グラフ分析」です。

新たにmistakeTracker.tsというユーティリティを作成し、各段ごとの誤答率を追跡できるようにしました。親ダッシュボードを開くと、「7の段が苦手」「4×8をよく間違える」といった傾向が棒グラフで一目瞭然になります。

前回の記事で「学習分析の強化」を今後の展望として挙げていましたが、さっそく1つ実現した形です。苦手を可視化することで、「どこを重点的に練習すればいいか」が明確になり、学習効率が格段に上がります。

プレイ時間計測の修正

地味ですが重要な修正として、プレイ時間の計測ロジックを見直しました。バトル、タイムアタック、サバイバル、デイリーチャレンジ、協力プレイの全5モードで、結果画面に遷移したタイミングでendSession()が呼ばれるように統一しました。

以前は一部のモードで結果画面に移ってもタイマーが回り続けており、親ダッシュボードのプレイ時間が実際より長く表示されてしまっていました。親が「3時間もゲームしてるの!?」と驚く事態は避けなければなりません。正確なデータは信頼の基盤です。

リリース後の開発で大切なこと

v0.3以降のアップデートを通じて、改めて感じたことがあります。

  • 小さく、頻繁に直す:大きなアップデートを計画するより、気づいた問題をその日のうちに修正する方が、プロダクトの品質は着実に上がる。
  • セキュリティは後回しにしない:「まだユーザー少ないから」は危険な思考。基本的なヘッダー設定は初期コストが低く、効果は大きい。
  • データの正確性を担保する:親ダッシュボードの数字が信用できなければ、どんなに機能が充実していても意味がない。

6日間で作り上げた勢いを止めず、リリース後も改善を重ねていく。個人開発のプロダクトは、作者が手を止めた瞬間に死んでいきます。KUKU BATTLE MASTERは、まだまだ進化の途中です。

→ KUKU BATTLE MASTER を遊んでみる

6日間の爆速開発記録一覧