俺 Pedia

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

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

CMStepcounterについての記事も3回目になりました。
 
今回が最後の記事となる予定です。
なんとか年内の本件の結論が記事にできてよかったです。
 
さて、最後の記事はiOS8にアップデートした結果とiOS8から実装されたHealthKitの関係についてです。
 
まず、iOS8にアップデートする事により歩数計、つまりM7チップの返す値が変化するというバグは修正されているのかという問題ですが、結論としては修正されていませんでした。
 
急遽iOS7テスト用のiPhone5sを新たに調達し、それに伴い現状の機器をiOS8.1.2にアップデートしてテストを続けました。
頻度や誤差の範囲を正確に推測できる程のデータは手元に有りませんが、やはり1日程度経過すると突然過去データの一部が正しくない値を返すようです。
発生する現象もiOS7の頃と同じで、もともと歩数が0歩であった時間のデータに1歩が含まれるようになりもともと取得し記録していたデータと誤差が生じるというものです。
 
この事からiOSのバージョンに関わらずiPhone5s(iPhone6でのテストは行っていない為、現状はiPhone5sに限定した結論となります)では、歩数の過去データは誤差が生じるという事になります。
 
 
次にHealthKitのもつ歩数データとCMStepcounterが返す値の関係ですが、これも一致しない事が判明しました。
細かいデータで比較する程のものでもないのですが、ある日のデータでは1割程度誤差がでていました。
 
この誤差が何によるものであるかという事ははっきりと調査できてはいないのですが、結論として一致しないという事は確定です。
 
このように、iPhoneの歩数計機能を使ったアプリを作る場合はこのような仕様である事を理解して実装する事が必要となりますので、その点よくよく理解していかないといけないなと思いながら年を越したいと思います。
 
ではでは。