アプリケーションの設定を保持するために InAppSettingKit を使用しています。一部の設定項目は Web サーバーに関連しており、Web サーバーに保存する必要があります。それらを同期させ、それらが同一であることを保証するにはどうすればよいですか?
前もって感謝します。
アプリケーションの設定を保持するために InAppSettingKit を使用しています。一部の設定項目は Web サーバーに関連しており、Web サーバーに保存する必要があります。それらを同期させ、それらが同一であることを保証するにはどうすればよいですか?
前もって感謝します。
InAppSettingKit には、クライアント/サーバーの対話に対するサポートが組み込まれていないようです。そのため、独自のカスタム同期システムを実装する必要があります。
あなたの質問は、複雑さが異なるいくつかの可能な解決策を含む非常に幅広いトピックに触れているため、私があなたの状況にあった場合にどのように行うかを説明します.
まず、AFNetworking のようなものを統合して、サーバーとの間でデータを保存および取得するプロセスを簡素化します。これにより、設定をサーバーに簡単に「POST」し、取得したいときに「GET」できます。AFNetworking は非常に強力で、十分に文書化されており、無料です。ここで詳細を学ぶことができます:
ユーザーが変更を加えるたびに、AFNetworking のメソッドを使用して、変更を保存するサーバー上にあるスクリプトに変更を POST します。取得したい場合はGET操作を行ってください。各ユーザーを参照するには、アプリで何らかの一意のキーを生成する必要があります。アプリで何らかのログイン システムを使用している場合は、それに関連付けることができます。ユーザーが複数のデバイスからこれらの設定を取得したいと考えている場合は、おそらく後者を実行する必要があります。
また、競合の処理方法に関するポリシーを決定する必要があります。ローカルに保存された設定がサーバーから取得した設定と異なる場合、どうしますか? ユーザーがネットワークにアクセスできない場合、どのフォールバックを使用しますか?
通常の解決策は、最新のものを取得することです (つまり、更新のためにタイムスタンプを保存する必要があります)。これはおそらく単純なニーズに最も適していますが、ロジックはニーズによって異なる場合があります。
これらの変更をサーバーに保存するには、サーバー側のコンポーネントが必要です。これは Node.js、Ruby、PHP などのスクリプトで、サーバーから送信された入力を受け取り、データベースまたはファイルのいずれかに保存します。これも幅広いトピックであり、サーバー側でのプログラミングのバックグラウンドが何であるかに大きく依存します。
注: このようなセットアップのセキュリティ ニーズを考慮する必要がありますが、保存される設定がまったく機密でない場合、これは最小限になる可能性があります。それ以外の場合は、データを保護するために適切な手段を講じる必要があります (SSL/TLS、パスワードのソルティング/ハッシュなど)。
質問で具体的に「Webサーバー」について言及したので、独自のサーバーがあり、そのサーバーのコードを快適に記述できる(またはその方法を学びたい)と想定しました。これは私が独自のクライアント/サーバー コードを作成する方法であり、多くの利点がありますが、いくつかの設定を保存するだけの場合は、必要以上に過剰になる可能性があります。
iOS 8 では、Apple は CloudKit と呼ばれる簡素化された iCloud システムを導入しました。すべてがユーザーの iCloud アカウントに結び付けられ、セットアップが簡単になるように設計されています。簡単な設定を同期するだけの場合は、CloudKit のキー/値ストレージを使用してそれを処理できます。
CloudKit にはいくつかの欠点があります。保存されたデータは不透明で (つまり、たとえば、Web アプリや Android アプリからはアクセスできません)、iOS 8 以降に限定されており、アプリが非常に複雑な場合はわずかな費用がかかる場合があります。非常に人気があります。ただし、単純な設定の同期の場合、これはニーズに完全に適している場合があります。
CloudKit の価格 (おそらく無料):
https://developer.apple.com/icloud/documentation/cloudkit-storage/
CloudKit に関する WWDC ビデオ:
https://developer.apple.com/videos/wwdc/2014/?id=208
https://developer.apple.com/videos/wwdc/2014/?id=231
CloudKit 設計ガイド:
CloudKit フレームワークのリファレンス:
これが役立つことを願っています。