Techcrunch Tokyo Hackathonに参加した話 / ハッカソンでエンジニアが考えるべき3つのこと

11月の11, 12日に行われたTechcrunch Tokyo・Mashup award併設のハッカソンに参加してきた.我々のチームは,会話中の表情をPUX画像認識APIを利用して解析し,アイコンの表情が変わるようなメッセージングアプリを開発した.発表直前にGCMが機嫌を損ねたりしてテンパったが,Tatsuoさんの圧倒的な発表により,AppSociallyさまから賞をいただくことが出来た.せめてもの恩返しとして記録を残しておこうと思う(AppSociallyの堤さんブログ書くべしとおっしゃってたし)

 

Andoridクライアント: daisy1754/DoyaChat · GitHub

サーバ: yutopio/DoyaChatServer · GitHub

発表資料

 

 

チーム紹介はTatsuoさんの記事にあるので割愛する.Yuto氏とは最近一緒にプロジェクトをやってるので,本当は同じチームになりたくなかったのだけど,チーム組む相手を探すときに自分と興味の方向が被りそうな人が見つからなかったし,企画出来る人・デザイナ・サーバ側エンジニアが揃ってるチーム構成が良さそうだと思って加わった.

 

チームは明るい人が多く,ブレストは盛り上がったけど,決定打はなかなか出なかった.初日の15時頃に全体に作るものを発表する時間があったのだけど,結局そのとき発表したものとは全く違うものを作ることになった.初日は8時に会場が閉まるとのことで,ほとんど作業時間がとれなかった.関係者の方がもしここを見ることがあれば,来年は夜通し使える会場を手配していただけると良いかもしれません.

 

画像認識のAPIが使えるということで,最終的に「会話中の相手の表情を画像認識で解析し,アバターの表情が変わるようなメッセージングアプリ」というアイディアに落ち着いた.チームの中でAndoridアプリの開発経験があるのが自分だけだったので,自然と自分がAndroidクライアントの実装を担うことに.良かったこと・良くなかったことあわせて「3つのこと」としてまとめておく.

 

個人プロジェクト等で"貯金"を持っておくべき

前述の通り,とにかく時間がなかったので,1日目の夜中にチャット機能や,カメラ画像のアップロード,サーバからのpushをもとにアバターの表情を変更するなど,クライアント側の機能を突貫工事でつくった.最近別のプロジェクトでGCMを使ったpushの扱いや,volleyを使ったネットワークまわりの処理を書いてたので,一晩でそこそこ動くものを作ることが出来た.短い期間でものづくりをするにあたり,普段やってきたことを流用出来るとだいぶショートカットになるし,エンジニアとして実装の貯金を持っておくことが大事なのだということを実感した.

 

デモを意識して開発すべし

せっかく動くものを作れたにもかかわらず,発表の前後で結構トラブルが出てしまった.プレゼンのために他人のマシンのエミュレータ上でアプリを動作させる必要があったのだけど,開発時は実機でやっていたためエミュレータ特有の問題に気づかなかったりだとか,優先度低いと思って放置してたバグをデモ中に踏んじゃったりとか.実装的には80%くらい完成させることが出来ていたのに,発表的には20%くらいの完成度しか見せることが出来なかった感じで,情けなかった.最後にデモをやるということを意識して,それにフォーカスした開発や,優先順位付けをするべきだった.

 

優先順位を意識すべし

上と同じ話だけど,2日という短い時間であれもこれも作るというのは難しい.なので,今回はチャット機能をとりあえず作って,そこの洗練に時間を使った.おかげでそれっぽいアプリが出来て開発のモチベーションは保てたけど,Mashup Awardという観点でいうと,チャット部分を作りこむ必要は薄かったようにも思う.むしろMashup部分である画像認識まわりを作りこむべきだった.デザイナさんがAndroid開発初体験だったこともあって,デザインの調整とかにエンジニアリソースをけっこう割いてたけど,結構アドホックに時間を使ってしまった感じはある.あるべき完成像から時間配分を決めてれば,もっと魅力的なデモができたかも.

 

 

上でいろいろ反省してる通り,本来あるべき姿を完全に見せきることが出来なかったのは悔しかったし,今後別のハッカソンとかでリベンジしたい.ただ,チームに恵まれたおかげで賞をいただくことが出来て良かったし,2日でアイディア出しからデモ出来るところまで作るスピード感は楽しかった.もし似たイベントがあればまた参加してみたいし,Techcrunchのハッカソンももっと盛り上がっていくと良いな,と思った.