サイバーエージェントのハッカソンに参加した感想

CyberAgentハッカソンに応募しました。Kotlinでこういうときどうすればええんかみたいなツイートに引用RTで反応したらCyberAgentの人だったみたいで締切一週間くらい前に興味あったらやってみてと言われたので最近まともなActivity/Fragment使ったアプリ作ってないなと思ったので参加しました。
github.com

内容

最低でもGitHubのイベントを見るアプリを作るというものです。このAPIの仕様読みましたがあんまりわからなかたり時間かかったりするのでイベント一覧の表示に必要な部分だけパースして表示することにしました。一ヶ月あったらまた別の設計になってたかも。一週間でやったので体は痛いわで地獄を見ました。
Serviceばっかり触っていて、Activity/Fragmentで作るのは久しぶりでした自分はアイディア勝負で設計とかある程度は気にしますが沢山アプリを作るぞって人なので新しい技術とかそこまで積極的に導入しないのでいい機会なのでナウい感じの勉強をしてみました。
Kotlin Coroutinesではlaunchとasync/awaitくらいしか使っていませんでしたがactorを使ってみたりしました。キューを実装するにはこれでええんかなってやってみました。
DataBindingは元々使ってましたのでここは特に新しいことはないですね。
Android Architecture ComponentsのViewModelも使ってみました。それと一緒にBaseObservableを使いたかったのでViewModelを継承してBaseObservableの内容をコピーしたクラスを作成しました。
LiveDataを使ってみたかったので現在のRecyclerViewのポジションを監視して下の方になったら先読みする感じにしてみました。

感想

かなりいい勉強の機会になりました。これのおかげで今作ってるプロダクトにRoomを使ってみました。DroidKaigiでも気になってましたしね、かなりいい感じです。TypeConverterを書けばなんでも突っ込めるし。LiveDataで監視すればViewの更新も楽だしで。
勉強は常にするもんだなぁと思いました。

結果

Androidで優秀賞を頂きました。勉強になればいいやで入賞するとは思っていなかったので嬉しかったですね。
🎉結果発表🎉 · Issue #27 · CyberAgent/git-push-hackathon · GitHub

その後

その後メールが来て学年とアンケートに答えたくらいですね。

でもこれで少し自信がついたので開業することにしました。と言ってもまぁしないと税金が面倒とか前々から思っていたことではあるんですが…。青色申告しないといけないので結局面倒という。 その話は追々。