2016-05-19 5 views
0

ヘッダーに示されているように、私は、少数の個人の間でユーザー生成データ(整数、ブーリアン、NSDatesなど)を同期する最も簡単な方法を探しています(現時点では、 )。アプリケーション内では、ユーザーはカスタムオブジェクトのインスタンスを配列に取り込むことができ、このデータはUITableviewを生成するために使用されます。選択グループのすべてのユーザーがデバイスを同期していると仮定すると、すべてのユーザーが同じデータをテーブルビューに表示する必要があります。少数のユーザー間で迅速にデータを同期する最善の方法は何ですか?

私の元のアイデアは、共有DropboxまたはGoogleドライブフォルダのjsonファイルに書き込むことでした。しかし、オンラインで調べたところ、この方法でデータが破損する可能性があることがわかりました。 Cloudkitは公開または非公開(単一アカウント)の同期のみを許可し、その間は何もしません。 Parseを使用することを推奨する投稿がいくつか見受けられましたが、そのサービスは今や途中で終了しています。

これを行う方法は誰も知っていますか(好ましくは無料ですか?

+1

あなたのアプリに2人または3人のユーザーしかいないか、またはアプリが無限のユーザーを持つことを計画していますが、インタラクションは2か3の間でのみ発生しますか?後者の場合は、Firebaseを提案します。 –

+1

CloudKitは公開データベースを使用してこれに対応します。あなたは、各ユーザーがアプリで見る公開データのどの部分を制御するだけで済みます。 – rmaddy

+0

返事をありがとう。当面は、このアプリは個人用であり、ユーザーはごくわずかです。しかし、私はそれを拡張して将来App Storeでリリースするオプションを希望します。 Firebaseのウェブサイトを見て、それは有望そうです。確認してみるよ! – kamisama42

答えて

1

あなたは、いくつかのオプションがあります。

CloudKitデータベースを - CloudKitのデータベースシステムは、正確に何をしたいん公共のデータベースの概念を持っています。これはかなり使いやすく、Appleの開発者アカウントでは「無料」です。唯一の欠点は、アップルデバイス専用(AFAIK)だということです。

Firebase - GoogleのFirebaseは基本的にCloudKitと概念と機能は同じですが、複数のプラットフォームで動作します。 Googleのエコシステムと結びついているため、使用するにはすべてGoogleアカウントを使用する必要がありますが、これは最近の問題です。

レルム - 純粋なユーザビリティの観点から、レルムは私がiOSで見た最も簡単なデータストレージソリューションです。ただし、共有機能は現在制限されており、CloudKitのサポートは予定されていますが、現在はすべてthisです。今のところのローカルストレージしか必要ない場合は、のリストを必ず保管してください。

どのエンジンを選択しても、ユーザーは自分のコードを通じて特定のデータビューに制限されます。私はあなたが作成者のユーザー名ですべてのレコードを保存し、次に、読み取り/書き込み権限を含む別のテーブルを持っていることをお勧めします。例えば、 "maurymarkowitz"のエントリは "bobsmith、ronsmith、jonsmith"です。ログイン時にこれらのエントリを取得し、それらをクエリの入力として使用して、両方のシステムがレコードを取得するために使用することができます。

0

ありがとうございました。私はcloudkit/coredataを使用して終了し、それはちょうど良い私の目的を果たします。私は単純に公開オプションを使用し、データを共有している各ユーザーに一意の識別子を与えました。これらの識別子はアップロードするレコードに付加されます。ユーザーがデータをクラウドと同期させると、アプリケーションはユーザーのIDを含むレコードのみを照会します。このように、iCloudアカウントを共有していなくても、複数のユーザーがデータを同期することができます。

関連する問題