Sponsored Link
The world’s first virtualized M1 CI/CD environment on Bitrise
Optimize for speed, stability, and extensibility. Build natively for Macs featuring Apple Silicon, and benefit from greatly improved performance. Find out more!
News
Apple Open Source
This week saw Apple re-launch their open-source site, highlighting how they're involved with various projects. I had no idea they were helping with any of the listed community projects apart from LLVM/Clang. I'd love to see them expand on how they're involved, though. Are they funding, contributing, or helping in other ways? I was also surprised they didn't list Blender after this recent announcement.
New features for App Store product pages
Two new App Store features that Apple announced during the summer became available this week, and they can both make you more money, so you should probably check them out! Product page optimization lets you do A/B experiments, and custom product pages allow you to create permanent alternate pages for your apps. 🎉
Tools
Monitoring HTTP Traffic with Instruments
Did you know that Instruments had an HTTP traffic inspector that doesn't require a proxy or self-signed certificates and works with SSL pinning? Yea, me either. We should all be grateful that Vijay Subrahmanian did and wrote about it for us all. Isn't that nice of him! 🎉
Code
Solving mysterious logout issues on iOS 15
If you enjoy a good debugging story as much as I do, you'll undoubtedly already be halfway through this post from Liam Nichols. If you don't, you should still read it to understand prewarming and how it might affect your app, especially if you store anything in a keychain.
If you’re writing Swift concurrency code...
If you've jumped in with async/await already, you'll want to read this advice from Ole Begemann and the source post from Doug Gregor that'll have you in better shape when Swift 6 arrives.
Parsing people's names
What do you mean I shouldn't use .split(separator: " ")
to parse someone's name? 😅 I love that the Apple frameworks have such rich support for tasks that appear trivial at first glance but are anything but in practice. Leonardo Maia Pugliese looks at this task and the new ParseStrategy
protocol available in iOS 15/macOS Monterey.
Backpressure in Combine
Combine might not be the hottest API on the block anymore, but the concept of backpressure is universal. Natascha Fadeeva helps us get up to speed on coping when too much data is arriving with Combine.
Design
Opacity precision
On one level, this article from Marc Edwards is about setting object/layer opacity in design tools. On another, it's about thinking through obvious and non-obvious choices in UI design. 🎉
Placeholder Data vs Real Data
Otherwise known as the curse of Lorem Ipsum, Søren Clausen makes a great point here. Yes, in this case, using generic data helped with this design, but the key point is to think carefully about the data you'll display when you design something.
And finally...
SwiftUI allows you to move so incredibly fast... 😂
Comment
After last week’s issue, I received a couple of emails asking if I had seen the App Store Award winners. I had seen it and had linked to it but deleted it as I was doing a final read-through before pressing send.
It’s always a good indicator that a link isn’t a good fit for the newsletter if I’m unhappy with what I write about it when I read the draft. What I had written for that link was, “Here’s something to aim for! Congratulations to all the winners.” Hardly Shakespeare 😂
What would have made it a must-link article would have been some information on why the various apps won in their categories. What made DAZN the best Apple TV app, LumaFusion the best iPad app, or CARR…. Actually, scratch that last one. CARROT won because the judging team feared the consequences if it didn’t! 😂
I checked a few of the apps out over the weekend and found something new as I did. Some had App Store stories, and they started with phrases like:
and
These stories are not easy to find, though. You need to scroll down, past the screenshots and description, and past the What’s New and privacy nutrition cards. Don’t stop when you get to platform compatibility either, or when you get to whether it supports Family Sharing or Game Center. Only after all that scrolling will you see the “Featured In” section where these wonderful articles are. 🤷♂️
If you’re interested in learning more about why these apps won, you should read the App Awards stories for Toca Life World, LumaFusion, MARVEL Future Revolution, Space Marshals 3, Fantasian, Among Us!, Canva, Peanut, Bumble, and EatOkra. They won’t tell you how to be next year’s App Award winner, but they do include pointers in the right direction and plenty of inspiration.
I don’t know why DAZN, CARROT Weather, Myst, Craft, and Wild Rift didn’t get stories, but they didn’t! 🤷♂️
UPDATE: Turns out all of the apps did get a story, it’s just that some App Store pages do link to the App Awards story, and some don’t. 😬 So, complete the set with the stories from DAZN, CARROT Weather, Myst, Craft, and Wild Rift.
Oh, and congratulations to all the winners, and thanks for giving us all something to aim for! 😍
Dave Verwer