ポモドーロタイマーのアプリをUnityで作ってみた!
どうも、Linです。筋肉、覚えてます。
「ポモドーロテクニック」という仕事のメソッドをご存知ですか??
簡単にいうと、
25分働いて5分休む
というサイクルを回すことで、集中力を保ったまま仕事に取り組めるテクニックです。
ぼくは今までブラック企業で鍛えた持ち前の長時間労働体制で働いていました。
が、Daigoの「自分を操る超集中力」で紹介されていた「ポモドーロメソッド」を試し始めてから世界が変わりました。
自分の集中具合がタイマーで測ると可視化できますし、何よりもタイマーをスタートすることで集中するという習慣を作れたのが大きかったです。
で、今回はこのポモドーロメソッドを実施しやすくするため、ポモドーロ専用のタイマーをUnityでアプリ作成してみました。
その名も、
Tomatimer(トマタイマー)
です。
ポモドーロタイマー「Tomatimer」の使い方
ってことで、Tomatimerの使い方を書いておきましょう。
Start 画面
スタートボタンを押してタイマー画面に遷移します。

準備はいいですね?
働く時間をスタート
早速、タイマーをスタートさせて25分働きましょう。
赤いボタンを押すとタイマーのカウントダウンが始まり、25分を数え始めてくれますよ。

ここでのポイントは、
仕事中はフライパンの中でトマトが料理される
ということ。

普通のタイマーは視覚的に動きがないつまらないものばかりですが、Tomatimerは一味違います。
トマトが火に炙られてウネウネ動くのでみているだけでも面白いです。
5分休憩
25分のワークタイムが終了すると、自動的に休憩時間を5分間カウントダウンしてくれます。
このフェーズでは、
休憩すべきなのでトマトも炙られてません。
また、作業した量を可視化するため、1つのワークタイムが終了すると左上のトマトの数が増えていきます。
これにより、自分のポモドーロサイクル数が一目瞭然というわけです。
長時間の休憩
ポモドーロメソッドでは、3〜4つのサイクルを回した後は15~30分ほどの長時間の休憩を取るのが良いとされてます。
そのため、このTomatimerでも長時間の休憩時間を測定できるよう、
REST
というコマンドを右下に用意しました。

このボタンを押すと、先ほどまで炙られていたトマトも一休み。
ベッドに入って休憩しています。
休憩時間が終了しましたら、赤いボタンを押せばワークタイムに戻ることができます。
1日の最後に
1日の仕事が終わりましたら、一番下の「FINISH」というボタンを押してみましょう。

すると、
- 今日の働いた時間
- 今日、長時間休憩した時間
- ポモドーロサイクルの数
が表示されます。
完了したタスク量とを見比べながら、どれくらい仕事に集中できていたのか内省し、帰宅しましょう。
Unityでポモドーロタイマーのアプリを作る中で勉強になった3つのこと
とまあ、きもいアプリをUnityで作ってしまったわけですが、このTomatimerの作成過程で次の3つのことが勉強になりました。
ランダムに数値を生成する方法
まず、トマトをブルブル震えさせるためにランダムの数を生成する必要がありました。
ランダム数値をトマトのtransform値としてUpdate関数で拾ってやることで、ブルブルとした震えを再現しました。
>>詳しくは「Unityでランダムに値を生成する方法」
Unityでカウントダウンタイマーを作る方法
続いて、Unityでタイマーを作る方法です。
TimeクラスのdeltaTimeという1フレームあたりのフレーム時間を、Update関数内でフレームごとに引いてやることで、カウントダウンさせることに成功しました。
特に苦戦したのが、
タイマーをデジタル表記にする条件分岐
でしたね。
数字が1桁になった時は数字の前に0をつけるとか、そこらへんの微妙な帳尻合わせが意外にもめんどくさかったです笑
シーン間で変数を共有する方法
あとはシーン間で変数を共有する方法ですね。
Tomatimerでは、
- 自分がこなしたぽもドールサイクルの数
- 自分が働いた時間
- 休んだ時間
を記録して最後のFINISH画面で表示せねばなりませんでした。
そのため、
- タイマーのシーン
- 結果表示のシーン
で同じ変数を共有する必要があり、その共有方法が少々回りくどく苦戦しました。
>>詳しくは「Unityのシーン間で変数を共有する方法」へ
しかし、問題点が噴出!笑
このポモドーロタイマーのアプリをAndroidストアで公開し、自分でも使ってみたところ、ある致命的な欠点に気づいたのです。
それは、
アプリがバッググラウンドになるとタイマーが動かない
というやつです。
あくまでもタイマーが進むのは、スマホの電源が入っていてアプリが起動されている時のみ。
それ以外の、
- 他のアプリを使用している時
- スマホをスリープ状態にしている時
はタイマーのカウントダウンが進まず、自分が仕事していないことになってます笑
これは致命的!w
今後はこの致命的な欠点とともに、
- タイマーが終了するとバイブで知らせてくれる
- 今日だけじゃなくて過去の仕事の記録も保存できる
のような機能を付け加えていきたいと思います。
それでは!
Lin

おそらく、ブロガー。現在ホテル暮らしで全国フラフラしています。
ネット広告代理店に1年3ヶ月勤め上げ、独立をして丸4年が経ちました。今年でフリーランス 5年目。
質問・ご意見・相談があればLINEで受け付けていますのでお気軽にどうぞ 。
コメントを残す