心拍数デバイスをアプリに接続しており、さまざまなシナリオで心拍数が失われることを懸念しています。
アプリがフォアグラウンドにあるときは、心拍数をストリーミングしてサードパーティのデータベースに保存しています。それは簡単な部分です。
ユーザーがワークアウト中などにアプリがバックグラウンドになり、心拍数がまだストリーミングされていると、事態は複雑になります。ファイル システムが暗号化されるため、データベースに書き込むことができないため、心拍数をテキスト ファイルに追加し、アプリがフォアグラウンドに戻ったときにそれらをデータベースに取り込むことを考えています。
心拍数は 1 秒に 1 回であるため、さらに複雑になり、アプリが戻ってくるまでに何万回も発生する可能性があります。それらをテキストファイルに追加するのではなく、心拍数を示すファイル名を作成し、ファイル名と作成日からデータを導出することを考えています。そうすれば、ファイルを開く必要はありません。メタデータを読み取り、データベースに読み取られたときにファイルを削除するだけです。
このような一見単純な作業は、さらに複雑になります。Core Bluetooth に対処し、接続を開いたままにする必要がありますが、iOS がアプリが心拍数デバイスを無期限にリッスンできるとは想像できません。ある時点でアプリは終了しますが、心拍数ストリームはどうなりますか?
バックグラウンドでストリーミング心拍数を無期限に処理する実証済みの方法はありますか? どんなアドバイスや経験も大歓迎です!