心拍情報からストレス傾向を分析して設定した閾値を上回った場合にリアルタイムでHTTPリクエストを送信するFitbitアプリを開発する。なお、送信されるHTTPリクエストはAB-ANGELSの撮影トリガーなどに利用される。
- アプリを起動したままにする方法を探す。どうしてもできない場合はクロックフェイスとして開発する。
- Fitbitの画面が非表示の状態で(1)心拍データの取得、(2)ファイルの読み書き、(3)HTTPリクエストの送信ができることを確認する。
このステップの目標は上記の検証事項を検証すること。 期間は9/19(月)〜10/2(日)の2週間。 このステップでは検証のために下記の機能を備えた心拍ログ収集FitbitアプリとクラウドAPIを作成する。
- 心拍センサーから心拍数を取得する
- 取得した心拍数を画面に表示する
- 取得した心拍数を取得日時と共にファイルに書き込む
- ファイルに書き込んだ心拍データを一定間隔(例: 1分)毎にクラウドAPIに送信する
- クラウドAPIでは受信した心拍データをストレージに保存する
作成したFitbitアプリをインストールした実機を身に付けて一定時間(例: 1時間)経過後に下記2点を確認する。
- アプリが起動したままの状態にできること
- クラウドストレージにデータ(心拍数と取得日時)が保存されていること
クラウドストレージに保存された心拍データから散布図(横軸: 取得日時、縦軸: 心拍数)を作成して可視化し、抜けなくデータを取得できていることを確認する。
このステップの成果物は下記の通り。
- 心拍ログ収集Fitbitアプリ
- クラウドAPI
- 心拍数の動作確認データ
- 心拍データの散布図
アプリを起動したままの状態にできない場合、以降のステップでクロックフェイスとして開発する
このステップの目標は開発目標の実現可能性を検証すること。 期間は10/3(月)〜10/9(日)の1週間。 このステップでは心拍ログ収集Fitbitアプリの機能に加え、下記の機能を備えた心拍スイッチFitbitアプリ/クロックフェイスのプロトタイプとクラウドAPIを作成する。
- ファイルに書き込んだ心拍データからストレス傾向を算出する(ストレス傾向の算出には心拍変動のローレンツプロットを用いる)
- 算出したストレス傾向が一定の閾値を上回る場合にHTTPリクエストを送信する
- クラウドAPIではHTTPリクエストの受信記録をストレージに保存する
作成したFitbitアプリ/クロックフェイスをインストールした実機を身に付け、ストレス傾向が高い状態を検出した場合にHTTPリクエストが送信されることを確認する。
ストレス傾向が高い状態を検出するのが困難な場合、HTTPリクエストの送信条件を「ストレス傾向が一定の閾値を上回った時」から「心拍数が一定の閾値を上回った時」に一時的に変更した上で、運動するなどして心拍数を上げることで動作を確認する。
単純に実装するとストレス傾向や心拍数が閾値を上回った時にHTTPリクエストが頻繁(1秒間に1回)に送信されることになるので、一度HTTPリクエストを送信したら一定の閾値(HTTPリクエスト送信の閾値とは異なる)を下回るまでHTTPリクエストの送信を抑制するなど実装を工夫する。
動作確認後はクラウドストレージに保存された心拍データとHTTPリクエストの受信記録を突合し、正しく動作していることを検証する。
このステップの成果物は下記の通り。
- 心拍スイッチFitbitアプリ/クロックフェイスのプロトタイプ
- クラウドAPI(HTTPリクエストの受信記録機能が追加された)
- 心拍データとHTTPリクエスト受信記録の動作確認データ
- 正しく動作していることの検証結果
このステップの目標は第4ステップで作成するプロダクトの仕様書を作成すること。 期間は10/10(月)〜10/16(日)の1週間。 このステップでは下記を規定する仕様書を作成する。
- Fitbitアプリ/クロックフェイスのユーザーインタフェース
- 設定項目/設定画面
- アプリ/クロックフェイスとコンパニオンの通信仕様
- HTTPリクエストの通信仕様
このステップ計画については先行するステップの実行を通じて得られた知見をもとに変更する。
このステップの目標は第3ステップで規定した仕様書に基づいてプロダクトを作成すること。 期間は10/17(月)〜10/30(日)の2週間。
このステップ計画については先行するステップの実行を通じて得られた知見をもとに変更する。