What changes will ios18 bring to SwiftData?

Asked on 08/04/2024

1 search

iOS 18 brings several significant updates to SwiftData. Here are the key changes:

  1. Custom Data Stores: SwiftData now supports custom data stores, allowing you to use alternative backends like SQLite, remote web services, or even collections of JSON files. This flexibility enables you to use SwiftData's API with a variety of storage backends (Platforms State of the Union).

  2. History API: SwiftData introduces a history API that tracks all changes in the underlying data store. This is particularly useful for tracking local changes that need to be synced to a remote web service (What’s new in SwiftData).

  3. Index and Unique Macros: New macros like #Index and #Unique have been added. The #Index macro makes queries more efficient by optimizing the storage and retrieval of commonly queried properties. The #Unique macro ensures that a set of properties have no duplicate entries (Platforms State of the Union).

  4. Schema Macro: A new schema macro helps avoid duplicate models, making it easier to set up and configure model containers (What’s new in SwiftData).

  5. Expression Macro: This new macro helps optimize queries with complex filters, improving performance (What’s new in SwiftData).

  6. Previewable Macro: The new previewable macro makes it easier to work with your queries while iterating on views (Platforms State of the Union).

  7. Model Container Customization: There are new ways to set up and configure model containers, providing more flexibility in how you manage your data (What’s new in SwiftData).

  8. Tracking Model Changes: SwiftData now provides access to the history of changes in a datastore, making it easy to inspect recent changes. This is useful for tracking local changes that need to be synced to a remote web service (Track model changes with SwiftData history).

For a detailed overview, you can watch the session What’s new in SwiftData.