先日投稿したGooglefitと加速度センサーに引き続き、今度はiOSでの歩数取得について書きたいと思います。
iOSならHealthkit?それとも加速度センサー?
加速度センサーとは?
(これは前回とほぼ同じ内容です。)
スマートフォンの動きを検知する仕組みのことです。
iPhoneは端末のx,y,z軸それぞれを計測する加速度センサーを内蔵しています。
私がテストしたアプリだと、端末を軽く振るだけで歩数を増やすことができていました。
HealthKitとは?
iPhoneユーザーの方はみたことがあると思いますが、iPhoneに標準装備されている健康管理アプリです。
アプリ内には下記のような機能が搭載されています。
・歩数データの取得
・心拍数や睡眠のデータ収集
・フィットネスデータ(ランニングやウォーキング等)の収集と保存
コロナが流行してからは、血中酸素濃度を測れるようになり、話題となっていましたね。
iOSの歩数系アプリの開発でもHealthkitから歩数を取得してくるロジックを実装すれば、
開発アプリ内に歩数を測る機能(加速度センサー)を直接実装しないで歩数を取得できます。
それぞれの利点(私見も含む)
それぞれのメリット、デメリットはおおまかに下記の通りです。
加速度センサー
(前回と同様)
メリット
・わりとリアルタイムでアプリに歩数が反映できる。
デメリット
・端末の電池消耗が激しくなる。
Healthkit
メリット
・開発したアプリに新規登録したユーザーの歩数について、Healthkitが記録していた分だけ遡って登録される
・開発アプリ側に歩数取得機能をつける必要がない
デメリット
・歩数反映までのタイムラグが15秒以上発生する(公式ではなく、テスト時の私見です)
今回の開発では、
加速度センサーで実装 → Healthkitに変更 → 一部機能だけ加速度センサーにする という事が発生しました。
歩数によってポイントが入る機能と、1ヶ月分の歩数をHealthkitから取得したい機能があり、前者はリアルタイムで歩数取得する必要があったため、加速度センサーの方が有効だということになりました。
Androidと同じく、開発アプリの目的やお客様が重視する点を踏まえて、よりよい実装方法を選択する必要がありますね。