スーパーハッカソン2012クライアント編

投稿日:2012-09-26

しばらく間が空いてしまいましたがようやく最終回のクライアント編です。
実質の開発期間が3日間しかなかったので、これまで案件などで作ってきたパーツやらなんやら総動員しました。でもここでも悪い癖が…新しいモノに手を出してしまうという…

今回はバーコードを読み込む機能が肝で、そこは既存のライブラリZBar bar code readerを使いました。初めて使ったライブラリなので、読み取り精度やカスタマイズの不安もあったのですが、精度もそれなりでUIImagePickerControllerに準じたコーディングで導入もスムーズ、静止画からも認識できるしUIのカスタマイズもボチボチなので、この実装がすんなり済んだのはとても助かりました。

バーコードリーダーは新しいモノで仕方がないのですが、次に手を出したのがGTM HTTP Fetcher、通信部分のライブラリです。ASIHTTPRequestをさらにラップしたオレオレライブラリがあったにも関わらず、ASIHTTPRequestが開発終了ということでついつい手を出してしまいました…

必要最低限のドキュメントや資料の少なさには困りものですが、基本的な使い方に問題はなくトラブルなく進められるはず、でした…が落とし穴が…
GTM HTTP Fetcherに問題があった、という訳ではなくサーバー側のFuelPHPの問題なのですが…今回APIを作るのにController_Restを使用したのは前回の記事にある通りなのですが、GETは値が返ってくるのにPOSTだと返ってこない。確か500エラーが返って来てたのかな?すでにうろ覚え…
「そもそもちゃんとPOSTで送れてるのか?」「POSTでパラメータ送れてるのか?」とか潰していきたいのですが、まーそういう確認するために知りたい情報が無いこと無いこと。結局ソースを追って見ていくのがいつもの手段なんですが、今回は時間が限られていたこともあり焦りました…

結局のところ、ただのPOSTの場合FuelPHPはController_RestのPostアクションを呼び出してくれず、「指定してるアクションが存在しねーから500返しとくわ」という状態だったらしく…Controller_RestのPostアクションを呼び出すにはAjaxアクセスであることを明示しないといけない、というのが正解でした。

1行目でAjaxを明示しておいて、2行目はsetPostDataでパラメータをセットしない場合はPOSTにならないので必要に応じて(そういうとこはGETでいいじゃん、というのは置いといて)。

 

自分一人で開発してる時はUIの設計や素材の準備でモチベーションがダダ落ちするんですが、今回はチーム開発。デザイン担当・イラスト担当のスキルが想定の遥か彼方にあり、上がってくる素材を組み込むたびにモチベーション増大。運営側との連絡や統括的な管理はディレクターが一纏め、ということで完全に開発に没頭することが出来る環境の素晴らしさを体感しました。

んでレビューしてもらえる版の完成が土曜深夜を予定してたのに、シミュレータでは動作するのに実機にAdHocで突っ込むとアプリが落ちるバグに遭遇…ネットの向こうで明け方まで待ちぼうけするチームの仲間…申し訳ない…
結局Blocksの実装に問題があったらしく修正修正。結局みんなには仮眠の後に検証してもらい問題なく動作していることを確認してもらいつつ、会場への移動の電車の中で「この機能があったらいいのに」的な追加機能を実装しつつ会場入り、というハードスケジュールで強行したのでした。

「サクっと作った」なんて口が裂けても言えない全力投球でしたが、数日で開発したとは思えない高いクオリティのものが作れたと自負しています(スクリーンショットも出せず申し訳ないです…)。モックアップ作りじゃなく、プロダクトを作る意識で作ってました。モックアップなら前述のPOST問題もGETで良かったんです。でもプロダクトを想定した場合POSTの必要があったのです。はっきり言って自己満足ですけどね…w

2位を頂いたことが本当に嬉しく、1位を逃したことが本気で悔しかったです。
しかし結果の順位より、今回のチームで作品を作れたこと、この機会を与えてくれた運営の皆様に感謝の気持ちで一杯です!

次回は…出る?のかな?(GWあたりだと参加しやすいのかなーと思ったり)


PAGE TOP