2019/03/11
みなさんこんばんは。宇賀神です。
今日は前から一度やってみたかった、gemを作ったお話です。
「ポモドーロ・テクニック」を。25分働いて5分休憩する、という働き方のアレです。知らない方はググってみてください。熱く語っている人がたくさんいます。
かくいう私も知ってはいたものの、今までなんとなく定着せずに来ました。
その原因を考えてみたところ、
というのが主だったように思います。
というわけで、その「めんどくささ」をとことん排除するものを作れたらと思ったわけです。
gemを作ってみたかったからです。(きっぱり)
Rails開発を何年かやっていて、色んなgemにお世話になったものの、作ってみたことってなかったなーと思いまして。なんでもいいからやってみたいと思っていたのです。
今回作ったツールについても、既にクオリティの高いものが開発されている点については、一旦見なかったことにしています。
いくら個人開発といっても、ソフトウェアを作るには仕様が必要です。
というわけで目的である「めんどくささを排除する」を満たせるよう、ざっくり以下の感じの仕様を決めました。
- ターミナルで動作するアプリであること
- 25分 → 5分 → 25分...というように、延々とカウントダウンをし続けること
- 25分の終わりの際に流している音楽を止めること
- 5分の終わりの際に流していた音楽を再生すること
結論から言うと下の2つは現在未実装です。
というか最後のやつは実現できるかわからんレベルの理想です。
ソースコードはGitHubで公開しております。名前は鳥山明先生の名作、Dr.スランプをインスパイアしています。モジュール名とかもちょいちょいインスパイアしてます。(途中で名前変えてガッチャガチャになったのは内緒の話)
https://github.com/ugajin/pomodorokun
…gifにしたら想像以上に地味でした。
5秒前からカウントダウンの音鳴らすとかしているんですが、gifでは伝えられない。
使い方はREADMEに書いておきますので、気が向いた方は使ってやってください。
もちろん技術的に詰まった面とかもありましたので、そのへんは別の記事にまとめますね。
上に書いた未実装の2つ以外にも、実装しながら思いついたやつもあったのでメモも含めて。
- 音を止めたり流したり
- `you gotta 5 pomo!` とかみたいにpomo数を表示したい(英語が合っているかは知らない)
- 起動コマンドにオプションつけることで効果音変更したい
- 起動コマンドにオプションつけることでworkingとbreakingの時間を指定したい
- 4pomoごとに20分の休憩にしたい
- 起動中のターミナルが寂しいのでなんか賑やかにしたい
こんな感じでやりながらアイデアも出たので、しばらくこのへんで遊ぶかもしれないです。
数年振りに個人開発やってみたんですが、やってみるとやっぱり楽しいですね。
アラレちゃんインスパイアとか、個人開発じゃなきゃ出来ないようなおふざけも許されるので、久々にプログラミングを純粋に楽しめてたと思います。
今度はiOSアプリとか作ってみたいなぁ。作ったことないけど。