Archive for April 27, 2021

Tuesday, April 27, 2021

Swift 5.4 Released

Ted Kremenek:

Swift 5.4 includes the following new language features:

  • Support for multiple variadic parameters in functions, subscripts and initializers (SE-0284)
  • Extend implicit member syntax (SE-0287)
  • Result builders (SE-0289)
  • Local functions supporting overloading
  • Property wrappers for local variables


In Swift 5.4, protocol conformance checks at runtime are significantly faster, thanks to a faster hash table implementation for caching previous lookup results. In particular, this speeds up common runtime as? and as! casting operations.

This was slow enough that in a few cases I had worked around it by using an extension to introduce an instance method to do the test.

The Swift compiler is much better at tracking dependencies between files, resulting in a significant reduction in the number of files compiled for many kinds of changes during incremental builds

Dependencies on member variables and functions of structs, enums, classes, and protocols are now tracked individually by the Swift compiler. This finer granularity speeds and shrinks rebuilds after changes to these entities

There are code completion and type checking improvements, too.


Update (2021-05-19): John Sundell:

It’s now possible to create a local variable that’s assigned to an expression that has the same name, without having to manually disambiguate with self.

That was a common annoyance for me.

iOS 14.5 and iPadOS 14.5

Apple (MacRumors, ArsTechnica, Hacker News):

iOS 14.5 brings exciting new features to iPhone, including the ability to unlock iPhone with Apple Watch while wearing a face mask, more diverse Siri voices, new privacy controls, skin tone options to better represent couples in emoji, and much more.


App Tracking Transparency requires apps to get the user’s permission before tracking their data across apps or websites owned by other companies for advertising, or sharing their data with data brokers. Apps can prompt users for permission, and in Settings, users will be able to see which apps have requested permission to track so they can make changes to their choice at any time.


This document describes the security content of iOS 14.5 and iPadOS 14.5.

Federico Viticci:

In the following months, I used Siri to play a variety of music and podcast content in Spotify without ever appending the “in Spotify” qualifier to my requests, and Siri never asked me to pick a different audio player again. By all intents and purposes, this option had the effect of setting a default audio player for Siri on my device.

Apple, however, recently stressed how this new Siri feature in iOS 14.5 shouldn’t be seen as “changing a default app”, for a variety of reasons.


Apple is continuing to expand Shortcuts with new actions and system integrations in iOS 14.5.

First, there’s ‘Take Screenshot’. As the name implies, you can use this action to programmatically capture a screenshot of whatever is in the foreground when the shortcut runs without having to press the Power + Volume Up buttons.


You can now also control your device’s orientation lock settings via the ‘Set Orientation Lock’ action. With this action, you can either toggle orientation lock, or you can use parameters to specifically set it to ‘on’ or ‘off’.


Perhaps more importantly though, this action is the perfect candidate for an automation that disables orientation lock whenever you open video apps like YouTube and Netflix.

Nick Heer:

I keep orientation lock on at all times but now, when I launch Halide, orientation lock toggles off, and then switches itself back on when I leave the app. This does seem like something Apple could provide an API to developers for — the Camera app is able to rotate its UI and the photos it takes without toggling orientation lock — but it is an excellent workaround.

I wish this were a standard per-app preference, like with notifications, cellular, and location access.


In regard to unlock w/Apple Watch:

  • This is an issue of Apple’s own artificial creation.
  • This doesn’t even solve the issue.

So this all started because Face Unlock didn’t work with masks, that’s not Apple’s fault. But what is entirely Apple’s fault is that they break an option which resolves this only when Face Unlock is enabled: “Require Passcode.”

When you disable Face Unlock you can set Require Passcode to e.g. 15 minutes/1 hr, and it largely mitigates the aggressiveness by which your iPhone re-locks itself while you’re e.g. out grocery shopping in a mask and trying to use a shopping list. But when you enable Face Unlock this option is removed (forced to “Require Immediately”).

So Apple enforces “Require Immediately” in Require Passcode, it blows up in their face, and then instead of backing down when masks broke Face Unlock, they instead over-engineer a solution where you have to buy an Apple Watch to work around it.

Just letting me set a delay for requiring a passcode would offer a much better user experience. I’ve been using Guided Access, which is a pain to turn on and off, doesn’t work with Apple Pay, and doesn’t let me switch to another app.


