Open7
[Scrap] iCloud を使った実装方法について調べる
知りたいこと
- iCloud を使用したデータ保存を行うアプリの実装方法
- どの程度柔軟性があるのか
- どんなデータが保存できるのか
- どんなクエリが使えるのか
- その他
- Flutter で使える package があるか
参考
CloudKit を使うべきかどうかの記事
- ファイルを保存して同期したいなら iCloud Document Storage を使おう
- ファイルを保存するだけで同期が不要なら FileManager でOK
- 構造を持たないシンプルなデータなら iCloud Key-Value Storage でヨシ
- 構造を持つデータをデバイス間で共有したいなら Cora Data を通して CloudKit を使うか CloudKit を直接使おう。
CloudKit
CloudKit そのもの設計
- Cloud Kit は CloudKit(root) > Container > Public, Private, Shared database のスコープを持つ
- Private Database は Zone で区分けすることができ、更新頻度などに応じて区分けすることができる
- Public Database は一つの Zone しか持たない。
開発環境
- Production, Development(Sandbox) 環境が用意されている
- 開発が完了後 promotion という手順によって、Production に反映できる
- スキーマの変更はフィールドを足すしかできない。修正や削除は禁止されている(上方互換性)
接続性
- CloudKit Container に保存することで簡単に複数デバイス間、ユーザー同士でデータの同期ができる