Simon B. Stรธvring's Avatar

Simon B. Stรธvring

@simonbs.dev.bsky.social

Passionate developer and speaker ๐Ÿง‘โ€๐Ÿ’ป Bringing festive lights to your dock with festivitas.app ๐ŸŽ„ Smashing your Mac into bits with https://smashsmash.app ๐Ÿ”จ๐Ÿ’ฅ Also building runestone.app, scriptable.app, and more. Espresso enthusiast โ˜•๏ธ and beer snob ๐Ÿป

4,006 Followers  |  124 Following  |  849 Posts  |  Joined: 24.04.2023  |  1.8955

Latest posts by simonbs.dev on Bluesky

Video thumbnail

There are so many things to build as part of this project. I just spent a few hours building a custom font picker ๐Ÿ˜€

06.08.2025 08:50 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Thatโ€™d be a harsh immediate response. Iโ€™d expect a warning first.

05.08.2025 20:01 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

On App Store Connect, thereโ€™s this trick where a zero-width whitespace character can be inserted into an app name to claim an otherwise taken name. I just verified that it works.

Whatโ€™s peopleโ€™s experience with this? Have you tried it? Does it even get past app review? Bad idea?

05.08.2025 19:44 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

This project forces me to build some of the most advanced UIs I've ever built, and I enjoy it so much.

* A text editor is also quite advanced, but not in the UI, really, it's more in the internals.

04.08.2025 17:15 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
teamData | Apple Developer Documentation The collection of data an app uses to hold private team information during drag and drop.

Got it! teamData on NSItemProvider seems suitable for storing information about a local object. developer.apple.com/documentatio...

04.08.2025 13:46 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Alternatively, have anyone found a way to associate a local object with adrag and drop operation and reference that object in your implementation of DropDelegate?

04.08.2025 13:38 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Have anyone found a reliable way to detect a drag and drop interaction being starteed on a SwiftUI View with the .onDrag(...) view modifier?

04.08.2025 13:09 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Mac Power Users #808: "The Momentum is Building," with Simon Stรธvring - Relay Simon Stรธvring is the developer behind some fantastic apps, including Runestone, Scriptable, Jayson, and Data Jar. This week, he joins the guys to talk about how he works on these apps, his use of Apple's default apps, and how he's thinking about iOS 26.

Super excited to join the Mac Power Users this week! David, Stephen, and I talked about WWDC, iOS 26, and a few of the apps Iโ€™ve been building. Listen here: www.relay.fm/mpu/808

03.08.2025 15:55 โ€” ๐Ÿ‘ 9    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I have it disabled too but my auto-conplete is often so slow that itโ€™s useless. Restarting Xcode seems to fix it for a short period off time.

02.08.2025 10:00 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Ugh, I have the AI suggestions disabled, though. Theyโ€™re utter useless.

02.08.2025 09:59 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

๐Ÿ˜ข

02.08.2025 09:59 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Xcode's auto-complete has become so unreliable on my machine over the past year or two that it is practically unusable. I'm hoping that it will get better when I upgrade from an M1 Pro, but who knows at this point.

02.08.2025 06:40 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 4    ๐Ÿ“Œ 0
Me wearing t-shirt and hoodie branded with the circusโ€™ logos in front of the big circus tent.

Me wearing t-shirt and hoodie branded with the circusโ€™ logos in front of the big circus tent.

I'm incredibly excited to spend the next few vacation days volunteering at a circus!

30.07.2025 06:45 โ€” ๐Ÿ‘ 16    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I envy every iOS developer who hasn't had to deal with the UndoManager API.

29.07.2025 09:59 โ€” ๐Ÿ‘ 13    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I'm wasting so much time getting drag and drop working properly with SwiftUI for this project. I don't think the .draggable(...) APIs can do what I need, so I've dropped down to UIKit, but even then it's such a mess to get working properly with SwiftUI ๐Ÿ˜ฉ

27.07.2025 16:18 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

It's how I use it 90% of the time. Although, after Apple has introduced Coding Assistant it has messed up my keyboard shortcuts so this summer has been rough.

25.07.2025 17:47 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
My desktop with a Studio Display and a MacBook Pro. Running Xcode. In front of the display is a glass of red wine. On the desk is also a trackpad, a keyboard, and a mouse along with some LEGO.

My desktop with a Studio Display and a MacBook Pro. Running Xcode. In front of the display is a glass of red wine. On the desk is also a trackpad, a keyboard, and a mouse along with some LEGO.

Friyay ๐Ÿ‘จโ€๐Ÿ’ป๐Ÿท

