gemを作ってみました

みなさんこんばんは。宇賀神です。

今日は前から一度やってみたかった、gemを作ったお話です。

知ってますか

「ポモドーロ・テクニック」を。25分働いて5分休憩する、という働き方のアレです。
知らない方はググってみましょう。熱く語っている人がたくさんいます。

かくいう私も知ってはいたものの、今までなんとなく定着せずに来ました。
その原因を考えてみたところ、

  • 時間測るのがめんどくさい
  • ブラウザアプリとかあるけど起動するのがめんどくさい
  • めんどくさい

というのが主だったように思います。
というわけで、その「めんどくささ」をとことん排除するものを作れたらと思ったわけです。

なぜgemなのか

gemを作ってみたかったからです。(きっぱり)
Rails開発を何年かやっていて、色んなgemにお世話になったものの、作ってみたことってなかったなーと思いまして。なんでもいいからやってみたいと思っていたのです。

仕様

いくら個人開発といっても、ソフトウェアを作るには仕様が必要です。
というわけで目的である「めんどくささを排除する」を満たせるよう、ざっくり以下の感じの仕様を決めました。

- ターミナルで動作するアプリであること
- 25分 → 5分 → 25分...というように、延々とカウントダウンをし続けること
- 25分の終わりの際に流している音楽を止めること
- 5分の終わりの際に流していた音楽を再生すること

結論から言うと下の2つは現在未実装です。
というか最後のやつは実現できるかわからんレベルの理想です。

出来上がったもの

ソースコードはGitHubで公開しとります。名前は鳥山明先生の名作、Dr.スランプをインスパイアしています。モジュール名とかもちょいちょいインスパイアしてます。(途中で名前変えてガッチャガチャになったのは内緒の話)
https://github.com/ugajin/pomodorokun

実際の使用画面はこんな感じ
Image from Gyazo

…gifにしたら想像以上に地味でした。
5秒前からカウントダウンの音鳴らすとか地味に実装してるんですが、gifでは伝えられない。。

使い方はREADMEに書いておきますので、気が向いた方は使ってやってください。
もちろん技術的に詰まった面とかもありましたので、そのへんは別の記事にまとめますね。

これから実装したい機能

上に書いた未実装の2つ以外にも、実装しながら思いついたやつもあったのでメモも含めて。

- 音を止めたり流したり
- `you gotta 5 pomo!` とかみたいにpomo数を表示したい(英語が合ってるかは知らない)
- 起動コマンドにオプションつけることで効果音変更したい
- 起動コマンドにオプションつけることでworkingとbreakingの時間を指定したい
- 4pomoごとに20分の休憩にしたい
- 起動中のターミナルが寂しいのでなんか賑やかにしたい

こんな感じでやりながらアイデアも出たので、しばらくこのへんで遊べそうです。

おわりに

数年振りに個人開発やってみたんですが、やってみるとやっぱり楽しいですね。
アラレちゃんインスパイアとか、個人開発じゃなきゃ出来ないようなおふざけも許されるので、久々にプログラミングを純粋に楽しめてたと思います。

今度はiOSアプリとか作ってみたいなぁ。作ったことないけど。

Leave a Reply

Your email address will not be published. Required fields are marked *