SwiftData Nedir? (WWDC2023)

Erdem Papakçı
3 min readJul 4, 2023

--

Yıllar boyunca Core Data, Apple’ın platformlarında kalıcı depolama için tercih ettiği seçenek olmuştur. Ancak geliştiriciler Core Data ile ilgili sorunlarla karşılaşmış ve bu zorlukların üstesinden gelmek için alternatif frameworkler aramışlardır. WWDC23'te Apple, SwiftUI ile sorunsuz bir şekilde entegre olmak üzere özel olarak tasarlanmış SwiftData adlı yeni persistance frameworkü tanıttı. Şimdi sizlere basit bir uygulama ile SwiftDatayı uygulamamıza nasıl entegre edebileceğimizi göstermek istiyorum.

@ Model

Data öncesinde yaratacağımız modelimiz yaklaşık olarak bu şekilde olması gerekiyordu.

SwiftData ile artık bir modeldeki her değişkene @Published ile açıklama eklemenize veya ObservableObjectsınıfından miras almanıza gerek yok. Bunun yerine SwiftData, nesneyi farklı çalıştırmalarda kalıcılığa hazır hale getirmek için gerekli adımları otomatikleştiren @Model makrosundan yararlanarak süreci basitleştiriyor.

Model Container

Verilerin tutulduğu ve uygulamanın schema ve model storagesinin yapılandırmasını yöneten nesnedir ve Model Container’ı WindowGroupta düzenleyebiliriz. Aynı zamanda içerisine birden fazla data modeli de yazabiliriz.

Model Context

Modelleri üzerinde CRUD (Create, Read, Update, Delete ) işlemleri yapmamızı sağlar ve CoreData frameworkündeki ViewContext gibi çalışır. Şimdi verilerimizi kaydettik ve diğer işlemleri tamamladık sırada bu verileri fetchleme işlemimiz kalıyor.

Kaydetme, Silme işlemleri

@ Query

Veriyi view e taşımamızı sağlar ve verinin her değişiminde UI’ı günceller. Data source olarak ModelContext i kullanır.

Aynı zamanda içerisinde filter, order, sort gibi işlemleri gerçekleştirebiliriz.

⚠️ SwiftDatayı yalnızca XCode 15 Beta sürümünde kullanabileceğimizi unutmayalım ⚠️

Ve uygulamamızın sonuna geldik günün sonunda SwiftDatayı kullanarak bir app geliştirmiş olduk.

--

--