Sponsored Link
Forget writing testing scripts, use Waldo.
Waldo is the first fully no-code mobile testing solution. Now, anyone on your team can create reliable automated tests and help you fix bugs before your users find them. Try Waldo now, for free.
News
Swift 5.4 Released!
Along with Xcode 12.5 comes Swift 5.4. Here's Ted Kremenek with a rundown of what's new. You might already be aware of the language enhancements, but did you know about the improvements to developer tooling that come with it? That's a welcome step towards what I wished for recently. 😍
Craig Federighi Explains iOS 14.5's Privacy Features
The reasons that Craig Federighi is so well-loved come across so well in this interview with Joanna Stern. He's funny, charming, humble, and is just as comfortable doing a high-level interview like this one as talking on deeply technical topics. 😍
I'm not linking to this video only to say how great Craig is, though. The video is spot-on if you need a high-level explainer for letting company stakeholders and/or clients know what ATT is all about.
What’s new in advertising attribution technologies
There has been plenty of talk about the restrictions on what you can't do in iOS 14.5, but what about what you can do? SKAdNetwork
is an essential part of tracking the effectiveness of your app marketing efforts in a privacy-aware way, and I think Apple wanted to remind us of that.
Tools
Apply a device mask to screenshots from the iOS Simulator
This is a great little tip from Roman Shevtsov. Even better, once you've set the option, the setting is respected for all future screenshots saved with ⌘S. 👍
Code
Core Data and SwiftUI
I'm ashamed to say I've had this post from Dave DeLong in my queue for a few weeks. I wanted to properly read and digest it and never managed to get there until today! He concentrates on separating Core Data away from your UI, and emitting results as structs rather than classes. Naturally, it was worth reading. 🎁
AccessibilitySnapshotColorBlindness
Like using multiple SwiftUI previews to simulate different execution environments, snapshot tests can be a great way to ensure that you're aware of how your changes affect how different people see your app. Yes, that could be as trivial as a light/dark mode change, which you probably test manually anyway. But what about colour blindness? Based on SnapshotTesting, this new library from James Sherlock helps keep track of how your app looks to people with a range of colour blindness conditions.
Working with web content offline in SwiftUI apps
I enjoyed this article from Artem Novichkov. I remember digging into whether it was possible to save web content from a web view way back when I considered writing an iOS app for this newsletter. At the time, it was full of issues, but there are many more options for doing it today. 🚀
Design
If your app requests permission to access user data...
Mike Stern highlights this recent addition to the HIG that adds guidance around permission priming. The guidance is good and will hopefully move apps away from the common tricks designed to delay permission prompts.
However, the HIG is not the App Review Guidelines, so it'll be interesting to see how App Review deals with this. I didn't spot any changes in the App Review guidelines that reference this, so who knows if this will be something that will cause rejections.
Jobs
iOS Developer @ Atomic Robot – Atomic Robot works with some of the most exciting companies and brands to help them bring their innovative projects to life! We have a highly collaborative team that is focused on high quality engineering and continuous learning. – Remote
Senior iOS Software Engineer @ Doximity – Doximity, the medical network used by over 70% of US clinicians, is hiring passionate Senior iOS engineers (remote-friendly!). You'll get to be part of an amazing product team and work on an app that is constantly evolving. Use your skills (Swift, MVVM, FRP) to be an integral part of our newly launched telemedicine feature. Apply today! – Remote within the US
Solutions Engineer @ RevenueCat – At RevenueCat, we make selling subscriptions in your app easy. We launched as part of Y Combinator's summer 2018 batch and today are handling subscriptions for more than 10 million mobile subscriptions. In this role, you'll partner with companies of all sizes to ensure they have a flawless implementation and come up with creative solutions for the needs and requirements of each app. – Remote
Senior iOS Developer @ komoot – Komoot is an app (19M users) that lets you find, plan, and share adventures with the easy route planner. You’ll develop diverse features for navigation, routing, social interaction and content visualization that will make your work challenging and fun. – Remote
SwiftUI Developer @ Sellable – At Sellable we're building the future of commerce! Have the opportunity to experience working as part of a small team in a company at its early stages. Build out new features and grow your skills in SwiftUI. – Remote
Is your company hiring? Get your open iOS development positions listed in next week's iOS Dev Weekly by posting a Featured Listing over at iOS Dev Jobs.
Insiders
Thanks so much to this week’s iOS Dev Weekly Insiders! Peter Steinberger, Kyle Van Essen, Josh Adams, Jim Dovey, and Caylan Larson. I truly appreciate your support. Thank you.
This week’s insider call will be all nostalgic, as I ask everyone about their first experiences with development on the Mac. But we’ll also discuss some of the other links. It’s happening in just over an hour from now, so there’s still time to sign up!
And finally...
This spoke to me. The deeper you go into my apps, the more rotten my code is. 😂
Comment
I lost about two hours yesterday to this tweet from Davide Di Stefano. Xcode 2 was the first version I used, but this video of Xcode 3 from Kevin Vinck took me on a delightful trip down memory lane, which ended in finding this YouTube channel and this video introducing Project Builder. Despite being such low resolution you can’t read the text, I watched more of it than I should have for a Thursday afternoon. 😬 I loved seeing features in Project Builder that are still a part of Xcode today.
I was late to the Mac platform and only owned my first one in 2006, but once I jumped, there was no turning back. I quickly fell in love with the platform and with writing apps with Objective-C and Cocoa. Of course, iPhone OS and then iOS followed, and the rest is history.
It’s tempting to mock these old versions of Xcode and Interface Builder. Just look at all those windows! However, my rose-coloured spectacles are fully functional, and I don’t feel anything but fondness for that software. The Mac, its development environment, and the community of incredibly passionate Mac developers that I found when I arrived were inspiring and exciting in a way I hadn’t felt in years. My ex-colleagues mocked me gently, and I think they half expected my experiments with the Mac to be short-lived, but they were not!
So, I’d encourage you to join me in some nostalgia this Friday and think back to the first version of Xcode you used. Or, if your first version of Xcode was more recent, explore a bit of the history of developer tools on the Mac. 🚀
By the way, my favourite parts of the video were the warning about forgetting to save the IB file before building in Xcode and being tripped up by the text field cell inside the text field. Ah, memories!
Oh, and just before publishing, I saw this tweet from Uli Kusterer. What is it with the nostalgia this week?
Dave Verwer