俺のためのタスク管理サービスをアプリ化した

もう2年くらい前に,fasciaという俺用のタスク管理サービスを作った.

h3poteto.hatenablog.com

で,これを出先でも触りたいがためにios用のアプリを作っていた. 実は半年ちょいでできてしまって,もう1年半くらいTestFlightしてるんだけど,いい加減AppStoreに出してもいい質だと思ったので出した.

というわけで審査に通ったのである.

fascia

fascia

  • Akira Fukushima
  • Productivity
  • Free

何ができるの?

githubに同期するtrelloみたいなもん. project開始時にリポジトリを選べるので,そこで同期設定をしておくと,タスクはissueに,リストはlabelに同期される.

project開始時にリポジトリ設定をしないと,リポジトリから独立したプロジェクトとして管理できるので,こいつはgithubとは一切関係ないものとなる.

いろいろ考えたけど,登録フォームとか作るのがめんどくさいのでアプリ版はgithub認証しかできない.

中身の話

iosなのでswiftで作っている. これは,開発し始めたのが2年くらい前なので,流行りに乗ってRxSwiftを全面的に使っている.

ディレクトリの割り方はいまいちだと思って,今見るとちょっと公開するところはある. あと,ViewController -> ViewModel -> Modelまでの流れがちょっと遠くて,バインドしまくりなのがいまいちだった. 普通にリアクティブにするだけならsubscriberを返し続ければいいだけなんだけど,いろいろバインドしたくて,ViewController側ではだいぶDriverを多用している.

UIKitはかなりの部分でrxメソッドを提供してくれているので,あまり困らなかったのだが,API通信にAlamofireを使ったら,これはちょっと大変だった. 結局RxAlamofireを使わせてもらっているが,こいつの更新は他のライブラリよりちょっと遅めなので,毎回更新がちょっと遅くなる.

あと,タスク移動時のUIは,Drag & Dropを作ってもいまいち使いにくいだろうと思って,こんなのを自作している.

f:id:h3poteto:20180716221231p:plain:w200

タスクを長押しすると,移動先の候補が出てくる.これはリストの頭文字+リストに設定されている色(つまりgithubのlabelの色)になっているので,これを押すとタスクを移動できる. このUIは全然使えそうなライブラリがなかったので,ほぼすべてを自力で計算してやっている. 座標計算をひたすら繰り返すので,あまり綺麗なコードではなくなってしまった.

とりあえず俺は満足している

俺が使う分には満足している. 特に大きなバグもない.まぁまだちょっと足らない機能はあるのだが…….

ただ,これもOSSにしているので(ライセンスの設定してないけど多分MITあたりにすると思う),適当にissueをくれたら治すかもしれない.

github.com