2017-11-14 10 views
-2

私は新しいプロジェクト(学習目的)を開始していますが、次のシナリオで使用するのに最適なソフトウェア設計パターンが何かを判断しようとしています。iOSアプリケーションの状態/データを処理するための最善のデザインパターン

私は複数のWebサービスからダウンロードし、後で表示するために私のアプリのどこかに保存する必要があるいくつかのデータがあります。ただし、各データ(教師、学生のリストなど)は、1つ以上の特定のビューコントローラ(たとえば、teachersViewControllerおよびstudentsViewController)でのみ使用されます。

私は、AppDelegateを使用して変数(ApplicationDataのようなオブジェクト)を格納することは悪い習慣であり、この例ではさらにデータアクセスを制限したいと考えています。

どのデザインパターンを選択すればよいですか?私は依存性注入について何かを読んだことがありますが、私はそれについての手掛かりもなく、この質問でも助けになっています。それが助けになると、説明のある例がうまくいくでしょう。

+0

あなたのアプリケーションはサーバークライアントアプリケーションとして機能するか、すべてのデータを永続化する必要がありますか(オフラインで使用するなど) – kirander

+0

データを保持する必要があります。 – Exprove

+0

あなたの記事に投票の注釈やアドバイスを追加しないでください。これはあなたの背中にターゲットを描くのと同じように、ほとんどの読者には役に立たないことです。もしあなたが好きなら、それをコメントとして追加してください。 – halfer

答えて

0

ダウンロードしたデータを保存するには、何らかのデータベースが必要です。良い選択肢はRealmとCore Dataです。データを処理する正しい方法は次のとおりです。

  1. データが既にDBに存在するかどうかを確認し、利用可能であれば表示します。
  2. サーバーからデータをダウンロードまたは更新し、オブジェクトに解析します。
  3. オブジェクトをDBに保存します。
  4. DBから取得したデータをユーザーに表示します。

必要に応じてデータをダウンロードします。生徒とVCを開くと、生徒データのみをダウンロードします。

EDITED:アプリケーションのすべてのデータを開く必要がある場合は、最初の画面が開く前にロードしてDBに入れます。次に、DBを使用してユーザーにデータを表示します。

+0

アプリケーションの読み込み画面があるので、アプリケーションの開始時にデータを準備したいと思います。セグの間に約20秒間待つのは悪いユーザー体験です。 – Exprove

+0

@Exprove DBからキャッシュされたデータを使用する場合は、最初にロードするデータが必要です。しかし、実際にデータの小さな部分を20秒以上ロードすると、開始時にすべてのデータをロードするほうがよい(ただし、20秒以上の時間がかかります)。私は答えを編集しました。 – kirander

+0

あなたは、データベースに問い合わせるためにそれぞれのセグメで私に言っていますか?それは少し遅くないでしょうか?編集:私は準備メソッドがあることを知っているが、まだそれは良い練習ですか? – Exprove

関連する問題