Sponsored Link
Boost Your iOS Workflow with Orka Toolkit
Run ephemeral VMs on any Apple silicon machine for pristine builds and testing. Increase build & test efficiency and minimize failures. Brought to you by MacStadium - the leader in Apple app developer solutions. Download it for free.
News
The curious case of Apple's third-party SDK list for privacy manifests
You presumably know already that the privacy requirement for app submissions came into effect two days ago, but there are some problems and Jesse Squires is here to dig into them. I can see his confusion around the list of included packages, especially SVProgressHUD and SnapKit being included where several popular advertising frameworks are not. I also agree that the lack of links to define exactly which packages are being referenced is baffling. Jesse has more to say, of course. I wonder if weāll see changes to the list in the next few months.
As an aside, we should probably add some metadata to the Swift Package Index to identify these packages to people browsing the index. š¤
Code
Access level on import statements in Swift 6
Is there anything in Swift 6 that isnāt concurrency relayed? Why yes, there is! Pol Piella Abadia writes about a nifty feature first implemented in 5.9 but is on by default in Swift 6.
Subscribing to SwiftData changes outside SwiftUI
What a great follow-on from last weekās article by Finn Voorhees, and I think this situation might be more common in the real world. He gives the example of hooking up a UIKit collection view via an AsyncStream
and a NSDiffableDataSourceSnapshot
.
Configurable button with different states in SwiftUI
Reusing a button for various states of a long-running task can keep the userās focus on the task thatās happening, and it reduces the space needed for multiple controls that are never all in use simultaneously. Thereās no standard control for this, so Danijela Vrzan made one! š
Design
The Sound of Software
This article is the best thing I read this week. Yes, it wonāt be suitable for every app, but Iāll be surprised if you take nothing away from reading this!
I havenāt read the other parts yet, but this is part of a series of articles and every one of them just got added to my reading list. Thereās Serious Play, The Future of Design Tools, and the most wonderfully named post titled The World's Most Satisfying Checkbox. š
Videos
SwiftData
A nine-part series of videos on SwiftData sounds like a lot to chew through, doesnāt it? What if it was from Daniel Steinberg? Now youāre interested? Well, what if I added that theyāre each only about 5 minutes long? Did that trigger your clicking finger? š Great work from Daniel, as always.
Jobs
Framework Developer @ PSPDFKit ā Design API that will affect hundreds of apps, and create UI used by millions of users. Collaborate globally in a small team working on the leading document SDK for iOS, macOS and visionOS. Make the most of a flexible schedule, and attend annual retreats at exciting places around the world. ā Remote (Anywhere)
Don't forget to post any open positions you have available on iOS Dev Jobs!
And finally...
Is your desktop this shiny? ā¤ļø
Comment
Naming things is one of the two hard problems in computer science, and Swift 6 has a ānaming thingsā problem at the moment.
Weāve been repeatedly told that Swift 6 will include some changes that break source compatibility with Swift 5.x. That makes perfect sense, of course. Thatās what a major semantic version should be used for. So far so good. š
But what I said there doesnāt give the whole picture, and thatās where the naming problem comes in. Thereās the Swift 6 compiler, and then thereās āSwift 6 language modeā, and you can adopt the Swift 6 compiler without adopting the language mode. All the strict concurrency checks and data race safety features are in the language mode, and that brings the breaking changes.
You can start using the Swift 6 compiler now (or more likely when it makes it to a beta/release version of Xcode) and then opt-in to the language mode when you feel like tackling the breaking changes. Thereās no imminent deadline breathing down your neck.
None of this is new news. The language mode has been talked about for a long time, but the distinction is subtle and it passed me by until recently, and you may be in the same situation.
A much better person to talk about this would be Holly Borla, manager of the Swift Compiler Team, and it just so happens we recently had her as a guest on the Swift Package Indexing podcast. It was a pleasure to talk to Holly, and we covered this issue in depth as one of several Swift 6 topics.
If you donāt already subscribe to the podcast give this episode a listen and consider hitting that subscribe or follow button in your podcast player. We talk about Swift (including server-side), the development of the Swift Package Index project, and package ecosystem topics. We also highlight a selection of community-written packages in every episode. Give it a try!
Dave Verwer