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 #Predicate filter — 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.