Matt Gallagher

@cocoawithlove
752 Followers
85 Following
318 Posts

If you want a roundtable panel discussion from some of the SwiftUI folks, talking about the history, recommendations, problems, Liquid Glass, generative AI, (how to pronounce 'detent'), etc, there's 30 mins of it here at the end of this new Meet with Apple session

https://www.youtube.com/watch?v=Z3vloOtZLkQ

SwiftUI foundations: Build great apps with SwiftUI | Meet with Apple

YouTube

Further testing with Xcode 26.3's MCP tools reveals:

1. They don't work with OpenCode (schema versus structureContent mismatch)
2. Is insanely irritating in the Claude desktop app (which constantly restarts the connection, causing Xcode to block waiting for authorisation again)
3. Is easy to get a mismatch between "navigator paths" and "disk paths" if your project structure doesn't literally match disk structure
4. The tabIdentifier parameter confuses LLMs and they usually get it wrong

Xcode 26.3's new MCP integrations do seem to be a nice improvement for agents making traversal and building cleaner.

But XcodeUpdate tool makes diffs illegible when called from a CLI and I had to add a note to avoid it.

And GetTestList – which offers no filtering options – overflows the LLM's file limit with just 100 tests, forcing the LLM to write the output to a file and slowly walk through while looking for a single test, just so it can then use RunSomeTests. Definitely needs improvement.

Thanks to those who suggested my particular preferences might be best aligned with OpenCode; it is the nicest environment I've tried so far.

I still find writing text prompts stressful (not sure why that would be unexpected from a career programmer) and I keep killing agents when I don't like the direction they start in. I think I really just prefer to draw the first couple circles before prompting to fill in the rest of the owl.

My blog article last week has had some of the most negative feedback of anything I've ever published. So many people emailing me to call me out for insulting AI. I'm not sure you need to defend AI, I hear it's doing fine.

But also, I gave all the major models 7/10 or better and said they're much better than last year. That's not a hit piece, calm down.

"Trimming" indentation from blank lines is the most widespread Swift formatting rule that I hate. All lines in a scope should be indented. Excepting blank lines creates hassle.

It's annoying to correct when adding new content, Xcode's "Trim-whitespace only lines" fails constantly so your linter's going to bug you, and it's visually annoying when "Invisibles" are on and you can see that your scopes are cut to shreds.

Regular hassle for zero benefit? Can't even turn it off in swift-format. Yuck.

I spent some time surveying different LLMs to see if they have improved in the last 12 months (since I tested them and found them marginal or unhelpful) for macOS Swift development.

They have gotten much better. But far from perfect. And my dream of relying on local LLMs remains a little further off.

https://cocoawithlove.com/blog/llms-twelve-months-later.html

🎉 10 years of open source Swift! A decade ago today, we opened Swift to the world with a simple blog post: https://swift.org/blog/welcome

What's grown since—thanks to an incredible community of contributors—has been extraordinary. Here's to the next ten years. 🧡

I watched a 2 hour rant about how/why C++ is bad.

It's a well-informed, incredibly in-depth, wry look at C++ and why a language with so much history, so many features and so many critical applications is simultaneously such a disaster.

https://www.youtube.com/watch?v=7fGB-hjc2Gc

The worst programming language of all time

YouTube

I find it strange that English tech phrases like "cloud services" frequently get shown in in other languages with minimal changes.

Learning that other European languages often leave the word "cloud" untranslated and the Japanese "translation" クラウドサービス is just a phonetic transliteration of the whole phrase is very weird.

Other languages have basically decided it's just meaningless computer jargon. I assume these other languages don't mind that it keeps getting a "cloud" icon?