Data management in iOS apps has evolved in every iOS release since SwiftUI was launched, but
in iOS 17 we're seeing the most dramatic rethink yet: a new, simpler, and also *faster* way
to build apps without ObservableObject.
Better yet, we can now add SwiftData into the mix, and leave Core Data behind for even faster development.
In this workshop we'll cover the full spectrum of data management with Swift, SwiftUI, and SwiftData, giving you lots of chance to see how these technologies link together for effective, modern app development.
In this intro we will explore the new features in Swift Macros and the existing features they build upon. We start the day with an extended look at how we might transition our code from using @Published and ObservableObjects to the new Observable macro. Along the way we'll see an example that uses AsyncStreams which will suggest a first macro of our own that we can create. We'll begin by looking at the various situations in which macros might and might not be appropriate and try to convince you not to reach for them too quickly. We examine the different types of macros that are available in Swift 5.9 and have actual examples of why it's important to select the appropriate type. We'll consider what's involved in basic parsing before digging into parsing an Abstract Syntax Tree using SwiftSyntax to pull out the pieces you need for your macro. We put in error handling and write tests to make our macros more robust. There will be time for us to work in groups on macros suggested by the class. You will need the latest publicly shipping version of Xcode.Get your ticket