Swift ile iOS Uygulamalarında Core Data ve SwiftData Mimarisi
Apple Ekosisteminde Yerel Veritabanı (Local Storage) Yönetimi
iOS uygulamanız internet olmadan da çalışabilmeli (Offline-First) ve kullanıcı verilerini cihazda güvenli, hızlı bir şekilde saklayabilmelidir. Bunun için Apple'ın yıllardır dayattığı standart Core Data framework'üdür.
Core Data Bir Veritabanı Değildir!
En büyük yanılgı Core Data'yı SQLite veya MySQL gibi bir ilişkisel veritabanı sanmaktır. Core Data aslında bir Nesne Grafiği Yönetim (Object Graph Management) aracıdır. Arka planda verileri kaydetmek için genellikle SQLite kullanır, ancak sizin doğrudan SQL sorgusu (SELECT * FROM) yazmanıza izin vermez. Veriler NSManagedObject sınıfları olarak RAM'de yaşar ve siz komut verdiğinizde (context.save()) diske yazılır.
Gelecek: SwiftData
Core Data'nın karmaşık kurulumu, XML tabanlı veri modeli dosyaları (.xcdatamodeld) ve eski Objective-C mimarisi, yeni nesil Swift geliştiricilerini her zaman zorlamıştır. Apple, iOS 17 ile birlikte SwiftData'yı duyurdu.
SwiftData sayesinde ayrı bir model dosyası oluşturmanıza gerek kalmaz. Doğrudan Swift kodunuzun başına @Model makrosunu eklersiniz ve o sınıf anında bir veritabanı tablosuna dönüşür.
SwiftUI ile %100 entegredir; veritabanındaki bir kayıt değiştiğinde arayüz otomatik olarak güncellenir.
Core Data migration (versiyon atlatma) sırasında veri kaybedip saç baş yolan iOS geliştiricileri aramızda mı? Realm gibi 3. parti çözümlere geçmeyi düşündünüz mü?
Core Data'nın karmaşık XML yapılarından sonra iOS 17 ile gelen SwiftData ve @Model makrosu ilaç gibi geldi. Kod kalabalıklığı bitti.
Cevap yazmak için giriş yapmalısınız.
Giriş Yap