Section 1/181 menit

1. Apa Itu SwiftData?

1. Apa Itu SwiftData?

SwiftData adalah framework persistensi dari Apple yang diperkenalkan di WWDC 2023 (Xcode 15, iOS 17 / macOS 14). Framework ini dirancang sebagai pengganti modern Core Data yang lebih ekspresif, type-safe, dan terintegrasi erat dengan Swift macro system serta SwiftUI.

SwiftData tidak menghapus Core Data dari bawahnya — secara internal SwiftData masih menggunakan Core Data stack sebagai fondasi. Yang berubah adalah bagaimana developer berinteraksi dengannya: dari NSManagedObject subclass, XML data model editor, dan NSFetchRequest yang verbose menjadi @Model macro, @Query, dan #Predicate yang sepenuhnya berbasis Swift.

Di WWDC 2024 (Xcode 16, iOS 18 / macOS 15), SwiftData mendapat pembaruan signifikan:

  • #Unique constraint di level macro
  • @ModelActor untuk background processing yang aman di Swift 6
  • Compound #Predicate yang lebih ekspresif
  • History tracking API
  • @Previewable modifier untuk preview di SwiftUI

Posisi dalam Ekosistem Swift

swift
┌─────────────────────────────────────────────────────────┐
│                    Aplikasi Anda                         │
├──────────────┬──────────────────────┬───────────────────┤
│   SwiftUIUIKitBackground Task │
│  (@Query)    │  (ModelContext CRUD) │  (@ModelActor)    │
├──────────────┴──────────────────────┴───────────────────┤
│                     SwiftData Layer                      │
│   @ModelModelContainerModelContext            │
├─────────────────────────────────────────────────────────┤
│                Core Data Stack (internal)                │
│   NSPersistentContainerNSManagedObjectContext       │
├─────────────────────────────────────────────────────────┤
│               SQLite / In-Memory Store                   │
└─────────────────────────────────────────────────────────┘

SwiftData cocok digunakan bersama SwiftUI karena keduanya berbagi model reaktif yang sama. Namun SwiftData juga bisa digunakan tanpa SwiftUI — di UIKit, AppKit, bahkan command-line tools.