Simon B. Støvring

@simonbs
9K Followers
159 Following
9.6K Posts

Developer and speaker with a passion for iOS and macOS.

Making your devices go brrr with https://brrr.now 📳

Bringing festive lights to your Mac’s dock and menu bar and your iPhone’s Home Screen with https://festivitas.app 🎄

Also building https://smashsmash.app, https://runestone.app, https://scriptable.app, https://jayson.app, https://datajar.app, and more.

Aspiring home brewer, brewing both beers and espressos ☕️🍻

Websitehttps://simonbs.dev
Runestonehttps://apps.apple.com/us/app/runestone-text-editor/id1548193893
Scriptablehttps://apps.apple.com/us/app/scriptable/id1405459188
GitHubhttps://github.com/simonbs

Working on an iPhone and Mac app that

1. Syncs data with CloudKit
2. That data is shown in widgets
3. And it can be edited from Shortcuts

The path of

editing in Shortcuts on device A → CloudKit → shown in the widget on device B

is soooo tough to get working properly.

Now Shortcuts is no longer launching my app and I didn't change a line of code. It happened consistently ~25 times before and now it doesn't.

So... Is it a bug in Shortcuts? Is it a bug in my app caused by a race condition? 🤷‍♂️

I'll need to dig deeper.

My current theory is that it's either Shortcuts acting up or me setting an Activation Policy at an unfortunate time.

@paul @simonbs There is definitely a special launch mode for background intents that hides the app on Mac. Drafts has many openAppWhenRun=false/supportedModes=[.background] intents that work that way and Drafts show up in Activity Monitor but not the Dock if it wasn’t already running.

This can’t really be how it’s supposed to work, right?

My app gets launched just from opening a shortcut that uses one of my app’s actions, because Shortcuts runs an entity query to validate the selected entity. That feels like something that should happen quietly in the background, without surfacing the app in the Dock.

Even just opening a shortcut to edit it ends up launching my app, which seems off.

What am I doing wrong? 🤔

@simonbs not always true, its got to depend on some setting probably Activation Policy. I know because I wasted a good hour last night before realizing that the reason my Shortcut wasn't working was because the system launched a version of the app behind my back.
brrr has crossed 100,000 notifications set! 💯🤯🚀

When an App Intent lives in the host app and runs the app intent “in the background” on macOS, it still launches the app and puts it in the Dock.

Technically that makes sense, because that’s just how Mac apps behave when launched. But it doesn’t really feel like background execution to me.

Isn't there a way to react to a silent push notification when a Mac app isn't running?

It's documented that application(_:didReceiveRemoteNotification:) is only called when the app is running in AppKit.

https://developer.apple.com/documentation/appkit/nsapplicationdelegate/application(_:didreceiveremotenotification:)

application(_:didReceiveRemoteNotification:) | Apple Developer Documentation

Tells the delegate when the app receives a remote notification.

Apple Developer Documentation
I've been looking at big EVs for so long that I'm starting to realize that what I'd really like is a MINI with a lot of quirks and personality.

Pods are spun up per conversation and run Claude Agent SDK, orchestrated by Kubernetes.

Users authorize the Google and Notion services with OAuth.

User data is accessed via in-cluster APIs with user-scoped tokens. Each pod can only access the data of a single user.

Strong isolation. No cross-user leakage.

This feels like the way to build multi-user agents.