平成最後のハッカソンに参加してきました
こんにちは。マヤミトです。
4/30、平成最後の日に開催されたハッカソンに参加してきました。
平成最後のハッカソンとは
読んで字の如く、平成最後に開催されるハッカソンです。主催はサイバーエージェントで、準備期間が10日もある長いハッカソンです。
詳しくはイベントページへ
参加に至るまで
このイベントをTwitterで知り、平成最後という言葉に惹かれ、僕と大学の尊敬する先輩二人(id:flying_hato_busとid:NoahOrberg)の三人で参加することになりました。 彼女いないの俺だけなので事あるごとにイキってきて心がしんどい。 二人とも技術力が高いので「足引っ張ったらヤバイ!」と思いながら事前に使いそうな技術を調べたりしました(が結局役には立ちませんでした)。
お題公表とチームのテーマ
イベントの参加者募集が開始された時点で「平成にまつわるなにか」だというのは公表されていました。
4/19のお題発表で「平成生まれの私たちが、平成を楽しく振り返ることができるサービス/モノ」と確定し、翌日に大学に集まって会議しました。
「平成を振り返る?」
「そもそも平成ってなんだ?」
となり、僕たちは「平成」を
「僕たちが生まれ 青春を過ごした時代」
と結論づけ、僕たちの青春ってなんだっけと振り返った結果……
青春してねーじゃん!!!!!
となりました。僕は今このブログを書きながら泣いています。
学校の周りの人たちが部活に遊びに恋愛に精を出しているなか僕が何をしていたかといえば部屋に篭りインターネットに黒歴史を量産することです。
そう、言うなれば黒歴史こそ僕の青春です。そんなわけでハッカソンでの僕たちのチームのお題は
黒歴史を振り返る
になりました。
具体的に作るものの仕様としては
- 第三者からのタレコミで黒歴史を投稿
- ユーザー投票で実際に黒歴史としてapproveされた場合、タレコミされたユーザーの黒歴史として登録
- approveする際にブロックチェーンに改竄不可能な状態で永久保存
といった感じに決定しました。
開発
僕はクライアント側(Androidアプリ)担当、@flying_hato_busはサーバーサイド担当、@NoahOrbergはブロックチェーンとサーバーサイド担当で役割を分担し作業していきました。
Androidアプリ(https://github.com/yt8492/EvilEyeClient)
バックエンド(https://github.com/NoahOrberg/evileye)
アプリはKotlinで書き、サーバーとの通信はgRPC + protobufでやりました。
チームのテーマを決めた時に画面設計の殆どを一緒に終わらせたため、10日間をフルに開発に使うことができました。アプリが持つ機能としては
- ログイン/ログアウト
- タレコミの投稿
- 投票待ちタレコミ一覧の表示
- タレコミ詳細の表示
- 投票
- ユーザー一覧の表示
- ユーザー詳細の表示
- マイページ
になりました。ハッカソンで作るアプリとしてはそこそこ画面/機能が多いのではないかと思います。また、通信部分をgRPC + protobufでやるのは初めてだったので、とても勉強になりました。
実際に開発してみた感想としては、gRPC + protobufのおかげで通信部分で詰まることがほぼなく開発が爆速で進んでいきました。protoファイルで型やapiを定義して、自動生成されたJavaのファイルを呼び出すだけだったので、途中で仕様が若干変わってもprotoファイルを書き換えるだけで柔軟に対応できました。これが従来のREST APIだったらもっと時間がかかって期間中に開発が終わらなかったと思います。
発表当日
最終日、平成最後の日にサイバーエージェントのAbema Towersに集まり、最後の開発と発表を行いました。
前日までに殆どの機能を実装を終え、まあいけるやろ!wみたいな気持ちで迎えた最終日でしたが、発表数時間前にバグが見つかったりして結局ギリギリまで作業していました。開発終了直前の土壇場でバグが直って本当に良かったです。
発表は各チームが2分でスライドと動画を使って説明するという形で行いました。自分たちで予め5分くらいのスライドを用意していたのが無駄になってちょっと悲しかったです
会津大学生だけで構成されたチームが3チームあったのですが、まさかそこで黒歴史というネタが被り笑いました。 会津大生過去に黒歴史生み出しがち
正直な感想ですが、どのチームもレベルが高くて頭を抱えました。地方のハッカソンだと間違いなく優勝レベルの作品がゴロゴロと出てきて、まさに平成最後にふさわしいハッカソンだったと思います。
発表のあとはおさわりタイムがあり、他のチームの作品を体験することができました。開発での苦労話なども聞けて面白かったです。
結果発表
1位はGチーム、2位はAチーム、3位はKチームでした。
僕たちLチームは残念ながら入賞できませんでしたが、いいものを作ったという自信はありますし、エンジニアとして良い経験になったと思います。入賞した3チームに心からの称賛を贈りたいと思います。おめでとうございます!
懇親会
前半は同年代と、後半はAndroidエンジニアと同じ席で楽しくお話をすることができました。大学内にAndroidエンジニアがあまりいないので、Androidアプリ開発の話題で盛り上がることができて楽しかったです。また、以前にAndroidの勉強会で会ったことのある人がいて、エンジニアの世界は狭いなと感じました。
最後に
平成最後のハッカソン、その名に恥じない規模とクオリティで非常に楽しく刺激になりました。このような機会を設けてくださったサイバーエージェントの皆さん、共に開発したチームのお二人、そして素晴らしい作品を見せてくださった参加者の皆さん、本当にありがとうございました!