Sponsored Link
Adopt a User-Centric Process and Elevate Your App
We’re thrilled to announce yet another major Instabug update to empower mobile teams to deliver 5-star experiences. Discover the revamped In-App Surveys, the new features and experiments dashboard, web view performance monitoring, and much more. Read More.
News
Swift 6.0 Release Process
Well, here it is! Swift 5.10 will officially be the last release of Swift 5, and a release branch for Swift 6.0 will be created on March 15th, just a couple of weeks away. We just finished processing Swift 5.10 compatibility on the Swift Package Index and already have plans for what we'll do for Swift 6 compatibility testing in progress!
Tools
Sonar
I talked about platform-fit in today’s comment, so you won’t be surprised to hear that a native Mac app for dealing with GitHub and GitLab issues interests me! That’s exactly what Sonar is, and it looks good. I’ll try it for the next couple of weeks and see how I fare with breaking the habit of opening GitHub in a browser.
My only worry with apps like this is that if they are not successful enough to support the further development needed not to lag behind feature development from the official services they interact with (GitHub and GitLab in this case). I’ll keep my fingers crossed that the audience for this app is big enough!
Modding Plugins back into Xcode
While Bryce Pauken’s post about his XcodePluginLoader tool is interesting, I’m not sure it’s a great idea to get comfortable depending on Xcode plugins. Apple has made it clear that plugins are not important enough to them to warrant the risks of opening things back up, and what works today may not work tomorrow.
If you want an extremely customisable editor with great support for Swift, it already exists.
Code
On-device ML research with MLX and Swift
I feel like it would be really easy to miss this important sentence in this post from David Koski, Awni Hannun, and Ronan Collobert:
MLX is intended for research and not for production deployment of models in apps.
What it does show is a continued commitment from Apple to on-device processing when it comes to ML.
Designing APIs with typed throws in Swift
Typed throws are coming to a future version of Swift, but this great post from Donny Wals also covers how you can be in great shape with your error handling without them, as he’s a little doubtful that they’ll catch on.
Embedding a privacy manifest into an XCFramework
Embedding privacy manifests in libraries/frameworks is a great idea, and I am looking forward to a future where it's so much easier for developers to figure out what the packages they depend on are doing. The experience Joe Heck had trying to get it working sounds traumatic, though! I expect this post to become the definitive search result on Google for anyone trying to get this working.
Books
The Mystery of the Mutating Mannequin
Daniel Steinberg's books always take a slightly different approach to teaching, and from the title of his new book on data flow in Swift apps, this one is no different. I'm confident it'll be just as good as his other books, though! It starts with the simplest method of saving state with SwiftUI and ends with a relational data model using SwiftData.
Jobs
Senior iOS/macOS Developer @ Paste – Joining Paste means crafting impactful, user-focused products alongside a team that values innovation, flexibility, and a culture of collaboration. Dive into projects that push the boundaries, enjoy freedom in how you work, and help shape the future of productivity tools. – Remote (within European timezones)
Is your company hiring? Don't forget that you can post any iOS/macOS/Swift job for free over on iOS Dev Jobs. What are you waiting for?
Comment
I know it's possibly a less popular opinion recently, but I still love and appreciate developers who put their time and attention to platform fit on Apple platforms.
I also love it when Apple makes it easier for developers to pay attention to platform fit through their APIs. The big win in this area from the last few years has been SwiftUI. When you abstract the details of how apps work away from the underlying platforms and specific controls, you lose some control but gain masses of platform fit. What you lose in customizability, you get back multiple times over in knowing your app will look good on any sized device.
But there have been a couple of APIs from this year's releases that take this even further. I'm thinking specifically about TipKit and ContentUnavailableView. The entire purpose of both these APIs is to take a common feature inside apps and create standard visual style and interaction rules for them.
Should developers add an image accompanying a message when there's no content available? Should the image be above or below the message? What should the spacing be? You don't need to worry about any of it. TipKit is an even better example. I've seen so many implementations of this kind of feature, and there's usually at least one aspect of the implementation that feels a little weird.
What both these APIs have in common is neither of them will "make or break" whether an app will be successful. The less time the designer and developer have to think about these features, the more time they can spend on their app's visuals and core interactions.
It's also a great sign that SwiftUI is maturing when the APIs can cover features like this. I have nothing bad to say about either of these two additions to this year's SDKs.
Dave Verwer