サイバーエージェントテクノロジーキャンプ大阪大会に参加していました - blog.jgs.me

どうも、スニッカーズです。(初日にスニッカーズTシャツ着ていったらスニッカーズイメージ定着してしまったじぐそうです)
9/5から約10日間、サイバーエージェントさまの大阪支社で開催されていたテクノロジーキャンプに参加していました。
目標は2人1組でiOS/Android向けアプリを開発する、でした。
僕たちは、オセロテトリスを融合させた「オセリス」というアプリを開発しました。

チームビルディング
キャンプがはじまる前に、「チーム決まったから初日までにアイデア考えたりしてきてチョンマゲ」みたいなメールをいただいていたので、相方のメールアドレスにとりあえずメールしました。
で、それからしばらくして電話がかかってきて「オッスオッス」みたいな話と、「ゲームをつくろう」って話をしました。今だから言える話ですが、キャンプ中に相方からのメールが迷惑メール判定されていることに気付いて、最後までそれを言えず仕舞いでした。たぶん、読み逃していたので電話してきてくれたんだと思います。
あと、この電話のときに「気が合うかなあ、大丈夫かなあ」ってちょっと心配でした。まあ、実際はじまってみると自分とは全く別ベクトルのひとで、コミュニケーションが大変でした。それでも、お互いやる気がすごくあったし、お互いのスキルセットも似ていてそのあたりはやりやすかったです。
終わってみて、他チームを見ているときちんとお互いの考えてることをぶつけあっていたチームはいいチームワークを発揮していたように見えるし、作り込みまでしっかりとできていたなあ、という印象です。

開発全体
はじまったときは、あとから読んで綺麗なコードを書こうとがんばっていたのだけれど、中盤以降は全くそんな余裕がなく、嗚咽しながらひどいバグフィックスを繰り返してしまいました。なので、ソースコードを読まれるのは全裸より恥ずかしいのでいずれリファクタリングしたいところです。
僕たちは、Objective-Cの経験がお互いに無に等しかったので「ここはひとつ自分たちのアセットが活かせるフレームワークを使っちゃおう」と、フレームワークの選定をしました。これは、もしコケたとしてもPhonegapあればなんとか形にはできるだろうな、っていう打算がありました。
そもそも、僕はiOSTitaniumとPhonegapでしか開発経験がなかったので、ちょっと経験のある相方にフレームワークの選定を任せて、その間にバックロジックを作ってしまおう、とりあえずJavascriptで作っておけば移植とかはなんなりとできるだろう、とゆるい見積りでコードを書き始めました。
で、ここはひとつテストファーストとやらでテストをここで先に書いておけば後々助かるだろう!と思って、まずはテストを書くところからはじめました。とはいえ、まだこのあたりは手探り状態だったので、全然できてないかもしれないです。
そんなこんなで、相方が「Unityがいいとおもう!」ってことだったので、Unityのなんやらを相方に任せて、自分は本格的にロジックコーディングに入ってUnityでは値を表示するだけにしよう、と考えていました。Unityさん、なんかJavascriptも使えるらしいしな!って。
テストを書き終わってからはひたすら実装に取り組んでいました。予定より1日遅れでとりあえずのバックロジックは完成して、Unity側とマージ作業に入ったのですが、ここで「UnityのJavascriptは鬼方言でどうも既存のコードを書き換えなきゃいけない」ってことが判明して、相方は凶悪な手動マージ作業に取り掛かりはじめました。
ここで、もう少しUnityのマージ作業に協力しておけばよかったかなあ、とも思うのですがなんせ全くわからない言語だったので、それに時間割くぐらいならバグ出しとかしていよう、と考えてデバッグを繰り返していました。
そんな折、「ブロックを落としたら上方向が無条件でひっくり返る」とか「ブロックが増えるとひっくり返らなくていいところまで大量にひっくり返る」みたいなバグがどんどん出てきて、その修正に追われました。こういうことがないように、テストはちゃんと書いておきたいな、とおもいました。それから、設計がマズかったな、と後悔しました。
それで、お互いに作業を分担して延々デバッグしていました。ついでにそれと並行して、Unityヤバそうだな、最終日に全然できてなかったらつらいな、と危険を察知してPhonegap向けに保険をつくりはじめました。
結果的に、その保険でデモをしたりすることになって少し残念でしたが、Unityに足を踏み入れるとヤバいってことがわかったので収穫でした。(MS教のみんなはC#があるからハッピーかもよ!)
それから、あとで審査員の方とお話をしたときにWebViewだと全然気付かれていなくて、そこはよかったのかな、とおもいました。

キャンプ全般
ある意味かなり放任的にそれぞれがアプリを開発するのは、ちょっと長めのハッカソンみたいな感じで大変ながらもそれぞれに実りがあって、よかったのではないかとおもいます。欲をいえば、あと2日ぐらいほしかったです。
メンターの方は馬車馬の如く、湧いてくる疑問をクラッシュ!デストロイ!ファック!していて大変そうでした。
チーム内だけでなく、チームとチームの間の距離もすごく近かったのでお互いにフィードバックをもらったりすることができたり、キャンプ生という一体感、連帯感がすごくあってよかったな、とおもいました。
それから、何よりも「御社サイコー!御社いい会社ー!イェーイ」(ステマじゃないです)って感じました。
あと、僕はアイデア発表の段階から「三大欲求」(っていうアプリがあるんで、AppStoreに公開されたらみんなDLしよう。ステマじゃないです)がめちゃめちゃ好きで、めちゃめちゃ好きで、好きで、いやもう、それ僕も開発に加わりたいねんけど!?!?!?ぐらい好きで、最終発表のときも僕はぶっちぎりで三大欲求が優勝だったです。

これから
いま、「自分は人生の岐路にいるんだ」というある種危機感のようなものにジリジリと焼かれていて、「自分はどうありたいのか、自分は何をしたいのか、自分は何をすべきなのか」ってよく考えます。ま、そんなの、なるようにしかならないけどいい方に流れる確率を高めることは可能だと思うし、それは実際に自分の目で観て耳で聴いて鼻で嗅いで脳で識らないといけないと考えているので、そういう意味でこのキャンプは僕にとってたくさんのエフェクトを与えてくれたし、僕も誰かに何かのエフェクトを与えることができているといいな。
普段の学業生活ではおそらく関わることもないであろうg91の似たベクトルの同年代と知り合うことができて、僕は幸せです。特に、お互いの得手不得手をカバーできるようなひとや、近くにいたのに知り合うことができなかったひとなどと何か、すごく、楽しそうなことができそうで今からワクワクしています。そのうちすげえサービスとかアプリつくって御社に買ってもらおう。
僕のテクノロジーキャンプはこれでおしまい。

September 16th, 2012 3:53am