iOSでデータ保存する方法

iOSでデータ保存Tech
この記事は約4分で読めます。

この記事は、iOSアプリでデータを保存する方法をざっくり知りたいと言う方に向けた物になります。


アプリを作ろうという段階で、

アプリを終了した後もデータを取っておきたい時はどうするんだろう?

といった問題があると思います。

そういった課題を、少しでも解決できる手助けができれば幸いです。

それでははじめましょう。

データ保存の種類

まず、iOSでのデータ保存の方法の種類を紹介します。

データを保存するには主に4つの保存方法があります。

  • UserDefaults
  • ローカル
  • データベース
  • KeyChain

データ保持(アンインストール)実装難易度
UserDefaults
ローカル
データベース
KeyChain⭕️

それぞれ用途が違うので、一つずつ説明していきます。

UserDefaultsにデータを保存する

データ保存方法でまず最初に検討する方法です。

実装が容易なので、この方法で賄えるのであれば、ここに保存するのが最適解です。

ただし、便利な機能には制限がつきもので、

UserDefaultsには 4194304byte(約4MB)しか保存できません。 参考

なので、大きなデータを保存するのであれば、別の保存先を検討しましょう。

UserDefaults保存の用途

文字列、数値、フラグ、小さい画像

ローカルにデータを保存する

もっとも原始的にアプリの中にデータを保存する方法で、簡単に言うと、アプリ内のフォルダに保存する方法です。

データ保存自体はそこまで難しい実装は必要ないですが、ロードする時にどういった形で取得するかをしっかり設計しないと

抜け漏れやバグが発生してしまうので、その辺りの仕組み作りが難しいところですね。

ローカル保存の用途

画像、動画、音声などファイルサイズが大きいデータ

データベースにデータを保存する

SQLiteなどを使ってアプリのローカル保存先にデータベースを構築、保存する方法です。

検索や、フィルタリングなどが可能で、高性能なオープンソースライブラリもあるので、それらを使用すれば実装自体はそこまで難しいものではないです。

ただ、DB機能自体が重めな(ビルド時間が大きく変わってくる)機能になるので、保存するデータが2、3個しかないようであれば、

オーバースペックかなと思います。

データベース保存の用途

大量の文字列、数値、フラグ、画像、動画、音声など

オープンソースで鉄板のクライアント向けDBライブラリ Realm の解説を以下でしているので、興味があれば合わせてご覧下さい。

Realm Swiftでアプリの情報を保存しよう

KeyChainにデータを保存する

アプリを削除しても保存したデータを残す事ができ、暗号化されてセキュリティも万全な保存方法です。

Apple公式で大事なデータはKeyChainに保存して欲しいと言っています。

なので、個人情報を保存する場合はここに保存しましょう。

また、この保存方法は、再インストールしても残るデータになるので、

復帰処理をしっかり設計する必要があるので、設計難易度は比較的高めです。

KeyChain保存の用途

個人情報

個人情報自体をアプリに保存する事はかなり危険なので、基本的にはそういった情報はサーバーに置く設計を検討しましょう。

まとめ

iOSでデータ保存の方法をまとめてみました。

それぞれ使用意図があるので、適した保存方法を選定できる事ができる手助けがこの記事でできたら幸いです。

閲覧ありがとうございました!

最後に、

個人アプリをリリースしました。良ければインストールしてみてください🙏

‎Scannable - Simply Recognizer
‎Scannable - Mobile Scanner App. 無料 スキャンアプリ / 書類 スキャン / OCR / 写真 スキャン シンプル操作で画像からテキスト解析! 教科書や手紙、レシートをデジタルデータにして保存できます。 データ化したテキストは編集・共有可能です。 日本語・英語・中国語(簡体字)...

タイトルとURLをコピーしました