Konifar's ZATSU

私はのび太の味方じゃないわ、悪の敵よ

カンファレンスアプリを作るということ

DroidKaigiの全てに感謝を。お疲れ様でした。

さて、DroidKaigi2016と2017で2年連続でDroidKaigiのカンファレンスアプリを作ったわけなんだけれども、じゃあ次はどうするのかみたいな話をざっと書いておこうと思う。このブログではいつも雑に思ってることをまとめるのでもちろん考えが変わることもあるし、半ば妄想みたいなもんだと思っておいてほしい。

今年もすごいたくさんの人にコントリビュートしていただいて、2ヶ月弱でPRも300を超えた。もう感謝しかないという気持ちで、毎日楽しくレビューしてはマージしていた。DroidKaigi中何人かに「なんで3時に出したPRレビューできるんですか?」「いつ仕事してるんですか?」みたいなことを聞かれたが、たぶん誤解をしているので余談になるがここに書いておきたい。

まず、PR300件と言うとすごそうだがその粒度やレビューの厳密さは仕事のそれとは全く異なる。小さいPRが多かったし、10秒見て"Cool!!“、"Awesome!!” とかコメントしてマージできることも多かった。10秒で終わるならPRが届いた瞬間に処理した方が相手にとっても自分にとっても嬉しいのでそうしていたというだけで、自分はすごいことは何もしていない。3時くらいにPRレビューしていたのは、ちょうどその頃仕事が忙しくて朝まで家で作業していて、休憩がてらPRも見ていたというだけである。

コントリビューターの方に話を聞くと、1日に30件PRが飛び交居続けるあの前夜祭のような雰囲気が最高で、来年もやりたいという話だった。また、Androidは1年で技術やライブラリが色々と更新されていくので、その年の知見が集まるリポジトリは見てて勉強になるという意見ももらった。率直に言って、そう言ってもらえてとても嬉しかった。

何が言いたいかというと、DroidKaigiにおいてカンファレンスアプリを作るということは単にカンファレンスアプリが欲しいという要望に応えるだけのものではないっぽいということだ。だからこそ、来年どうしようか少し迷っている。

正直に言えば、来年同じようなことはもうやりたくないなぁと思っていて、やるならカンファレンスアプリ自体を抽象化してライブラリなり雛形なりにするかなぁと思っていた。

カンファレンスアプリというのは実装上そんなに難しいものではない。どんな機能が必要かも様々なカンファレンスアプリを見て2回作ってある程度固定化されているなと感じている。面倒なのはセッション一覧のViewをどう最適化するかという点だけかもしれない。カンファレンスの規模に応じて最適なUIは変わるはずなので、そこをどうスイッチさせるかというあたり。と言ってもこれもそんなに複雑なものではなくて、3種類くらいUIを用意しておいて、総セッション数、部屋数、日数、同時並行セッション数あたりの情報を元に最適なUIを勝手に当てはめるようにすればいいだけだと思う。個人的にはこのへんは設定にはしたくない部分だ。

こんな感じのことは前から考えていて、いろんなカンファレンスのスタンダードになるものを作っておく方がCoolだし、カンファレンス運営の観点で言えばもちろん効率がいい。来年は設定ファイルの変更だけでやるで!と考えていた。

ただ、先程書いたようにDroidKaigiにおいてはカンファレンスアプリを作る目的は単に作って使うというだけではなく、その過程を楽しむという人もいるので悩ましいところだ。もちろん自分も楽しかったし勉強になった。今年のリポジトリは去年よりずっと色んなやりとりがあったし、全く同じ作業を繰り返しているわけではない。

まぁカンファレンスアプリを作るということだけを考えると、抽象化すべきだと思う。で、抽象化するならAndroidだけ考えるのは間違っていて、iOSやWebなども含めてやっていった方がいい。ということで、自分は今日からReactNativeをやっていく。

それとは別に、カンファレンスアプリを作るという祭りをみんなで楽しむという観点においては、過去2回やったやり方はわりとうまくいっていたのではないかと思う。ということで、DroidKaigi2018でもカンファレンスアプリをまた作っていきたい。来年自分がやるかはわからないけれど。もしも自分がやるなら、たぶん次はkotlin。