Subscribe for weekly commentary and coverage of Swift and Apple platform development. Written by Dave Verwer and published every Friday. Free.

Picture of Dave Verwer

Issue 557

6th May 2022

Written by Dave Verwer

Comment

This week saw Apple announce a few more details about the in-person portion of this year’s WWDC.

Even though these words make no appearance on the page, I love how the URL to the page ends in “special-day”, and I’m sure it will be exactly that for those that attend. The circumstances mean that it will almost certainly be a unique event.

I won’t be applying for a ticket or travelling the 6,000 miles it’d take for me to set foot inside Apple Park, but I’m still glad there’s an in-person aspect to the conference this year. Meeting in-person can never be as equitable as an online-only conference. However, I still hope that thousands of developers gathering in California once a year becomes a regular part of the calendar again.

If you live a little closer to Cupertino or are willing to travel, Apple will allocate the (presumably free) tickets via a lottery on Monday or Tuesday. Apple will then distribute the tickets on Wednesday, so it’s all going to happen fast!

As for the mention of the “Developer Centre” everyone is talking about, I’m not even going to speculate. It could be anything from a temporary marquee next to the Apple Park rainbow to a secret underground lair where Apple executives cater to your every need as a developer. 😂 We’ll have to wait and see! I’m keeping my fingers crossed for the underground lair.

Oh, and the organisers over at WWDC Community event have announced they’ll again be hosting an online-only event and are looking for volunteers if you want to help out!

Dave Verwer

Provide Secure Mac Environments for Remote Devs with MacStadium

Headaches abound when shipping Macs to remote iOS developers. Sidestep everything from navigating customs to ensuring the delivery and eventual return of your physical hardware with MacStadium’s Virtual Command, a unique, browser-based remote Mac solution. Learn more.

News

Clarifying the App Store Improvements process

There are two important bits of information in this clarification from Apple about when they will remove old or abandoned apps from the store. First:

Developers of apps that have not been updated within the last three years and fail to meet a minimal download threshold — meaning the app has not been downloaded at all or extremely few times during a rolling 12 month period — receive an email notifying them that their app has been identified for possible removal from the App Store.

and

Developers, including those who recently received a notice, will now be given more time to update their apps if needed — up to 90 days.

I’ve seen criticism of this clarification, too, but it seems reasonably clear to me, and as I said last week, I still agree with the idea behind it. It can be sad when apps are removed from the store, and I heard plenty of people this week who have had apps fall foul of the policy over the last few years, but I still think the alternative is worse.


Are alternative app stores worth it?

With the possibility of Apple being forced to allow alternate app stores on iOS, I found this article from Marine Nozerand with some numbers from alternative stores on Android interesting. I’m not sure there are many conclusions to draw for iOS, primarily because alternative stores on Android are pre-installed on phones from the same manufacturer, but I still think it’s worth reading.

Tools

Building multi-platform documentation with DocC

We’re working on something related to DocC over on the Swift Package Index, and this post from Daniel Saidi came in very useful! You’ll also likely find it helpful if you need to generate DocC documentation.

I won’t spoil the surprise of what we’re working on, even though it’s really obvious, and there’s even a pull request in progress if you care to spoil it for yourself! 😂

Code

Inside Code Signing, Provisioning Profiles, and Hashes

I can’t tell you how many times I referenced TN2250 in the early days of iOS development. That note was archived a long time ago now, but it looks like these tech notes are the replacement! Code signing isn’t as tricky as it used to be, but that doesn’t mean you won’t be thankful for these documents when you encounter an issue!

Also, thanks very much to Federico Zanatello for highlighting these documents. I still wish Apple did more to let people know about new and significantly updated documentation!


What does AttributedString’s Codable format have to do with Unicode?

This article from Ole Begemann goes into detail on how Foundation serialises attributed string data, but the conclusion will serve you well, whether you’re dealing with attributed strings or not!

We can extract a general lesson out of this: Don’t store string indices or offsets if possible. They aren’t stable over time or across runtime environments.

That’s good advice.


Send Events from SwiftUI to UIKit and Vice Versa

You’ll find plenty of advice that tells you how easy it is to mix SwiftUI code into a UIKit (or AppKit) project. There are endless articles on hosting controllers and representable views, so it’s nice to see an article that focuses on one of the essential parts of working between two frameworks, data transfer. Thanks to Jordan Morgan for writing this up!


Debug logging forever!

A love letter to print debugging by Graham Lee. Maybe it’s because I’m old, but printing/logging is always my first choice when debugging, and I usually only break out the debugger for tricky situations. Graham goes one step further than I do, though, and advocates for committing debug logs to indicate that certain bits of code may need careful attention.


Weak Self - Closure Rules of Thumb

Can Christian Tietze wrap up the ongoing discussion about retaining self from the last few weeks? Let’s see, shall we? 👍

Jobs

Senior iOS Developer @ Chariot Solutions – Chariot Solutions is a Philly based consulting company that strives to create a product company culture. We work hard to win exciting projects with some of the top companies in the world, while helping our employees maintain a great work life balance. – Remote (within US timezones)

Senior iOS Engineer @ Sendwave – We currently have a 4.6-star rating on Trustpilot — people put their faith in us to deliver their money quickly, securely, and affordably. And we’re pretty darn proud of that. – Remote (within US or European timezones)

Senior Staff Engineer, iOS @ MyFitnessPal – Our users rely on the MyFitnessPal iOS app to power their health and fitness journeys every day. You’ll have the opportunity to positively impact those users In addition to technical expertise, you’ll find that your teammates value collaboration, mentorship, and inclusive environments. – Remote (within US timezones)

Are you looking for work? There are many exciting opportunities to work with all kinds of companies over on iOS Dev Jobs. Filter and browse on the home page, or subscribe for free to receive a weekly email full of jobs that match your preferences.

And finally...

AppKit for … hold on … what? 🤯