Section 15/181 menit
15. Kapan Harus Digunakan
15. Kapan Harus Digunakan
- @Attribute(.unique): Setiap model yang memiliki ID dari server (remote sync) — mencegah duplikat saat sync.
- @Attribute(.externalStorage): Property Data yang bisa besar (foto, video, dokumen) — menjaga SQLite row kecil.
- VersionedSchema + SchemaMigrationPlan: Setiap kali ada perubahan model yang bersifat breaking — wajib untuk app production.
- @Attribute(.index): Property yang sering dipakai di
#Predicatefilter — timestamp, kategori, status. - ModelActor untuk batch: Import/sync data dari server (>100 records) — selalu di background.
- Relationship prefetching: View yang menampilkan list dengan data dari relasi — hindari N+1.
- fetchCount sebelum fetch: Badge counter, empty state check — jauh lebih efisien daripada fetch semua.
- CloudKit sync: App single-user yang ingin data tersinkron antar device tanpa backend custom.
- History tracking: App dengan extension (share extension, widget) yang bisa mengubah data — detect perubahan dari proses lain.
- In-memory container di test: Semua unit test yang menyentuh persistence — test harus terisolasi dan cepat.