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 598

24th February 2023

Written by Dave Verwer

Comment

This week, I tried a feature of iOS that I’ve been meaning to try since the iPhone 14 debuted, Emergency SOS via satellite.

The feature is impressive, but like fall detection on the Apple Watch, you hope never to need it. It’s also a feature that you don’t want to have to try and figure out when an emergency happens, and time may be critical. To help with that, if you have a capable device, you’ll have been ushered towards a demo of this feature through a banner at the root of the Settings app.

The engineering that went into that demo app is fascinating to me.

First, it’s a whole separate app. It starts simply enough with some traditional onboarding screens that explain the feature. Then, when the demo begins, your cellular service is temporarily disabled, and the app appears to be tracking real satellites¹. Of course, it sends no messages, but it seems to be doing everything except that. It’s impressive and clearly took a lot of time to create.

I’d love to know how the creation of this demo app came about. I’d imagine it was a combination of genuinely wanting people to get familiar with the process before needing it for real (and without the potentially panicked state of mind), having a large amount of “demo” code available from the inevitable test harness apps created during its development, with a sprinkle of consideration that it might also enable some word of mouth marketing².

Finally, the discovery of this feature needs to be foolproof. Apple has trained everyone to expect an “Emergency Call” option when you hold down the power and volume buttons, but in a panic, I’d expect most people’s instinct to be to head to the phone app and dial 999/911. Sure enough, it pops up as soon as the call fails.

Very few of us need to approach design at the same scale as Apple’s design team, and it’s unlikely you’ll need to show off something quite like this in your apps. That said, I bet there are lessons you could learn from going through the demo yourself or watching someone else use it. It certainly opened my mind a bit.


¹ It may not be making connections to the satellites, but it’s a compelling simulation if it’s not genuinely locating them.

² “My new phone can send a message to emergency services even if I don’t have a connection! Let me show you.”

Dave Verwer

Wonderous: Build Wonders with Flutter

Wonderous is an open-source iOS app built with Flutter. It features award-winning UX design and best practices for performance and accessibility. See for yourself by installing Wonderous from the App Store or downloading the code from GitHub.

Tools

Sharing Xcode breakpoints across projects

This is a useful and quick tip from Jesse Squires for when you might find yourself using a symbolic breakpoint frequently and work on multiple apps. 👍

Code

The making of Ice Cubes

Is there anyone who has released more open-source SwiftUI apps than Thomas Ricouard? You may have seen his latest project, Ice Cubes, but did you know it was open-source? This post starts with an overview of the project but quickly dives into code-related topics. 👍


Introducing Roadmap

Depending on what app you work on, getting feedback from users on what they would value in your app can be really important. But those users almost certainly don’t read your blog or follow you on social media. They do use your app, though, so shouldn’t you gather that feedback there? This new library from Hidde van der Ploeg, Antoine van der Lee, and Jordi Bruin looks great.


Scaling a Mature iOS Codebase with Tuist

Replacing a crusty old xcodeproj with a shiny new generated one using something like tuist will be tempting every time you read about it. It’s one of those “This will be a fresh, clean start” tasks that nip at our developer brains. I enjoyed this article from Steve Landey, but you should read the whole article before diving in! Tuist is a great tool, but adopting it can create plenty of work.


Arbitrary SwiftUI Linear Gradient Rotation

It says a lot about me that my instinct would have been to draw a larger-than-needed layer with a top-to-bottom gradient and rotate it. 😬 It’s nice to see David Smith do it properly, though, and his technique is interesting.

Jobs

Tech Lead @ Learn Chess with Dr. Wolf / Chess.com – Millions of students have learned chess from the kind and patient Dr. Wolf. “Learn Chess with Dr. Wolf” started as an indie labor of love. With your creativity, dedication and attention, we can bring the joy of chess and learning to many more people. – Remote (within US or European timezones)

Senior iOS Engineer @ Mindstone – Mindstone’s vision is a world where people get ahead not because of who they know and where they came from, but what they know and their ability to learn. iOS is our most important platform to help millions of people to create a healthy learning habit, building confidence and skills. – Remote (within European timezones) or on-site (United Kingdom)

Senior iOS Engineer @ Polywork – Polywork is a well-funded startup looking for a third iOS developer to join the team. We’re building a modern professional social network that recognizes people as more than their job titles. – Remote (within US timezones)

You all know what I’m going to write here by now, so I’ll just leave you this link.

And finally...

SPM resolving!