俺 Pedia

窓際エンジニア(仮)の日常

CMStepcounterの挙動が(僕にとっては)辛い件 ②

あれから引き続き歩数計機能の検証を続けています。
 
現時点で複数台の端末で検証しましたが何れの場合も程度の差はあれ歩数計の過去データがやはり勝手に更新されている状況が発生しそれを止める手段は有りません。
 
以下の表はある日の私の1日の歩数データです。
 
左のデータは歩数を取得した時点の値で、右のデータは約1日後に同じ期間の歩数を取得し直した結果です。
あまり細かいデータとしても見辛いので1時間単位としてありますが、取得間隔を15分としても5分としても結果は同じになります。
 

計測期間 初回計測(歩数) 翌日計測(歩数) 変化量
  0時(00:00〜00:59)   0歩   4歩   +4歩 
  1時(01:00〜01:59)   0歩   3歩   +3歩 
  2時(02:00〜02:59)   0歩   4歩   +4歩 
  3時(03:00〜03:59)   0歩   4歩   +4歩 
  4時(04:00〜04:59)   0歩   3歩   +3歩 
  5時(05:00〜05:59)   0歩   4歩   +4歩 
  6時(06:00〜06:59)   0歩   3歩   +3歩 
  7時(07:00〜07:59)   0歩   4歩   +4歩 
  8時(08:00〜08:59)   542歩   523歩   -19歩 
  9時(09:00〜09:59)   481歩   497歩   +16歩 
 10時(10:00〜10:59)   0歩   6歩   +6歩 
 11時(11:00〜11:59)   75歩   43歩   -32歩 
 12時(12:00〜12:59)   606歩   561歩   -45歩 
 13時(13:00〜13:59)   4069歩   4136歩   +67歩 
 14時(14:00〜14:59)   1428歩   1421歩   -7歩 
 15時(15:00〜15:59)   0歩   5歩   +5歩 
 16時(16:00〜16:59)   0歩   5歩   +5歩 
 17時(17:00〜17:59)   0歩   5歩   +5歩 
 18時(18:00〜18:59)   362歩   300歩   -62歩 
 19時(19:00〜19:59)   0歩   38歩   +38歩 
 20時(20:00〜20:59)   463歩   489歩   +26歩 
 21時(21:00〜21:59)   97歩   97歩   ±0歩 
 22時(22:00〜22:59)   0歩   0歩   ±0歩 
 23時(23:00〜23:59)   0歩   0歩   ±0歩 
 24時間の合計歩数   8,123歩   8,155歩   +32歩 

 
21時以降のデータは変化がありませんが、おそらくこのデータも後に変化するのではないかと思われます。
 

なお、このデータの変化ですが6時13分の再計測までは左の計測時と同じ値が取得されました。しかしその後6時28分に計測すると右のデータに変化していました。
つまり、6時13分〜6時28分の間にデータが変更されたという事になります。

 
さて、このデータからわかる事が一つあります。
それは、変化前と変化後で正しいと思われるデータは変化前のデータだと言う事です。
 
なぜその事が断定できるのかという理由ですが、まず1つ目は深夜帯のデータです。
 
0時台〜7時台のデータは元々は0ですが、変化後は3〜4歩になっています。
大抵の場合私の就寝する時間は3時〜5時頃で起床が7時30分頃ですので、就寝している時間を除くと大体この時間帯は基本的に机の前でパソコンと格闘しているか、またはスマホの操作をしています。
ただ、このデータは開発専用端末のものである為、外出の時(出勤、昼食、退勤等)を除くと基本机の上でデバッグ作業で操作する時以外は動かされる事が有りません。 また、就寝時には出勤までの間受電の為机の上にありますので、就寝時の揺れ等による歩数のカウントは発生しません。
この事からそれらの時間帯に歩数が計測されるという事は実際の行動と一致していない事がわかります。
 
何れにせよ、少なくとも5時台や6時台に歩数が計測される可能性は非常に低い為、結論としては変化後の値はおそらく正しくない値であるという事が推測されます。
 
2つ目は活動時間の傾向です。
 
これは1つ目の就寝時間の値の考察と同じですが、例えば、勤務のある日は私の8時過ぎに自宅から会社に移動し、9時過ぎから13時30分頃までデスクワークを行っています。
その後13時30分〜14時頃に昼食の為外出し、14時30分〜15時頃に会社に戻りまた夕方までデスクワークを行います。
そして夕方18時頃に仕事を終え帰宅しますがこの日は外食をしていましたので19時にお店に到着し、1時間30分ほど食事をし、そこから自宅までバスと徒歩の組み合わせで帰宅しました。
 
よって15時台〜17時台、19時台は0歩である事が感覚的なものですが当日の行動に一致した結果であり、その事からも変化前のデータの方が正しい事が推測されます。
 
ただ、前回の記事でも書きましたがこの変化は1度のみではなく複数回生じる為、最終的にどの値が本当に正しい(概ね自身の行動に一致している値と解釈できる)のかという結論はだせません。
ここではあくまでも初回計測の値がこの日の結果だけを見ると私の行動に忠実であったという感想となっている状況です。
 
そもそもが厳格な歩数を計測しなければならないという需要は低く、利用者としては違和感を感じない程度の結果が得られれば不満はないと思いますのでこの結果で十分(5%程度の計測結果の変化が生じる事実)だと思います。
 
ただその一方で開発者として考えると“計測された値が変化する”という事実はロジック上想定していないと色々と不都合が生じる恐れがあります。
 

例えば、時間別の歩数と24時間歩数を個々に計測してしまうと合計値が一致しなくなる恐れが有る等

 
iOS8へアップデートした結果であったり、またiOS8からはHealthKitという新しいプロダクトも出てきていますので、この辺りとの関係性も時間があれば調査してみたいと思います。