私は現在、App Store に置く予定のネイティブ (Objective C) iOS アプリケーション (iPhone および iPad 用) を開発しています (Mountain Lion 10.8.3 で Xcode 4.6.1 を使用する iOS 6.1)。
このアプリケーションは、オフライン (ネットワークなし) でもアプリケーションを動作させるために、デバイスにローカルに保存されたデータをいくつか持つ必要があります。Core Data は使いやすく、さらに複雑なことを行うことができるため、Core Data を使用することにしました。
質問です... Core Data データベースを使用してアプリケーションを App Store にデプロイする際のベスト プラクティスは何ですか?
1) 空の Core Data データベースを使用してアプリケーションをデプロイし、最初の起動時またはユーザーが更新ボタンをクリックしたときにデータを自動的にダウンロードしますか?
長所:
- ユーザーは時々更新ボタンをクリックして、アプリケーション データを更新することができます (アプリケーション全体を更新する必要はなく、データを更新するだけです)。
短所:
- データベースにデータが取り込まれるまで、アプリケーションは使用できません。
- アプリケーションからの呼び出しに応答するために、どこかのサーバーで Web サービスを維持およびホストする必要がある (ホスティングのコスト、新しい Web サービスを開発する必要がある、別の障害点)
2) 事前に入力された Core Data データベースを使用してアプリケーションを展開し、時々データを変更するときにユーザーに App Store からアプリケーションを更新してもらいますか?
長所:
- アプリケーションは、App Store からダウンロードするとすぐに機能します。
- サーバー側を持つ必要はありません。
短所:
- データを更新したい場合、ユーザーは App Store からアプリケーション全体を更新する必要があります。
サーバー側のアプリケーションを展開する必要がないので、開発者である私にとって最も簡単なのは#2でしょう...しかし、これを行うことさえできますか?iPhone シミュレーターのデータベースを満たすダミー クラスを簡単に作成できますが、このデータベースをアプリケーションにバンドルして App Store にデプロイすることは可能ですか? #1 が唯一の方法 (または最善の方法) ですか? 私が考えていない3番目のオプションはありますか?
これに関するあなたの経験について聞きたいです...そして、あなたが考えることができるアドバイスを投げ込むことを恐れないでください. ありがとう!