Subscribe for weekly commentary and coverage of Swift and Apple platform development. Written by Dave Verwer and published every Friday. Free.

Picture of Dave Verwer

Issue 733

31st October 2025

Written by Dave Verwer

Comment

Happy Halloween! 🎃

The first time I ever wrote about Swift running on Android was back in Issue 220 when I linked to Romain Goyet’s post. What he demonstrated was primitive, and even printing “Hello World” was beyond what was achievable at that time. He did manage to get a simple function call working, though, which was something! Romain published his post almost exactly ten years ago, and to give that context, Swift wasn’t even open source at the time.

It’s been quite the journey from that experiment to where we are now, and last Friday, Joannis Orlandos, on behalf of the Android Workgroup, announced nightly preview releases of the Swift SDK for Android on the official Swift language blog.

It wouldn’t be fair to attribute this major step towards Android becoming an officially supported Swift platform entirely to the formation of the Android Workgroup, but it’s hard not to see some influence from it. Years of thankless effort have gone into Swift on Android and related projects, but things have certainly accelerated in terms of official adoption in recent months. It’s worth reading Marc Prud’hommeaux’s “afterword” on the SKIP.tools site for a great list of people who deserve credit.

The workgroup started with the formation of what was originally called a “Community Workgroup”, which then developed into a “full” workgroup, and in my opinion, it’s a testament to how well the Swift open source project is working. Yes, Apple regularly announces new workgroups, but it’s fantastic to see that the community can also initiate this process for projects that are significant.

In terms of getting started with the nightly build of Swift on Android, there are some good next steps in the announcement, including a Getting Started guide and a repository full of example code.

Before I sign off, I also want to mention the continuing efforts around Swift on Wasm, and I am grateful to Max Desiatov for taking the time to write up how the project has progressed during the past two months. It’s really great to see Swift on both platforms progress so … swiftly. 😂

– Dave Verwer

The best mobile app monitoring product just keeps getting better

Sentry automatically captures crashes recorded on macOS, iOS, and tvOS to make sure you’re shipping the best experience to your users. Oh… and also Emerge Tools is now a part of Sentry, so things are getting even better. Use coupon IOSDEVWEEKLY2025 for Sentry’s Business Plan and get started now with 2 free months.

News

Enhancements to help you submit and market your apps and games

Apple may have already announced this:

Offer codes build on the functionality of promo codes and provide improved configuration and customer eligibility options. As a result, starting March 26, 2026, you’ll no longer be able to create promo codes for In-App Purchases in App Store Connect. Any existing promo codes for In-App Purchases you’ve created can be redeemed until they expire. You can continue to use promo codes in order to provide people with a free download of your app.

… but if they did, then I wasn’t aware of it. It seems reasonable, but it’s something you’ll want to be aware of.

Tools

swift-commit-gen

Is your repository commit history full of “WIP”, “Fixed it”, “No, really, I fixed it this time” messages? To help solve that problem, Hesham Salman created this fun tool that uses Apple’s foundation models to summarise changes and give you better commit messages. It won’t be as good as describing why you made the change, but it will be better than “Fixed it”.

Code

spmgraph

Here’s an interesting new package/tool from Felipe Marino. It can visualise, test, and lint your package’s dependencies. Linting is especially interesting, as you can define your own rules. It’s perfect for making sure your dependencies don’t get out of control.


Cultivated Task Cancellation

Max Seelemann:

Apropos dirty hands… we’re 1,500 words into task cancellation and not done yet. I have two more posts coming up on the dirtier part—cancellation handlers and what I call the cancellation trap.

This post starts a well-written three-part series (1, 2, and 3) on task cancellation. 👍

Videos

Videos from Swift Connection 2025

Earlier this month, a group of people gathered in Paris to be educated and entertained at Swift Connection 2025. If you didn’t manage to make it to the conference, this set of videos from the event is the next best thing.

Jobs

Senior QLab Developer (macOS) @ Figure 53 – We’re a small (18 person) company with unusually non-hierarchical structures and a dedication to enjoying our work and taking care of each other. We’re hiring a senior macOS developer to work on QLab, powerful software for the design and play back of sound, video, lighting, and show control cues. – Remote (within US timezones)

Senior iOS Engineer @ alba – We have a unique approach to identifying opportunities, entering markets, and scaling our products. This approach puts us on a fast trajectory for maximizing the reach and delight our products create. In just two years since our founding, our products have already been used by over 28 million users. – Remote (within European timezones) or on-site (United Kingdom)

And finally...

Which Craig are you dressing up as tonight?