俺のためのタスク管理サービスを作った

みなさんさようなら,またひとつサービス作ったよ.

俺のためのタスク管理サービス.

Fascia

めずらしく痛くないというのが一番の特徴じゃないですかね.

動機

ToDoリストをどこかで管理したい

これに尽きる.

だいたい普段生活していると,メモできなかったり,PCが近くにない状況に限って「あ,あれやらなきゃじゃん」というのを思い出したり,思いついたりする. これをいかにして管理していこうかと悩んで,いろいろ使ってはみたものの,どれも定着しなかった.

iPhoneにアプリを入れて,出先でも登録できるようにしても,なぜか定着してない.

なんで定着しないんだろう?

github管理下のToDoとそれ以外のものが並列に出てくるから

俺の脳内では,「あ,Whalebirdにあの機能積んでおこう」という思いつきも,「あ,仕事であれやっといたほうがいい」という思いつきも,「キッチンペーパー買ってこないと」という思いつきも,すべてが並列に出てくる. とくに何かについて考えていない時に,こういうものが順不同に適当に出てくる.

これらのToDoリストを,例えばtrelloで管理するとどうなるか.

  • Whalebirdのタスク

    trelloにメモ -> githubにissue立てる -> PRが出てくる -> PRとissueがcloseされる -> trelloのタスクを自分でdoneにする

  • 仕事のタスク

    trelloにメモ -> redmineにissue立てる -> PRが出てくる -> PRとissueがcloseされる -> trelloのタスクを自分でdoneにする

  • キッチンペーパー

    trelloにメモ -> 買い物に行く -> trelloのタスクを自分でdoneにする

フロー違いすぎ,手順多すぎ,めんどくさすぎ,無理.

一度,全部github管理にしようかとも思ったんですよ. でもキッチンペーパーの買い物とかが入る,家用のリポジトリ作るの?

コード0行だよ?

というわけで自作することにした.

使い方

いや,特に説明するようなことはないです.

githubログインにしておくと,project作るときに,githubリポジトリ関連にするかどうかの選択ができるんですが,そのくらいじゃないですかね.

あとはtrelloと同じ感じで使えます.

リポジトリ関連にしておくと,ちょっと複雑なことができます.

  • github側に勝手に同期される
  • webhookが設定されるので,github側の変更も同期される

コンセプト

俺のためにって書いたとおり,自分で使いたいものを作ったので,俺が便利だと思うように動くようにしてあります.

そして,個人のToDoを管理したかったので,チームで使うような用途は想定していません. なので,プロジェクトを他人と共有したり,チームを作成したり,何かをパブリックにしたりする機能はないです.

そのため,githubのissue管理として運営される類似のサービス(waffle.ioやzenhub)のように,チーム開発やスクラム向けの機能は提供しません.

ただ,githubのissue管理機能については,もっと便利にしていきたいので,

  • issueやPull Requestのコメント関連機能

あたりは近いうちに実装するかもしれません.

開発

リポジトリはこちら.

github.com

サーバサイド

サーバは全部goで書きました. あまり機能的には多くないアプリですが,それなりに行数増えてしまった.

golangを書いていると,設計をいろいろ悩んだりするので,とてもよかった. 特にpackageという分離は,classみたいに手軽に使えないよねっていうのが,今の感想.

それと,エラーハンドリングについてはかなり悩まされました. できれば,本当に不要なパターンを除いて,ほとんどのメソッドerror 型の戻り値をつけておいた方が良い.

フロントエンド

ほとんどReact Reduxです. ログインとか,そのへんだけはjs使わなかったので,サーバサイドでhtmlレンダリングしている.

SPAと決めて,覚悟しちゃうとこれはかなり使いやすいなー. Reactのサンプルでは,よくToDoリストのサンプルが載せられていて,「これ簡単にいけるかなー」って思ったけど,全然その後が大変だった. サンプルはみんな載せてくれるけど,本当に大変なのはあの先である.

あと,こういう形でjsレンダリングしたかったのは,のちのちアプリを作ることを考えて,サーバを全部APIにしておきたかったというのもある.

俺のために

あとはiOSアプリにすれば,俺の欲望は満たされることになる. しかし先は長そうだなこれ…….