💾

SwiftData

iOS 17+

A modern framework for data modeling and management using Swift macros and native Swift types. SwiftData provides a declarative approach to persistence with automatic CloudKit sync support.

Data Persistence
Official Apple Documentation →
iOS Version Compatibility
89.6%
coverage

of iOS users worldwide can use SwiftData (iOS 17+ required)

iOS VersionMarket ShareStatus
iOS 18.724.1%Supported
iOS 26.222.9%Supported
iOS 18.619.7%Supported
iOS 26.17.7%Supported
iOS 18.55.0%Supported
iOS 18.31.6%Supported
iOS 17.61.5%Supported
iOS 26.01.0%Supported
iOS 18.10.9%Supported
iOS 17.50.8%Supported

Key Features

Declarative schema using @Model macro

Automatic CloudKit sync with iCloud

Query data with Swift native types and predicates

Built-in migration support for schema changes

Relationship management between models

Integration with SwiftUI for reactive updates

Code Examples

Define a Model

Use the @Model macro to create a persistent data model

import SwiftData

@Model
class Trip {
    var name: String
    var destination: String
    var startDate: Date
    var endDate: Date
    
    init(name: String, destination: String, startDate: Date, endDate: Date) {
        self.name = name
        self.destination = destination
        self.startDate = startDate
        self.endDate = endDate
    }
}

Query Data

Fetch and filter data using @Query in SwiftUI

import SwiftUI
import SwiftData

struct TripListView: View {
    @Query(sort: \Trip.startDate) var trips: [Trip]
    
    var body: some View {
        List(trips) { trip in
            VStack(alignment: .leading) {
                Text(trip.name)
                    .font(.headline)
                Text(trip.destination)
                    .font(.subheadline)
            }
        }
    }
}

Insert Data

Add new data to the model container

import SwiftData

@Environment(\.modelContext) private var modelContext

func addTrip() {
    let newTrip = Trip(
        name: "Summer Vacation",
        destination: "Paris",
        startDate: Date(),
        endDate: Date().addingTimeInterval(7 * 24 * 60 * 60)
    )
    modelContext.insert(newTrip)
}

Frequently Asked Questions

What is SwiftData?

A modern framework for data modeling and management using Swift macros and native Swift types. SwiftData provides a declarative approach to persistence with automatic CloudKit sync support.

Which iOS versions support SwiftData?

SwiftData is available on iOS 17 and later. Currently, 89.6% of iOS users worldwide can use this framework.

What are alternatives to SwiftData?

Related frameworks include Coredata, Cloudkit. Each has different capabilities and iOS version requirements.