💾

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.5%
coverage

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

iOS VersionMarket ShareStatus
iOS 18.730.3%Supported
iOS 18.629.8%Supported
iOS 26.110.7%Supported
iOS 18.56.0%Supported
iOS 26.22.0%Supported
iOS 18.31.8%Supported
iOS 17.61.7%Supported
iOS 26.01.3%Supported
iOS 18.11.0%Supported
iOS 17.51.0%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.5% 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.