2016年を振り返って

2016年もあと一時間半くらいですし、振り返りなどやります。

仕事

今年は主に改善業務をやっていました。

大体下記のような感じです

  • CIでAndroidLint/ChecyStyleかける
  • モデルクラスの大改修
    • APIリクエスト周りの処理をモデルクラスから切り出す
    • Realm周りの処理をモデルクラスから切り出す
    • モデルクラスが互いに依存しあわないようにユースケース層を作る
    • テスト、テスト、そしてテスト

モデルクラスがAPIリクエストをすればDBアクセスもして、モデルクラスが別のモデルクラスをメンバー変数に持ってたり…と結構マッチョな感じになっていました。

そこで、単一責務を意識してAPIリクエストをするクラスやDBアクセスするクラスを作り、モデルクラスはそれらを相互に橋渡しするだけのクラスにしました。最近流行りのレイヤード・アーキテクチャってやつです。

また、モデルクラスが互いに依存せず、それぞれの役割に徹するためにユースケースクラスを用意しました。モデルクラス間で行ったり来たりするような処理はここに書いていく感じです。
ここも(ユースケースクラスと言うくらいですから)単一責務を意識して、一つのユースケースクラスが複数の仕事をしないように心がけてます。

あとはリファクタリングしたところはしっかりテストを書いてました。弊社アプリのテストは儂が育てた、といってもあながち間違いではないですねw
Realm周りは無理やりバックグラウンドスレッドでRxできるようにしているんですが、まあ無理やりなだけあって限界が来ています。今後Realmの公式Rxサポートに書き換えるにあたってこのテスト達が役に立つはず…

来年もしばらくはモデルクラスのリファクタリングをしてるんでしょうが、View周りも課題が山積みなので早いうちに手をつけたいです。

個人

contribution

今年の実績はこんな感じです。

contributions: 3650
longest streak: 371

去年の9月あたりから意識して毎日コード書くようにしてました。上記のグラフ自体は仕事のコードも含めたものですが、毎日なにかしら自分のコードも書くようにしてます。

たとえ一日一時間だったとしても、毎日続けていれば結構な量になります。365日続けてれば365時間ですし、まあそんだけやってれば何かしら成果物できます。

そんなわけで今年はライブラリ2個とアプリ1個が成果物です。

LicenseAdapterはOSSライセンスを表示するRecyclerView用のAdapterです。
今のところライセンス管理は自分でやらなきゃなのでGradle plugin書いてライセンス一覧のjsonファイル出力したいなー、とかそんな感じ。

Simple PreferencesはSharedPreferences周りのコードを自動生成してくれるライブラリです。Annotation Processorの秀作として作りました。"Simple~"なんてエンジニアにあるまじき名前をつけてしまったのはちょっと今でも後悔してるんですが、まあわりとシンプルにまとまってると思います。
Annotation Processor結構面白いので来年も何かしら作りたい。

Monotweetyは通知エリアからツイートするだけのシンプルなTwitterクライアントです。去年のOmnitweetyに続き、Twitterをちょっと便利にするアプリシリーズ。
Kotlin使ってみたり、ConductorでViewベースFragmentレスで書いてみたりいろいろ実験しながら書いてました。Kotlinはめちゃくちゃ書きやすかったので来年はKotlinで書く仕事したいですね。
Monotweetyのブログエントリはこちら


とりあえず今年はこんな感じでした。

来年もいろいろアウトプットがんばります。

良いお年を。