WWDC 2024 Impressions and insights


Apple Logo

As expected, WWDC 24 was all about AI. Of course we are talking about “Apple Intelligence”.

This week is my yearly “education-vacation” and it has been overwhelming in the complexity of some of the sessions I have gone through. While most of the keynote was about cool new features and better integrations of App Intents to enable “Apple Intelligence”. But my focus was on deeper understanding of what the impact of Swift6 was going to be on my own apps, and to see if I can get better debugging tips to address some performance issues I’ve been having re-writing my app to SwiftData.

Labs

To achieve these goals, I immediately signed for two lab sessions on Tuesday. I got to spend time with the SwiftData team and the SwiftUI teams. Both teams were gracious, knowledgeable, and kind. Helping me to both understand some issues I was misunderstanding, and pointing me to resources I wasn’t aware of. They also helped me raise a very specific feedback, and direct it to a specific team member on the SwiftData team. I have high hopes that my crash will be resolved, as it happens in the background on various devices.

AI and Privacy

As always, I am impressed with Apple’s continual and consistent focus on customer privacy and security. This was reflected in all aspects of the Apple Intelligence presentations, as well as in “What’s new in Privacy.” The use of on-device and Apple’s proprietary cloud for specific AI activities, along with the exposure of specific chat features to third parties (currently only OpenAI’s ChatGPT) when approved by the customer on a transactional level, all keep your data in your control.

Swift 6

The transition to Swift 6 is all about making sure that applications are concurrency safe. I’ve started looking what it will take to transition to Swift 6 in my apps. I believe one of my crashes, which is rare to occur, is caused by a race condition. You start the transition by turning on Strict Concurrency Checking and resolving those issues. Once they are resolved you turn on the Swift 6 compiler setting. From there on out, the compiler will ensure that you don’t introduce data race conditions in your app. Can’t wait to resolve the issues I’ve already identified.

App Changes

I also spent time on how I could remove some external dependencies in my app. The key one right now is how I access the Contacts on the device for sending cards. Apple has improved the security by brining the same limitations that were introduced a while ago for the photos app. I don’t need full, on going access to a user’s contacts… nor do I want it. But I do need to be able to search contacts and pull the name and address into the app to show who a specific card was sent to. After viewing multiple sessions and talking with the SwiftUI team, I think I know what I need to do. This summer should be fun.