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
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
There are two types of code: morse and remorse
November 9, 2025 at 3:55 PM
Working on a side project. Just (barely) enough progress that it remains interesting. Just enough complexity that it feels like it’s got some kind of personal vendetta against me.
November 8, 2025 at 11:29 AM
I'm playing around with a custom, minimal #ATProto PDS server concept. The network won't talk to me, aside from some describeServer requests. I have no visibility into why and all can I do is guess...
November 7, 2025 at 12:03 PM
Well I have just screwed something up. (It’s DNS)
November 6, 2025 at 11:44 PM
Number one thing I look for in technical blog posts is the author saying they were confused, made a mistake, and/or still don't understand something. It makes you seem human, which is good. But it's also such a strong indicator of good information.
November 6, 2025 at 2:12 PM
Reposted by Matt Massicotte
Indie developers now have more tools in their toolkit for building with Swift across platforms, thanks to Skip. Exciting to see a Swift community member building a business with the open source Swift SDK for Android. skip.tools/blog/skip-fu... #Android
Skip Fuse is now free for Indie Developers!
Since the launch of the official Swift SDK for Android on swift.org last month, we have been overwhelmed by a surge of interest in building cross-platform apps using a single shared SwiftUI codebase. ...
skip.tools
November 5, 2025 at 9:03 PM