いわゆる歩数計の機能を備えるアプリが増えています。単機能な歩数計ではなく、時刻・位置情報と連携させて移動履歴の管理に、体重や摂取カロリーもあわせて記録し健康管理に、1日1万歩に到達したら目標クリアのゲームに、などと歩数を利用したさまざまなアプリが登場しています。
その「歩数」ですが、まったく同条件で利用していたにも関わらずアプリによって多少の差が生じる、という事態はありえます。歩数計機能を持つアプリ2つを同じiPhoneにインストールしても、1日経って確認してみたらアプリAは9,800歩でアプリBは9,790歩という具合にバラつきが出る可能性があるということです。
原因はいくつかありますが、アプリによって歩数データの取得方法が異なる可能性があります。iPhone 5s以降のモデルでは、内蔵のコプロセッサ(ある分野の処理に特化した集積回路)がiPhoneの動きをつねに測定・記録し続けていますが、その記録されたデータを取り出す方法が異なれば多少の差は生じます。
iOSアプリが歩数データを取得するとき、その多くがCoreMotion(CMPedometer関数)かHealthKitのどちらかのフレームワークを参照します。どちらも内蔵コプロセッサのデータをもとに歩数を算出しますが、そのデータは浮動小数点型であり、整数への丸め処理により違いが生じる場合があります。計算開始/終了時刻の違いによっても差は生じますから、アプリごとの差を完全に解消することは困難です。
アプリがどちらのフレームワークを参照するかをエンドユーザが調べる方法はなく、日によって歩数に差が生じないこともありますが、iPhoneには「ヘルスケア」という純正アプリが存在します。このアプリに表示される歩数が正確という前提に立てば、どのアプリの歩数を信用すべきかの参考になるでしょう。