「ビーコンを使ったシステム開発、受注しちゃいました」とのお達し。
ご要件資料は紙一枚!予算は少なめ!工期は超短期!
… 何やらイントロからおもしろそうな案件です。
どうも、技術担当のTと申します。
今回の主な要件としては
– 作業現場に設置された複数台のビーコン機器が信号を発信。これを作業員が携帯するiPhoneで受信。
最寄りのビーコン番号に時刻を添えて、データベースに記録したい。
– ビーコン機器の電池残量が残りわずかになったら、運用管理者にアラートメールを送りたい。
という小規模なものです。ただし、技術要素や開発ツールも初物ばかりで苦戦は必至…
(おまけに「夏期休暇を取得してね!」というありがたーい工期のタイミング)
まずは、落ち着いて要件資料を繰り返し音読してみます。
なるほど「書いていないことは当社の好きにできるんだ」とポジティブ解釈。
良いお客様にも恵まれて、のりしろたっぷり(融通が利く)・想像力を発揮できるお仕事になりそうです。
今回は以下の段取りで進めました。
1. ポンチ絵を手描きで書く。
全体構成と登場人物、担当範囲、データの流れを整理します。
2. キックオフ会議でお披露目するデモ用アプリを急いで作る。
完成品のイメージを共有します。
GUI部分はホビー用のプログラミング言語HSPでをサクっと適当に。
3. API策定とサーバ側モック作り
システムのゴール側から着手します。APIを境界に、アプリ側とサーバ側で作業分担しました。
4. ビーコンで遊びつつ、公式リファレンス・最新情報も確認
メーカー提供のビーコン専用アプリで基本動作を体験して、iBeacon/BLE仕様の調査を進めました。
電池残量情報は採用したビーコンの独自規格信号をパースする必要がありました。
5. 設計・実装・テスト、導入作業用ドキュメント作成
iPhoneアプリ側は Xcode/Swift, iBeacon API, BLE、サーバ側は PHP + PostgreSQL という構成でした。
そして … 無事に校了!納期に間に合いました!めでたしめでたし。
本記事を書くにあたり、振り返り反省会と感想です。
– Bluetooth周りはシミュレーターでは確認できないので、早めの実機準備が有利。
– ネットで検索した記事は参考程度に。やっぱり、公式リファレンス・最新情報の確認が大切。
– iPhoneアプリは、AppStore審査対策など技術以外の課題あり。先人のアドバイスは貴重。
最後に
作業の山場でiPhoneがもう1台必要になったため、
ゲームショップに中古iPhoneを買いに行ったことがいい思い出です。
(勤務中にゲームショップ行くとなぜか背徳感 笑)
良いお客様にも恵まれたこと、一緒に頑張ったSさん、
おもしろくやりがいのある仕事にチャレンジさせてくれたテクノブレイブに感謝!です。