はじめに
今までは UserDefaults や @AppStorage を使ってデータを保存していましたが、
これからチームで 大容量のデータを扱うアプリ を作っていく上で
Core Data は避けて通れないと思い、触ってみました。
最初は DataModelの設定 で少しつまずきました。
Core Dataとは?
Apple純正のデータ永続化フレームワークです。
UserDefaultsよりも複雑なデータ構造を扱え、
アプリを閉じてもデータがしっかり保存されます。
実装構成
今回は3つのファイルを作成しました👇
1️⃣PersistenceController.swift
→ Core Data全体を管理するクラス
2️⃣MemoViewModel.swift
→ データの追加・削除を担当
3️⃣MemoView.swift
→ UI部分(入力欄+リスト表示)
1️⃣ PersistenceController.swift
Core Dataの「土台」を作るクラスです。
.xcdatamodeld の名前(今回は "Model")を指定します。

2️⃣ MemoViewModel.swift
データの追加・削除を行うロジック部分です。
(ViewとModelの仲介役=ViewModel)

3️⃣ MemoView.swift
UI部分。
TextFieldで入力 → ボタンで保存 → Listで表示・削除できます。

4️⃣ Appエントリーポイント
Core Dataの context を全体に渡しています。
この.environmentがないと他のファイルで使えません。

🔍 完成イメージ

入力 → 「追加」ボタンで保存
下のリストに自動で反映
スワイプで削除も可能
💭 まとめ
UserDefaults は「小さいデータ向け」
Core Data は「複数のオブジェクト・大量データ向け」
MVVM構成にすると責務が明確でテストもしやすい!