Matt Massicotte
massicotte.org
Matt Massicotte
@massicotte.org
apple platform dev, outdoors, justice, games, he/him

Every problem has a simple wrong answer

https://github.com/mattmassicotte
https://www.massicotte.org
https://mastodon.social/@mattiem
Pinned
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.

www.massicotte.org/step-by-step...
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 alr...
www.massicotte.org
Arg, very tough call here. I want to use AWS Keyspaces (Cassandra). I like it so much more than Dynamo.

But the Swift Cassandra driver (made by Apple!) has two serious limitations with Keyspaces, both of which are unrealistic for me to fix myself. And I'm probably the only person doing this.
November 28, 2025 at 1:23 PM
“We’re going to have some incredibly good deals you won’t want to miss”

Will any of the products on sale be in stock?

“They will not, no”
November 27, 2025 at 11:41 PM
Finished Xenoblade Chronicles 3. 75 hours, over about 11 months. Huge game, almost unbelievably so. Wild story, felt a movie at times. Deep, complex game play yet also somehow felt repetitive.

Next up: Witcher 3.
November 27, 2025 at 12:11 PM
I’m not nearly as dependency-adverse as some others out there, but I still think hard about it. And it is amazing how often you can abstract a whole package down to one single function.
November 25, 2025 at 10:54 PM
Making more progress on my ATProto thingy. I’m honestly not sure what to make of the protocol itself. The level of complexity is kind of mind blowing.
November 25, 2025 at 8:36 PM
I’ve delayed updating macOS for the first time in I dunno, 15 years? But today I finally installed Tahoe. Not that anyone should care, but my first impressions are, well, negative.
November 25, 2025 at 3:50 PM
I'm helping someone debug a problem. I captured about 25 seconds of logging from Console.app. Unfiltered, there were just over 500,000 entries.
November 23, 2025 at 9:55 PM
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.

www.massicotte.org/blog/mainact...
MainActor by Default
It's enabled for new projects, but I wouldn't recommend it.
www.massicotte.org
November 20, 2025 at 7:57 PM
I have this theory there is no one left using a Swift version < 6.0.

Notes:
- For Apple platforms, this means Xcode 15.4 or older.
- I cannot stress enough I am asking about compiler version, not language mode.

But if you happen to be using an older compiler I'd love to hear from you about why!
November 20, 2025 at 11:25 AM
For something completely different, can I interest you in a story about a prank, 10 years in the making, involving shell scripts and kittens?

www.massicotte.org/blog/ten-yea...
A Prank Tens Years in the Making
The delightful little mystery involving shell scripts and kittens.
www.massicotte.org
November 19, 2025 at 4:29 PM
I want you to win, because it requires immense effort and recognition for that is awesome. But also, awards from Apple have been tainted *forever*.
November 19, 2025 at 3:21 PM
Updated my website today. I expect some bugs are still lurking.

www.massicotte.org
Matt Massicotte
Matt Massicotte
www.massicotte.org
November 18, 2025 at 8:33 PM
Reposted by Matt Massicotte
This would be so nice to improve the developer experience around non-Swift packages.
forums.swift.org/t/expose-sys...
Expose SystemPackageProvider
SwiftPM today supports specifying system packages as being provided by a package manager (apt, winget, yum and brew). While we can record this information in our Package.swift, it's not used in any to...
forums.swift.org
November 16, 2025 at 11:20 AM
Reposted by Matt Massicotte
🧪 Our final post on this year’s GSoC projects focuses on work by Kelvin Bui to improve console output for testing: www.swift.org/blog/gsoc-20... Thanks to all our contributors and mentors!
GSoC 2025 Showcase: Improved Console Output for Swift Testing
The Swift community participated in Google Summer of Code 2025, and we’ve recently been showcasing all of the projects and work accomplished here on the Swift blog. You can learn more by following the...
www.swift.org
November 15, 2025 at 2:20 AM
Hmm. Do I spend 1/2 hour to do the task manually or 4 hours to automate it?
November 14, 2025 at 11:50 AM
I’m noticing a lot more packages using versioned [email protected] files, seemingly unnecessarily. This is a weird trend. Unless I’m missing something?
November 14, 2025 at 10:38 AM
A global actor isolated type was walking down the street. Had a nice, steady GAIT.
November 13, 2025 at 11:41 AM
I try my best to sell unwanted stuff locally. Not for the money, just to be I dunno, less wasteful somehow? I've done it a lot, and it usually goes really well.

So. Today, let me tell you, it did not go well.
November 13, 2025 at 1:44 AM
Reposted by Matt Massicotte
My talk from #ServerSideSwift is live!!

And I’m announcing a new website I’m still working on called LearnSwift .space to provide more content for the Swift community on using Swift outside of Apple platforms

LearnSwift.space
November 11, 2025 at 5:00 PM
Reposted by Matt Massicotte
The #swiftlang toolchain is now available on Amazon Linux 2023.

Two years after my first commit allowing Swift to compile on Amazon Linux 2023, it took a while team effort to make this happen.

Get started and deploy your Swift apps in the cloud today!
November 11, 2025 at 6:05 PM
Learning why you need to use @.MainActor is much easier than learning why you need to use nonisolated.
November 11, 2025 at 12:19 PM
Over the last few months, a bunch of promising leads haven't worked out. These things can take months, so who knows? But in the meantime, I have room for more work.

I help teams adopt Swift 6/Concurrency with confidence and success. More info about me here:

www.massicotte.org/consulting
Consulting
I write stuff here.
www.massicotte.org
November 10, 2025 at 4:16 PM
Reposted by Matt Massicotte
When building commercial, closed-source SDKs, it's important to decouple the build from your local environment, to mitigate the risk for build errors and malware. This post shows how to set up GitHub Actions to build the XCFramework & dSYMs of a binary Swift Package.

danielsaidi.com/blog/2025/11...
Building Closed-Source Binaries with GitHub Actions
Using GitHub Actions is a great way to automate your build pipeline. In this post, we’ll take a look at how to use GitHub Actions to buil...
danielsaidi.com
November 9, 2025 at 4:13 PM
@khanwinter.com I’ve been doing a little ATProto work, and your CBOR library is really cool! Still very early, so I don’t have a lot of experience yet. But wanted to say thanks regardless!
November 9, 2025 at 4:02 PM