« 泥酔ポータルZ、はじめました | Main | ArduinoのスケッチをGithubで管理する »

2015.06.18

ハッカソンに向けて磨くべき技術

最近、とあるハッカソンで戦ってきました。相変わらず反省しまくりですが、今後、こういう技術を磨くといいかなと思うことがあるので、書き散らしてみます。

モバイル

個人的には専門外ですが、ハッカソンの当日に集まってチームビルディングする場合、仮に飛び道具的な技術を持っていたとしてもイメージが合わず、無難にスマホアプリを作ろうという落とし所になることは多々あるかと思います。

審査項目に縛りがない限り、iOSが有利とかAndroidが有利といった話は聞いたことがないですし、ネイティブではなくMonacaのようなハイブリッドで書いたから不利とかもないと思います。審査という観点で言えば、むしろデザインが重視されることが多いようです。

チームで戦うことを考えると、最低でもHTTPでAPIを叩いて、JSONで受け取ったデータを表示するぐらいはできないとサーバサイドのエンジニアと連携できないのと、欲を言えばBluetoothを使えるようになっておくと、ハードウェア連携とか差別化できていいかと思います。

サーバサイド

RubyでもPHPでも、お好きな言語でよいかと思います。というか、ハッカソンのプレゼンで開発環境を語ってる人は、ほんと稀です。

ちょっとだけ脱線しますが、プラットフォームぐらい使い慣れたものを使えばよさそうなのに、開発者でない人から、AWSで作ったほうがポイントが高そうだとか、Microsoftが協賛してるからAzureがいいとか、よくわからない論争に巻き込まれることがあります。

PHPを素(=フレームワークなし)で書けるようになっておくと、様々な環境で動かせますし、APIのサンプルコードも多い気がしますので重宝すると思います。

ハッカソンのことだけを考えると、早くチームメンバーに動いているところを見せ、ブラッシュアップやプレゼンの準備に時間を割いたほうがよく、設計の堅牢さとかメンテナンス性は優先順位が低くても仕方ないかと思いますが、そこはエンジニアの性格によるところでもありますね。

フロントエンド

いわゆるJavaScript界隈ですが、あまり参加者同士で議論したことがないので、よくわかりません。ReactとかAngularでハッカソンを戦ってる人とかっているのかな。

限られた時間の中で、そんなに複雑な作り込みをしない前提で考えると、jQueryでゴリゴリ書くのがハッカソン向きでしょうかね。

また、デザイナー不在のチームになることも少なくないので、Bootstrapテーマとかを見つけて最低限の見栄えを整える技術は持っておいて損はないかと思います。

ハードウェア

過去に何度かセンサを持ち込んで参加したことがありますが、なんかよくわかりません。綺麗に仕上がったスマホアプリと、不格好なハードウェアでは、スマホアプリに軍配が上がるのは仕方ないと思います。かといって3Dプリンタやらレーザーカッターをハッカソンの期間で駆使するのは現実的でなく、アクリル板をPカッターで綺麗に切ったり、ホットボンドとかレジンとか、とにかく短期間で見せる技術も兼ね備えなければいけないという点で、他の技術に比べてハードルが高い気がします。

過去に、Maker Faire Tokyoとかで展示した作品をハッカソンに持ち込んだことがありますが、ルールとか、他の参加者から見てどうなのかとかは気になりました。このあたり、どうするのがいいのか見いだせず。

最後に

限られた時間で作らなきゃいけない場合、新しく調べるより、過去に動かしたことのあるものを組み合わせたほうが確実だったりします。なので、結構な頻度で自分自身のブログやらQiitaを検索してコピペしてます。技術を磨くだけでなく、普段から書き残して再利用できる状態にしておくと便利です。

ハッカソンって、そんなにハードル高くないと思うので、ひとりでアプリとかWebサービスを作れる人は出てみるといいと思いますよ。

|

« 泥酔ポータルZ、はじめました | Main | ArduinoのスケッチをGithubで管理する »