Open2
Realm Swiftについて

Realmとは
- データベース
- データは端末に保存される
ユースケース
- サーバにデータを保存したくない時
- 開発者からもデータを見えないようにしたい
- オフライン対応したい(Realmはデータを端末に保存するので通信が発生しない)
できること
- ファイルの暗号化をすることができる
- 暗号化のキーはkeychainなどに保存しとくのが良さそう
データが保存されている場所
- 端末のDocumentフォルダ
/Users/<user名>/Library/Developer/CoreSimulator/Devices/7B81A125-F768-45BC-B6DC-BF9AB67AAA00/data/Containers/Data/Application/79532977-734A-42F9-BC41-F44D561E707E/Documents/default.realm

Tips
- Realm Studioと言うアプリを使って、データの中身を見ることができる(開発時に役立つ)
- ファイルの確認の仕方は、以下のコードをlldbやコードに書けば見れる
- 実機では見ることができないようなので、シミュレータで確認する
// lldb
po Realm.Configuration.defaultConfiguration.fileURL
- 暗号化されているときは、キーを入力すれば開ける
- keyの取得方法は以下
トラブルシューティング
- Realm Studioを開いている状態で、データのCRUDはできない(しようとするとクラッシュする)
Realm file is currently open in another process which cannot share access with this process. All processes sharing a single file must be the same architecture. For sharing files between the Realm Browser and an iOS simulator, this means that you must use a 64-bit simulator.
- データを削除した後に削除したデータにアクセスしようとするとクラッシュする
- 表示する用のエンティティとRealm用のエンティティで分ける