nifty の 5days IoT開発インターンに参加した。
8/29(月)~9/2(金)までの5日間、ニフティの5日間インターンに行ってきた。テーマはIoT開発ということで、15人のインターン生から3人のチームを5つ作って開発に取り組んだ。ほったらかしで作業をやらされるわけではなく、社員の方々がまずアジャイル開発の手法のスクラムについて説明してくれたり、開発中も様々な助言をしてくれた。その他の様々な講演ではniftyの社風や理念、業界のことを学ばせて頂いた。
振り返ると、充実した5日間だった。充実しすぎて少し疲れた。楽しかったけど。
開発内容
概要
自分のチームはBeacon Reminderというプロダクトを考えた。その名の通りビーコンを使ったリマインダー機能を持つAndroidアプリだ。ユーザーは予め「誰」と会ったら「何を」するかを登録し、その人が近くにいるとタスク内容を通知してくれる。
例えば、AさんがBさんにお金を返したいとする。Aさんは「Bさん」に対して「お金を返す」と登録しておく。AさんとBさんが近くにいると「Bさんにお金を返す」というタスクがpush通知される。
また、「誰」が「どこに」いたら「何を」するといった登録もできる。
例えば、Aさんが「Bさん」が「社長室」に戻ったら「書類を提出しに行く」と登録することが可能だ。
なお、このアプリはユーザーがそれぞれ自分の端末にインストールしておかなければならないという性質上、主に社内で使うことを想定した。(家庭で使っても良いのだろうけどあまり需要は無さそう)
構成
今回はiBeaconというデバイスを使用した。社内の各部屋にiBeaconを置いておき、スマホとの電波強度を測定する。測定されたデータはスマホからニフティクラウドのmBaaS(DB)に送信される。スマホ側からはユーザーからの登録によってタスクがmBaasに送信される。そしてmBaaSに保存されているタスクやiBeaconのデータを一定時間ごとに参照し、条件に合う場合push通知を出す。
実装の担当
この構成から見ても分かる通り、今回はサーバーサイドのプログラムを書いていない。楽できるところはとことん楽をした感じ。ニフクラ様様。
自分の担当はというと、AndroidアプリのUI周りを実装した。一人デバイスに詳しい方がいたので、その人にiBeaconの電波を受信するプログラムとかは書いて頂いた。もう一人の方にはmBaaSからデータを取ってくるロジック周りを書いて頂いた。
結果
そこそこ形にはなった。だけどまだ足りない機能はたくさんあるなという感じ。
(タスク作成画面)
最終発表会(プレゼン)
最終日、開発したプロダクトをプレゼンした。とにかく時間が無くプレゼンの直前まで開発をしていたので、あまり良いプレゼンが出来たなかったのが心残り。
感想
今回の開発で自分は結局AndroidのUI部分しか開発していない。スクラム開発はどこいったというほどめちゃくちゃ分業してた笑。(おそらく、分業自体は問題ないのだろうけど、仕組みとか現状抱えてる問題とかを共有した方が良い感じなのだろう)
でもIoTの開発は初めてだったのでもちろん色々と知見が得られた。自分とは違う得意分野が違う人たちと一緒に開発することで得られたものは結構大きいと思う。
お疲れ様でした。