ユーザー定義のサイトのリストから定期的、散発的、および自動的にデータをダウンロードするアプリを作成して、そのデータに基づいて履歴グラフやその他のレポートを分析および表示できるようにしたいと考えています。
これを Windows で行う場合は、システムのタスク スケジューラを使用します。もし私が Unix を使っていたら、cron を使うでしょう。私が Android を使用していたら、サービスを使用します。iOSでのやり方を知りたいです。
私の調査によると、これを行うためのパブリック インターフェイスがないため、これは iOS では簡単ではありません。ただし、これを行うための回避策がいくつかあります。
アプリの起動時に履歴データを取得する: 私はデータのプロバイダーではなく、サポートするほとんどのデータ プロバイダーは履歴データを保存したり、履歴データへのアクセスを提供したりしないため、不可能です。
自分でデータをダウンロードして、覚醒時にクライアントにプルさせる: 望ましくありません。これには、コストのかかる追加のインフラストラクチャが必要になるだけでなく (これは、無料アプリにする予定のユーザーに料金を請求することを意味します)、一部のコンテンツ プロバイダーはログイン資格情報を必要とします。ユーザーが自分で取得できる情報にアクセスするために、ユーザーのログイン情報を要求したくありません。
最後の更新からタイムスタンプを保存し、タイムスタンプの有効期限が切れている場合にユーザーがアプリをフォアグラウンドに置いたときにデータをダウンロードします。このアプリの全体的な目的は、このデータを定期的に自動的にダウンロードして、ユーザーがアプリを再度開いたときにすべての履歴データを利用できるようにすることです。
ローカル通知を使用する: 以前とほとんど同じです。アプリを起動するにはユーザーの操作が必要であり、アプリの要点は、ユーザーがデバイスを使用していないときでもこのデータを取得することです。
プッシュ通知を使用する: これらは、アプリを起動するためにユーザーの操作を必要とする単なる通知であるため、ローカル通知と同じ理由で使用できません。アプリが起動すると、保留中のすべてのプッシュ通知を処理できるようですが、これらの通知のカスタム フィールドを定義することはできません。
バックグラウンド タスクを使用する: これは技術的にはすべてのオプションの中で最も有望に思えますが、非常に特定の種類のアプリでのみ使用できます。「ニューススタンド アプリ」が最も近いと思いますが、実際にはバックグラウンドでデータをダウンロードすることを目的としています。ただし、その名の通り「雑誌や新聞の号」をダウンロードするためのものです。私がやりたいことをこれに分類できるかどうかは、完全にアプリのレビュアー次第であり、技術的に拒否される可能性のあるアプリは作成したくありません。
だから、私の質問は次のとおりです。私が気付いていないこれを行う他の方法はありますか? すでに似たようなことをしているアプリはありますか?