25.07.2025 17:34 โ€” ๐Ÿ‘ 8    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I've been making great progress on this project today. There are still a number of key interactions that I need to implement before I can show off anything, but I'm slowly getting there ๐Ÿ˜€

25.07.2025 15:59 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Screenshot of some example code that attempts to achieve what I'd like.

Screenshot of some example code that attempts to achieve what I'd like.

Is there a way to use a custom App Entity type in an App Intent but have it show as a plain text field in the Shortcuts app? I can handle converting to and from a string myself.

I looked into resolvers but they donโ€™t seem to control how input fields appear in Shortcuts.

24.07.2025 19:40 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

A key part of this app involves generating both in-app UI and Shortcuts actions (nay, App Intents) from my Swift models. Thatโ€™s why Iโ€™ve been diving deep into Swift macros over the past week.

22.07.2025 17:39 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

If we're OK with forwarding the value to another object, we can also just reference a private Observable class inside our property wrapper.

22.07.2025 17:30 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I'd use a macro to make MyModel conform to ExampleObservable so I don't have to think about those ugly _example_access(...) and _example_withMutation(...) functions, of course.

22.07.2025 17:16 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Swift code snippet showing how a property wrapper can be applied to a property while ensuring it remains observable.

Swift code snippet showing how a property wrapper can be applied to a property while ensuring it remains observable.

Here's a decent workaround, but itโ€™s frustrating that `count` must be annotated with @ObservationIgnored when it is, in fact, observable.

The property wrapper invokes access(โ€ฆ) and withMutation(โ€ฆ) and ExampleObservable exposes those to the property wrapper.

22.07.2025 17:14 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Ugh, I really want to apply a property wrapper to a property that's also made observable with the @Observable macro, alas ๐Ÿ˜”

๐Ÿ”ด Property wrapper cannot be applied to a computed property

22.07.2025 16:23 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Screenshot of a class named "MyModel" with no properties and the @Observable macro applied, comparing the code from Xcode 16 and Xcode 26 beta 3. It shows that there is vastly more code being generated in Xcode 26.

Screenshot of a class named "MyModel" with no properties and the @Observable macro applied, comparing the code from Xcode 16 and Xcode 26 beta 3. It shows that there is vastly more code being generated in Xcode 26.

This took me by surprise. The code generated by the @Observable macro in Xcode 26 beta 3 is noticeably different from what Xcode 16 produced.

22.07.2025 07:46 โ€” ๐Ÿ‘ 6    ๐Ÿ” 4    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Nah.

21.07.2025 11:59 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Iโ€™m working on a new Shortcuts-focused tool. Itโ€™s not like Scriptable, but it plays in the same space. Iโ€™m still wrapping my head around the idea, but Iโ€™m incredibly excited. Looking forward to sharing more and hearing if it makes sense to anyone but me ๐Ÿ˜„

20.07.2025 17:34 โ€” ๐Ÿ‘ 25    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
Video thumbnail

This is why I love cycling. Even while suffering, Evenepoel handed his bottle to a young fan. Look at that smile. Heโ€™ll remember this for the rest of his life. In cycling, you get close to your heroes, and they so often choose to act like heroes, even in their toughest moments.

20.07.2025 05:44 โ€” ๐Ÿ‘ 8    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Screenshot of Swift code showing an empty implementation of app intent along with the error from the post.

Screenshot of Swift code showing an empty implementation of app intent along with the error from the post.

Iโ€™m SO close to generating entire app entities and app intents from models. The last blocker is generating `parameterSummary`.

I keep getting:

"The property 'parameterSummary' must have a compile-time static value and cannot be computed or dynamic"

No idea how to solve it.

17.07.2025 11:43 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Xcode showing a Swift file where an AppIntent is defined using a macro, with a build failure in the report. The error reads: โ€œStatic extraction builder failure: The file โ€˜@_swiftmacro_13PlaygroundKit7Example18AppIntentGeneratorfMe.swiftโ€™ couldnโ€™t be opened because there is no such file.โ€ Build fails at the Package PlaygroundKit step.

Xcode showing a Swift file where an AppIntent is defined using a macro, with a build failure in the report. The error reads: โ€œStatic extraction builder failure: The file โ€˜@_swiftmacro_13PlaygroundKit7Example18AppIntentGeneratorfMe.swiftโ€™ couldnโ€™t be opened because there is no such file.โ€ Build fails at the Package PlaygroundKit step.

Noooo! Tried using a Swift macro to generate an App Intent and Xcode fails to compile because it can't find its own generated file (I think?). Tested in Xcode 26b3 and 16.4. I really needed this to work for my new project ๐Ÿ˜ข (FB18843876)

Example project: github.com/simonbs/App...

14.07.2025 20:03 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@simonbs.dev is following 20 prominent accounts