Random Little Things from WWDC 2021

June 7, 2021 • 3:08 PM

Notifications now have “urgency” (or as Apple puts it, “Interruption level”). I can probably update my PowerTimer app so that they utilizes Time Sensitive urgency level to function fully with Do Not Disturb on.

Alway-On app for watchOS — when watch is dimmed, you can have your own app on screen. Potentially useful, again, for my timer app. Interestingly, this is powered by the same technology for iOS widgets — TimelineView to schedule view update, and SwiftUI Text.DateStyle for regular view updates.

Visual Lookup surfaces objects captured in a photo, and would even go identify house plants, pets, landmarks and more. There’s no developer documentation mentioning this, so I assume it’s available only to iOS at least for now. It’s available on A12 or later chips (A12, 13, 14 and M1).

MailKit — Apple’s official, modern framework that supports extension for Mail.app on macOS Monterey. Previously, developers had to hack their way into Mail extensions. There wasn’t much they could do and the little that they could was painful. Now from the doc:

A Mail app extension provides one or more of the following enhancements:

  • A content blocker defines rules to prevent loading content when users view messages.
  • An action handler performs actions such as flagging, setting colors, or archiving when Mail downloads messages.
  • A compose session handler validates recipient email addresses, displays a view controller on Mail’s compose windows, confirms if messages are suitable for delivery, and adds custom headers.
  • A message security handler secures messages using encryption and digital signatures.

This framework probably achieves three things:

  1. It makes Mail.app suck less.
  2. It offloads privacy features (blocking content, handling spam, etc.) to 3rd party app developers. There will be more choices.
  3. It makes Mail.app ready for enterprise environment, because companies can develop their in-house mail extensions and enforce its use.

Capture Objects — a new feature to RealityKit that allows easy 3D model capturing on a Mac from a LIDAR-enabled devices (iPhone 12 Pro or iPad Pro).

Concurrency — asynchronous code should now be much, much easier to read and write, and it supposedly improves app performance. I need more research on that, and won’t likely adopt Concurrency until 2 years later, when iOS 15+ is everywhere.

CloudKit sharing — Shared database has always been there for CloudKit, but now it’s been promoted and integrated into NSCloudKitPersistentContainer.

Apple Pay apparently now supports coupon codes.

Shazam is now open to developers via ShazamKit.

PHPhotoPicker now supports ordered selection.

Photos.app on iOS and iPadOS now displays EXIF information. You can adjust photo date one by one. You can add location to photos without location info (but you cannot modify them, yet). It’s one step closer to feature parity for Photos.app on macOS. Oddly, you still cannot add keywords to photos on iOS or iPadOS. (Any keywords you add on macOS are synced and are searchable on iOS — I tested that before.)

Compiling apps on iPad. But I’ll pass on SwiftUI — I’ll only use it in baby projects or as a small fraction of an app. Give it three more years and I’ll reconsider.

Xcode Cloud probably will allow me to use this MacBook Pro 2017 for another two years. I’ll wait until I see the pricing.