永続化 - shirai/SwiftLearning GitHub Wiki

永続化全般

使い分け

目標

  • 各種永続化方法についてメリットデメリットと共に使い分けについて説明できる

わかったこと

SQLite

1.メリット

  • 編集が容易
  • DBでは共通のSQLが使用できる
  • 条件を指定し検索が行える 2.デメリット
  • マイグレーションの実装が手間 3.どのような時に使うか
  • マイグレーションの必要がない、データなどの永続化に利用する
  • データを検索して取り扱いたい場合

CoreData

1.メリット

  • 編集が容易
  • 自動でマイグレーションが行える
  • 条件を指定し検索が行える
  • SQLではないが、DBと同じ構成でデータを管理できる 2.デメリット
  • 実装が難しい 3.どのような時に使うか
  • 今後マイグレーションを行う可能性のあるデータの永続化を行う際に利用する ** データを検索して取り扱いたい場合

キーチェーン

1.メリット

  • 保存されるストレージが暗号化されているため、セキュア
  • アプリを削除した後も情報が残り続ける
  • PC上に暗号化したままバックアップが取れる 2.デメリット
  • パスワード入力を自動入力にできるため、端末を紛失した際に一緒にパスワードも流出する恐れがある 3.どのような時に使うか
  • パスワードや証明書、秘密鍵などの特にセキュアに扱いたい情報の保存に使う

NSUserDefaults

1.メリット

  • 編集・追加が容易
  • key-valueで値を保存できるため。扱いも容易 2.デメリット
  • 追加が容易なために、どんなデータをどんなkeyで追加したか管理しきれなくなる
  • ファイルに保存されるため、大きな容量だと非効率 3.どのような時に使うか
  • 主に設定値を永続化するために使われる
  • 容量は小さいものが好ましい

Property List

1.メリット

  • あらかじめ定義するのが簡単(Property List Editorを使う) 2.デメリット
  • プログラム上からの編集が手間 3.どのような時に使うか
  • 変更の必要が見込まれないが、enumとして扱うには多すぎるデータの永続化の際に使われる(都道府県など)
  • プログラム上から変更することのないアプリ固有の設定情報
  • アプリで使うURLなどの情報を保存

つぎにやること

■永続化各項目の学習まとめ作成 ■学習まとめ作成