Sponsored Link
Stream
Stream makes it easy for you to seamlessly integrate real-time experiences into your application. Check out our Swift tutorial to learn how you can get started adding in-app messaging or video to your apps!
News
Meet with Apple Experts
I’m happy to see Apple continue to run these events, and the wording in the announcement even mentions that they “take place all year long”. As usual, there’s a mix of session types here, from group presentations through one-to-one consultations and some in-person events for Vision Pro! Take a look 👍
Tools
Bezel
This new app from Mathijs Kadijk and Tom Lokhorst is excellent. It does one thing, but it does it well. If you want to capture an app or anything on an actual device, just plug it in and grab a beautifully framed screenshot or video with your favourite screenshot tool.
Code
Interoperability: Swift’s Super Power
What does it take to build a Swift app for Windows today? If anyone knows, it’s Saleem Abdulrasool, the driving force behind Swift on Windows, who now leads the most ambitious Windows app written using Swift. This is essential reading if you have even the slightest interest in Swift on other platforms.
To be clear, this is not about cross-platform development. It’s about delivering a native experience on Windows using Swift. 👍
Debugging Improvements in Swift 5.9
This post from Adrian Prantl, Augusto Noronha, and Dave Lee on the official Swift blog had me at the first subheading: “Faster variable inspection with p
and po
”, and it only got better from there. What a great set of improvements.
Crossing the Boundary
Matt Massicotte with some tips on dealing with some of the trickier aspects of Sendable and Swift concurrency when moving off the main actor. Does this ring any bells?
My journey using Swift concurrency has been pretty rocky. I have run into a lot of problems along the way. Many were self-inflicted, brought about by having warnings disabled. And then, once I finally turned them on, I was on a mission to address every one. This turned out to be extremely hard.
@Model for CoreData
Do you like the idea of SwiftData but can’t bump up your minimum deployment target yet? How about this from Helge Heß?
My ManagedModels provides a similar API (to SwiftData) on top of regular CoreData, and doesn’t require iOS 17+.
Check out the package and the example app.
Business and Marketing
A Decade
My refresh-monkey’ing on the Pacific Ocean would leave me disappointed. It’d take me ~9 months to get my first press coverage, largely out of “wait, no one has written about this app yet?? This looks like a great app even if I don’t ski!” pity (thanks Brett Terpstra). 😅
It’s never only about sticking with it, but sometimes a little bit about sticking with it. Congratulations to Curtis Herbert on ten years.
Books
A Best-in-Class iOS App
Jordan Morgan’s book series is something special. It’s a design-focused book that includes the code you need to bring his advice to reality, and comprehensive doesn’t even begin to do it justice. With over 1,000 pages of writing, code samples, and a bonus book of tips if you buy the complete series, if it were a physical book, you might need to install more bookshelves!
It’s been in development for … a while, as I predicted the first time I linked to it two years ago:
When Jordan Morgan first announced this book, I remember thinking, “Oh, I’ll link to that when it’s finished”. I didn’t realise at the time that it was four books or quite how expansive his plans for each of them were, and I realised “finished” might leave it in my backlog for a while. 😱
For full disclosure, I received a review copy of the book when it first came out in beta.
Jobs
Senior iOS Developer @ Linearity GmbH – We’re an award-winning design software suite that simplifies the asset creation process. Linearity Curve creates precision vector assets & Linearity Move is an animation software that crafts breathtaking animations in seconds. We’re crafting together a new iOS team, reach out if you're Interested! – Remote (within European timezones)
Senior iOS Engineer @ Luma AI – We are a small AI research and product company working on new kinds of creative tools for 3D. Our mission is to democratize the 3D experience for all. iOS at Luma is at the center of the product universe. We are growing the iOS team from 1-4, please reach out if you're interested! – On-site (United States in CA) with some remote work (within US timezones)
Senior iOS Engineer @ sengaro GmbH – We offer an exciting position in Innsbruck (AT) with technical responsibility and conceptual refinements of our long-term products. They're used in the medical field by paramedics and docs to save lives every day. Become part of it and support people in emergencies! (proficiency in German required) – On-site (Austria) with some remote work (within European timezones)
Is the job market possibly picking up again after a shockingly slow first half of the year? If you know of an open position at your company, let everyone know about it for free by posting it to iOS Dev Jobs.
And finally...
Is your app nose-accessible? 👃⌚
Comment
I was chatting with a friend yesterday, and he asked what I thought of the new Action Button settings screen. I hadn’t seen it as I didn’t buy a new phone, but after a quick demo, I liked it. 👍
Since then, I’ve seen the criticism of this screen being “too much” and some people questioning why it couldn’t be grouped cells in a table view, just like all the other settings.
So why did I like it? First, it’s doing more than it initially appears. It’s not simply a “pick an option from a list” screen. It has some complexity. If you want it to run a shortcut, which one? If set to open the camera, is it for photo or video? Do you want it to activate a focus mode? Which mode? Yes, that UI would be entirely possible with a series of “regular” settings controls, but from what I see in the video, this is much clearer than that would have been.
Is the UI too flashy? I’m not convinced about that, either. To a user who wouldn’t necessarily have remembered that “the new button that replaced mute” is named the Action Button, the visuals immediately explain what’s going on and what effect the setting will have.
But what I liked most of all is that Apple is experimenting inside the Settings app. There are so many settings, and with search sometimes being somewhat temperamental, it all starts to look very samey, and if I get lost navigating it, you can bet many others do, too.
I’m not saying every setting deserves an animation or video or a full-screen experience to replace a toggle or a list, but I am curious to see if we might see more variation in the Settings app in years to come. I hope we do, and if this is a first step towards it, I’m happy!
Dave Verwer