ObjC is so hard to read!!! Meanwhile…
Nope, no issues here.
I'm stuck in Swift land for at least the next week, so expect a lot of moaning and groaning. There's for sure some parts that I like about it, if they had a version with maybe 1/4 of the features (i.e. needless complexity) I might actually say I'd enjoy using it.
Yesterday's Swift week highlight was spending at least an hour trying to find the right annotations to tell the compiler/concurrency stuff what a couple methods do threading wise. Turns out I had the right combo from the get go but it’s broken in both Xcode 26.2/4 and fixed in the .5 beta. Couldn't tell in older Xcodes because Apple blocks old Xcodes from running in current OSes for "reasons”.
Swift's concurrency approach is emblematic of its complete lack of pragmatism. Runtime sees hey I think this code is running in the wrong thread (or context if you must) what do I do? Warn and ignore, because it's probably OK 99% of the time, nope. Warn and correct, because you have enough info to infer what is probably needed, nope. How about crash 100% of the time, yep, that's the one.
Generate Fix. “I’m removing the code.” Thanks AI!
See its not just me!
Just to prove that I don't always just complain, the Expand Macro feature of Xcode/Swift is pretty cool.
I spent a good part of this week fighting with Shortcuts. Shortcuts are conceptually simple, take a thing, give a thing. I don't know if I'm missing something fundamental (that's also not clearly documented anywhere) but what a freaking nightmare when "thing" isn't just a simple String/AttributedString. There's a Transferable protocol that's supposed to magically convert between types but the Shortcuts app doesn't seem to call it unless the user does extra stuff when passing variables around.

After fighting with it for literal days I ended up setting it to just take an AttributedString and return a “UnionValue" thing that is like documented in one web page and a WWDC link, both with incorrect explanation of how it should be used.

It still doesn't work like I think it should but it works mostly OK and at this point I give up working on a feature 1% of users will ever touch.

If I was a better developer, I'd create a test project and get it ready for talking to someone at WWDC (remotely) but I'm more ready to just wipe this from memory and forget it even exists. Rant fin.
@paul I’ve had an Apple employee tell me I wasn’t a good enough developer and I should be able to figure out all the details the documentation omits.
@timo Damn, I guess its good those sessions are remote, caused I'd probably have smacked their smug ass.
@jongary @paul it’s been a while, this was on Twitter. Something about tvOS, maybe TVML or HLS. Docs came out a year late. And he was like, well Netflix figured this out no problem on their own. Why couldn’t you?
@timo @paul plenty of frustration and stubbed toes working with AVFoundation.
@jongary @timo yeah I remember when HLS stuff first came out and I sure as hell could never get it working right 100% of the time. Don't think I ever remember seeing any docs.
@paul @jongary there was an Apple test server findable via Google that had a copy of Pirates of the Caribbean with all the undocumented stuff like HLS chapters.
@timo @paul Wow.. that's horrible. :(
@paul I talked to someone at WWDC and they just told me to file a radar and mention a specific person by name. I did that, 7 years later UIStackView is still bugged.
@inket true, I had a similar experience, still not fixed.

@paul The Shortcuts/App Intents API is so fucking inscrutable. And the documentation is too disjoint to fix that problem.

And/or I’m a dunce.

@caseyliss LLM helped a lot with that, but even it was totally lost a lot of times.
@paul @caseyliss imagine having to add support for it before LLMs were a thing :\
@brianmueller @paul @caseyliss With an inscrutable UI that wasn’t documented and that generated magic and hidden header files. :\\
@chockenberry @brianmueller @caseyliss that sounds like version N-1. Version N is differently inscrutable.
@paul @chockenberry @brianmueller @caseyliss Not to mention the UI of the Shortcuts app itself can be pretty bizarre. I spent a bunch of time reimplementing stuff in my app intents because I hadn't realized you could do various things with variables etc. by right clicking on things in Shortcuts.
@paul @brianmueller @caseyliss It was. And version N is better, but still bad.
@brianmueller I don't really consider myself LLM dependent, but freely admit I don't think I would've gotten anything done without one to boiler plate stuff for me and explaining how the hell the Swift bits work. Huge reason I didn't consider doing it until now.
@paul yep it’s very useful for stuff like this, I hope they can work with the summer beta APIs, I always have the most trouble then
@brianmueller I always try to wait a few months to years...
@paul @brianmueller I got Codex to write an app that lets Final Cut talk to it via AppleEvents and handshake an export. Tried years ago manually and had to give up.

@paul @brianmueller +1

My very basic intents would never have shipped were it not for Claude Code

@paul @caseyliss

I love trying to make an intent / extension that takes an image as an input only to have some Apps like Safari not provide images as images but URLs instead.

@its_john_davis @paul @caseyliss there are so many apps that paste the URL from Safari rather than the image, that I've taken to just saving images instead if I then want to do something with them. Yey for cluttering up my disk!

@amyworrall

yeah, I really think this is a "problem" that only Safari devs can fix. All we can do is declare an image as an input, or a URL as an input, and that URL can be _anything_. It's tough.

I've taken to creating a shortcut that will download the contents of the URL before invoking an AppIntent that I made, or erroring out if it's not an image.

@paul I had really simple needs, and coincidentally, my first real Intents stuff is in review as we speak. But _hoo boy_ I really wish they had a better documentation story around ~~this~~ everything.

@paul Yeah, it seems like anywhere you want to be able to produce/accept more than one type is full of dragons.

Also if you stumble upon @UnionValue in your travails, don't bother, it seems to just be straight up broken for intent parameters (on macOS at least).

@bwebster yeah that UnionValue would've sure helped 2-3 days ago... I got it working for a return though.
@paul The "data specifying" when passing variables is confusing and often broken, it's true
@paul When it works. More often than not I find it just doing nothing.
@paul Humans out here making up new languages trying to save a couple characters typing 🙄 and now even the computer doesn't care about that if it makes things looks worse.
@paul And, I mean, can we really take Swift style seriously while we can’t have a clear public interface like with Objective-C .h header files… (yeah, I know, Xcode is supposed to be able to generate one for you, "lol”)
@paul “if developer makes strong statements about trivial coding style questions, just agree. Do not try to debate!”
@paul Good god that one is so hard to stop doing. Harder than not having to put `;` at the end of every line!!
@paul That's not just artificial intelligence, that's artificial wisdom. 🙌
@paul …I think I’ll stay on this version of Ivory