0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【禁欲タイマー】世界忍耐時計-PatienceDay Clock-

Last updated at Posted at 2024-06-18

はじめに

健康や自己実現のために禁欲や我慢を続けることは容易ではないし、継続しないと成果が目に見ないのでモチベーションが続かない。
ならばその成果を目に見えるようにしてしまえばいいと考えて、
世界禁欲時計-PatienceDay Clock- を作りました。
まあ大げさなことを言いましたが、いわゆる禁欲タイマー的なものです。
巷にこの手のサイトはあふれていると思うので、自分なりの工夫を加えました(それでも差別化が図れているかどうかはわかりませんが…)。
あとサブタイトルの英文法が怪しいのは、世界禁欲時計のDoomsday Clockにあやかって名付けたからです。
動画

使い方

  • 追加ボタンを押して
    追加ボタンを押す&モード切替スイッチ.png

  • 入力フォームを表示
    入力フォームを出す.png

  • 何を耐えるか と 目標期限 を入力して始めるボタンを押す
    必要事項入力.png

  • 新規追加完了
    新規追加完了.png

  • カウントはいくつも追加できます。
    複数追加可能.png

  • カウントはリアルタイムで動きます。
    編集版リアルタイムでカウントが表示.gif

  • 追加したものをクリックするとモーダルウィンドウが表示されて、目標期限までの時間が表示されます。
    目標期限確認.png

  • 目標までの時間もリアルタイムで動きます
    編集版目標期限までの時間を確認.gif

  • 目標期限を迎えたものは色が変わります。
    達成したものは色が変わる.png

色が変わる.png

  • 変化もリアルタイムで行われます。
    編集版変わる瞬間1.gif

編集版変わる瞬間2.gif

  • モーダルを表示させて終了ボタンを押すことでカウントを終わらせることができます。
    終了.png

  • 期限を迎えていないものも終わらせることができます。
    未達成終了.png

  • 終了したカウントは履歴に残ります(メニューの履歴を押して表示)。達成したものはオレンジ、していないものはグレーになります。
    履歴.png

  • 履歴を消したいときは消したいものをクリックしてOKボタンをクリック
    履歴の削除.png

  • ちなみに画面右上のボタンをクリックしてダークモード切替もできます。
    ダークモード切替.png

使用した技術

React.js

安定のTypeScript。
今回はindexedDBを使ったので型付けの面目躍如でした。

Dexie.js

非同期処理が苦手なので苦労しましたが、生のindexedDBを扱うよりかはずっと楽でした。
indexedDBはlocalStorageと違って文字列にして保存したり、取り出して文字列から別の型に直したりする作業が必要なく好きな型を扱うことができるので良かったです。
ただ真偽値の扱いがDexie.jsは苦手なようなので、boolean型で扱いたいものはnumber型にして0か1で管理するようにしました。
ダークモード切替の状態のみlocalStorageで管理しました。

styled-components

これまで使ってきたCSSフレームワークの中ではダントツで使いやすかったです。
使い勝手が良かったので次のアプリもこれ使うかも。

その他

今回はデザインモックを作る際にCanvaというサイトを使いました。
無料なのが信じられないくらい使いやすくて感動しました。
canva1.png
canva2.png

また、スマホでの利用を想定しているため、片手でも操作しやすいようにメニューを下部に配置しました。
スマホで使うならPWAにした方が良いと思います。

まとめ

今回はモックアップでフロントを、ロジックの部分をプロトタイプで作っておいたおかげで、比較的楽に作ることができました。
下準備は大切だと実感しました(その分大変だったけど)。
あと、最近いままでに作ったアプリをまとめました。ここ
良かったら覗いてみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?