Pocket Timer
オフラインでも動く、作業用の小さなタイマー
timer.example.com
作った理由
作業の区切りに使うタイマーが欲しかったのですが、既存のアプリは通知や同期など使わない機能が多く、起動も遅く感じていました。ブラウザで開いてすぐ使えて、電波の無い場所でも動くものを自分で作りました。
技術的な判断
フレームワークを使わず、TypeScript と DOM API だけで実装しました。画面が 1 つしかないので、状態管理の層を足す理由がありませんでした。
終了音は音声ファイルを同梱せず、Web Audio API で生成しています。キャッシュする資産がアプリ本体だけになり、オフライン対応が単純になりました。
タイマーの残り時間は端末内の localStorage に保存し、タブを閉じても再開できるようにしました。サーバーは持っていません。
技術スタック
- 言語
- TypeScript
- UI
- DOM APICSS
- 外部API
- Web Audio APIService Worker
- ビルド・配布
- Vitevite-plugin-pwa
- テスト・品質
- VitestBiomeGitHub Actions