モダンな Realm も良いですが、長年 Apple によって十分揉まれてきた CoreData も魅力的ですよね!
そんな CoreData が、iOS9 でさらにやさしく進化したようです。
その進化のうちのひとつが、自動マイグレーション!
iOS8以前との違いを見ていきましょう。
iOS8 までの CoreData Lightweight マイグレーション
- Editor -> Add Model Version する
- 新しいモデルの名前を決めて作成
- 新しいモデルを Project Navigator で選択する
- ここで選択をミスると、後でマイグレーションに失敗します(あるある)
- 新しいモデルに Entities や Attributes を追加/削除する
- File Inspector の Model Version を新しいモデルに設定する
- 以上
いつもの手順ですね。
手動でコードを書く手間がないのはとても良いですが以下の点が気に入りません。
- 気をつけないとマイグレーションに失敗する。
- スキーマが変わるごとに新しいバージョンファイルができるのは微妙。
- 1つ attribute をしたいだけの場合もなんだかんだめんどくさい。
そう我々はラクなものが大好きなのです。
iOS9 からの CoreData Lightweight マイグレーション
- 現行のモデルに Entities や Attributes を追加/削除する
- 以上
Awesome!!! It just works mom!!!!!
まとめ
進化を続ける CoreData をこれからも見守っていきたいと思います。
他の iOS9 における CoreData の改善点はこちらをごらんください。
https://developer.apple.com/videos/play/wwdc2015-220/
(自動マイグレーションに関する話題は18:00くらいから)