Section 16/181 menit

16. Kapan Tidak Digunakan

16. Kapan Tidak Digunakan

  • SwiftData untuk data besar (>1GB): SQLite via SwiftData tidak cocok untuk dataset sangat besar. Pertimbangkan custom SQLite atau GRDB.
  • CloudKit sync untuk multi-user: CloudKit SwiftData hanya untuk data per-user di iCloud. Untuk shared/collaborative data, butuh custom backend.
  • @Attribute(.unique) dengan CloudKit: Tidak kompatibel — CloudKit tidak support unique constraint.
  • Fetch semua data untuk search: Jangan fetch 10.000 records lalu filter di Swift. Gunakan #Predicate yang di-translate ke SQL.
  • ModelContext lintas thread tanpa ModelActor: Data race. Selalu buat context baru per-thread atau gunakan @ModelActor.
  • VersionedSchema untuk perubahan minor: Rename property dengan originalName tidak butuh VersionedSchema — hanya untuk perubahan yang butuh data transformation.
  • SwiftData untuk cache data sementara: Untuk data yang tidak perlu persist (cache response API selama session), gunakan in-memory store atau dictionary.