タイマー付きフォームで学習を習慣化するUX設計
投稿日: 2025年05月11日
オリジナルアプリである学習アプリ「Lernova」の開発を通じて、ユーザーの学習習慣をサポートするUX設計として「タイマー付きフォーム」を実装しました。
この記事では、実装に込めた設計意図や技術的な工夫を紹介したいと思います。
多くの学習記録アプリでは「何を学んだか」を入力することが主ですが、本当に習慣化したいのは「学んだという事実を記録する行動」です。
そこで私は、以下のUXを目指しました。
学習を「量」より「時間」で意識してもらう
「始める」「終わる」という明確な行動で記録を促す
時間の記録が積み重なることで達成感を得られる
<Button onClick={handleStart}>スタート</Button> <Button onClick={handleStop}>ストップ</Button>
ユーザーはフォームに必要最低限の情報を入力したら、あとはボタンを押すだけ。操作のシンプルさが継続の鍵です。
Reactアプリでは、<Link>
コンポーネントを使うと即時遷移してしまうため、タイマー中の警告を出しても防げません。
そこで、独自の GuardedLink
コンポーネントを実装し、タイマー実行中は「本当に移動しますか?」と確認→OK時のみ router.push()
実行というフローにしました。
localStorage.setItem("learning_start_time", now.toISOString());
ページをリロードしても学習状態を保持
開始時刻の整合性もチェックし、不正なデータは初回マウントでクリーンアップ
学習中はタイマーで時間の可視化
停止後は「〇時間記録されました」と即時フィードバック
直近の学習履歴を表示し、**「続けてる感」**を演出
これにより、ユーザーは「次も記録したい」という気持ちを自然と持てるようにと考えました。
「タイマー付きフォーム」というシンプルな仕組みですが、習慣化を支援するUXとして非常に効果的でした。
記録を習慣づけたいプロダクトを開発する際には、ただの入力フォームではなく、行動を支援する仕掛けを加えてみると継続率が大きく変わります。