Cassius Pacheco

67 Followers
103 Following
143 Posts
iOS dev since 2011
websitehttps://cassiuspacheco.com

I've been thinking about this one for a long time. There is subtly here, but I tried my best to keep it short. I don't think you should use MainActor as the default isolation.

https://www.massicotte.org/blog/mainactor-by-default/

MainActor by Default

It's enabled for new projects, but I wouldn't recommend it.

massicotte.org

I finished up another in my "Concurrency Step-by-Step" series. This one is about everyone's favorite: protocols!

It also has a sneak peek for a super-secret idea I'm really excited about: regular old classes.

https://www.massicotte.org/step-by-step-conforming-to-protocols

Concurrency Step-by-Step: Conforming to Protocols

If there’s one topic that I find intimidating, it’s protocols. They are very powerful and in extremely wide use. But I’m sitting here, trying to figure out how to lead into this discussion and I’m already getting overwhelmed. That’s because protocols can be incredibly complicated.

massicotte.org
Swift Connection 2025 - Gui Rambo - Inside Liquid Glass: How iOS 26 Synthesizes Refractive UI

YouTube

It still boggles my mind that Xcode's *built in* AI autocomplete keeps suggesting APIs that don't exist.

Like, it's literally sitting on top of a compiler that can determine if an API exists, so why can't it ask the compiler *before* suggesting it?

The entire purpose of autocomplete is to help me find out the real name of hard-to-remember APIs. I'm perfectly capable of *misremembering* them by myself, I don't need the computer to do it for me

I have been having such a good time with #iOS26 keyboard /s.

If you have text prediction enabled and an inputAccessoryView set you’re bound to incorrect keyboard sizing reported (FB20366458) and even the whole app hanging if you use safe areas in it (FB20703137).

Example: open WhatsApp, set focus on the message bar to show the keyboard, then long press a message to add a reaction. The keyboard dismisses and comes back with wrong sizing, making the content scroll behind the keyboard.

This whole perspective of hiding highly used buttons behind menus and “more” buttons in iOS26 just so I gain a barely noticeable amount of “content” is quite frustrating
Swift 6.2 is here, including so much 🆕🥳:
⏩Approachable concurrency
🦺Opt-in strict memory safety
📦WebAssembly support
🏃Faster build perf for macros
🐞Enhanced async debugging
📚Inline stack-based arrays
🚇Subprocess support
🧪Test result attachments
https://www.swift.org/blog/swift-6.2-released/
Swift 6.2 Released

We’re excited to announce Swift 6.2, a release aimed at making every Swift developer more productive, regardless of where or how you write code. From improved tooling and libraries to enhancements in concurrency and performance, Swift 6.2 delivers a broad set of features designed for real-world development at every layer of the software stack.

Swift.org

I took a moment to update my Swift Concurrency glossary. Refined some commentary, added more links, and updated things for 6.2.

https://www.massicotte.org/concurrency-glossary

A Swift Concurrency Glossary

It would be nice if there was a single place to go to look up all the terms, keywords, and annotations related to Swift concurrency. So here it is. If you notice something I’ve missed, pleased o let me know. Oh and of course, I included some commentary.

massicotte.org
Building stuff on closed source broken API is so incredibly frustrating. Dunno how @krzyzanowskim still manages. https://blog.krzyzanowskim.com/2025/08/14/textkit-2-the-promised-land/
TextKit 2 - the promised land

After 4 years with Apple's TextKit 2: The promised 'better' text engine has unstable scrolling, unreliable height estimates, and viewport issues so bad that even Apple's TextEdit suffers from them. Good architecture, but the implementation makes it frustratingly difficult for real-world apps.

Marcin Krzyżanowski

I've just noticed that the official Swift language guide has been updated to include a number of additional topics on concurrency. There's still a long way to go here, but this is good progress!

(It also uses "split isolation" in an example: a type with different isolation than its members. Has uses, but is a mistake 99% of the time)

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency#Isolation

Documentation