Section 18/182 menit

18. Ringkasan & Decision Guide

18. Ringkasan & Decision Guide

Flowchart Keputusan

swift
Apakah app perlu persistensi data lokal?
        │
        ▼
    Ya
        │
Apakah target minimum iOS 17+?
        │
    Tidak ──→ Gunakan Core Data (atau GRDB untuk SQL penuh)
        │
       Ya
        │
Apakah butuh raw SQL / custom store / query sangat kompleks?
        │
       Ya ──→ Gunakan GRDB atau SQLite.swift
        │
      Tidak
        │
Apakah app berbasis SwiftUI?
        │
       Ya ──→ SwiftData + @Query + @Bindable (pilihan terbaik)
        │
      Tidak (UIKit)
        │
       Ya ──→ SwiftData + ModelContext manual + UITableView/Collection

Decision Table

Kondisi Rekomendasi
Project baru, iOS 17+, SwiftUI SwiftData — pilihan default
Project baru, iOS 17+, UIKit SwiftData — setup sedikit lebih manual tapi layak
Project existing dengan Core Data Tetap Core Data, atau migrasi bertahap ke SwiftData
Butuh support iOS 16 ke bawah Core Data
Butuh query SQL kompleks / JOIN GRDB atau SQLite.swift
Data hanya di memori (tidak perlu ke disk) @Observable / @State biasa
CloudKit sync tanpa kompleksitas SwiftData + cloudKitDatabase: .automatic
Background import data besar SwiftData + @ModelActor
Perlu Spotlight integration SwiftData + @Attribute(.spotlight)

Poin Kunci

SwiftData adalah evolusi alami dari Core Data untuk era Swift modern. Dengan @Model macro, #Predicate type-safe, @Query reaktif, dan @ModelActor untuk concurrency, developer mendapat semua kekuatan Core Data tanpa boilerplate-nya.

Mulai dengan SwiftData di project baru yang targeting iOS 17+. Untuk migration dari Core Data yang sudah ada, SwiftData dapat berjalan side-by-side dengan Core Data sehingga migrasi bisa dilakukan bertahap modul per modul.

Langkah selanjutnya untuk dipelajari:

  • SwiftData History API (iOS 18) untuk tracking perubahan dan undo/redo
  • Interop SwiftData ↔ Core Data untuk project migration
  • SwiftData dengan Swift Testing untuk test suite yang reliable
  • CloudKit Console untuk debug sync behavior