Update (2021-05-03): Hartley Charlton:

In spite of redesigning its Podcasts app with iOS 14.5, long-standing bugs within the app persist, and Apple has introduced a range of new crippling usability problems, according to hundreds of reports from users across Twitter and Reddit.

Update (2021-05-07): Dan Frakes:

Phone life changing

Tom Brand:

I still don’t understand why full screen video isn’t locked to the correct orientation.


Update (2021-05-18): Juli Clover:

With Apple now enforcing its App Tracking Transparency rules with the release of iOS 14.5, The Wall Street Journal’s Joanna Stern did an interview with Apple software engineering chief Craig Federighi to talk about Apple’s aim with the feature and how it works.

Ron Gilbert:

If Apple really cared about iOS privacy they would give the user to ability to block any app from reaching the internet. A lot of the iOS apps I used have no need to ping the internet but they all do to gather metrics and do who-knows-what.

Rather than create a complex and unenforceable privacy policy Apple should just let users block the app from using the internet.

Update (2021-05-24): Callum Booth:

Because the Apple Podcast app redesign is a violation of our human rights; a plague upon this fair and pleasant land.

Okay, that’s a bit much. But the redesign is annoying. Anything that gets tweaked should be better to use, right? Well, that hasn’t happened with the new Apple Podcasts app.

Dave Wood:

I filed a bug about the ‘require immediately’ issue even before Face Id. It’s a problem with Touch ID as well…. I was told by an Apple employee at the time who looked at the radar “Don’t hold your breath on that one”.

macOS 11.3

Apple (MacRumors, Howard Oakley):

macOS Big Sur 11.3 adds support for AirTag, includes iPhone and iPad app improvements for Macs with M1, introduces separate skin tone variations for emoji with couples, and adds more diverse voice options for Siri.

It’s good to see some detailed release notes.


This document describes the security content of macOS Big Sur 11.3.

Mr. Macintosh:

The full installer of macOS Big Sur 11.3 (20E232) is now available for download.

Jonathan Deutsch:

FB9083476: macOS 11.3 Regression: NSPropertyListSerialization can fail serializing data in the XML Format leading to data loss

FB9083459: macOS 11.3 Regression: NSPropertyListSerialization is 200x slower serializing to data in the XML Format (when it works)


Update (2021-05-03): Howard Oakley:

At last Apple has returned to providing extensive release notes to accompany the Big Sur 11.3 update. Because they’re so long and detailed, I won’t attempt to summarise them, but recommend that you read them[…]

Howard Oakley:

It’s what we all really wanted. The largest macOS update ever, a good gigabyte bigger than even the Catalina 10.15.1 update, and more than most major releases of Mac OS X, the Big Sur 11.3 update gives us what we’ve all been asking for: it fixes a lot of bugs. The trouble with getting what you want are the unintended consequences.

For a few, the 11.3 update has proved disastrous, with a clean re-install their only hope of salvation. For most of us, its sheer size has at least been compensated for by the relative brevity of updating. But for those who are more cautious and don’t rush to update, it poses a serious problem: buried in its avalanche of fixes and improvements is one to address a serious security vulnerability, which makes updating an urgent need.


Using the popular strategy of waiting a few weeks after each update before installing it yourself now turns into a quandary. Is it better to run the risk of updating now, or that of malware making your Mac a victim?

One solution could be for Apple to start releasing Big Sur updates in two streams: security updates only, and full updates.

Colin Cornaby:

Podcasts on the Mac didn’t change in 11.3, right? Kind of odd they moved Podcasts to Catalyst, and now Catalyst on the Mac is back on it’s own track that seems separate from the iOS version.


Beware of Signal Recompressing Images and Videos

Jeffrey Paul (Hacker News):

Signal took that 4000x2667 JPEG image comprising precisely 3,916,886 bytes, encrypted it, and transmitted it to my friend. She received a different 4000x2667 JPEG image comprising 784,524 bytes: 80% smaller.


Did you know that the everyday, normal-sized (<4MB) images you send via Signal are being silently altered in transit to look like dogshit?


If they feel it’s absolutely necessary for them to do this to continue to exist as a free service: they should be much, much clearer about the fact that this is going to happen, at the time of recompression, and permit you to opt out of sending an altered file. As well as, just, you know, not touching images that are already reasonably sized.

See also: The silliness of iCloud Photo Sharing quality degradation.