iOS Newsletter
Hi peeps,
We have a diverse mixture of articles this week - from coding for NeXTSTEP (yeah, really!) to defining our own large value types with copy-on-write semantics. Between all of that we’re looking at the Swift 6 Mutex
, defining dependencies for binary Swift packages in SPM, implementing picture-in-picture on iOS and reducing iOS app size.
Oh, and finally - Xodot is now officially launched, so we can finally toy with some Godot development on our iPads.
Enjoy!
Swift
Protecting mutable state with Mutex in Swift
Swift 6 is often associated with the changes around the Concurrency model, but there are other neat features that it brings to the table. One such thing is the Mutex
. Mutexes are really useful when we don’t want our code to be asynchronous and when the operation we’re synchronizing is quick (like assigning to a property).
Adding dependencies to binary Swift packages
Defining dependencies for regular Swift packages is pretty straightforward. This is not really true for binary packages, but still there is a way to make SPM fetch & link dependencies for them. Find out how in this article.
AI/ML
Identifying individual sounds in an audio file
Recognizing objects in images has become quite a popular task in computer vision. Recognizing sounds in audio files has the potential to expand the world of audio in a similar fashion. One thing about Apple’s SoundAnalysis
framework is that it also works on prerecorded audio files. Check the article to get started with the topic by building a simple sound classification app.
UI/UX
Demystifying Picture in Picture on iOS
Picture in Picture (PiP) allows users to continue watching video content in a small, movable window while using other apps. It’s particularly useful for video calls, streaming, etc. However, adopting picture-in-picture in our apps is not an easy task. This article walks us through the details and feeds us a GitHub project to use as a reference.
5 Ways To Reduce Your iOS App Size
This article offers a checklist of good practices we can go through in an attempt to reduce the size of our apps. Remember, it’s often the sum of multiple factors that has the most impact.
Tools
Xogot: Godot for iPad - Available on the App Store
We have written about Xodot in the past, but this time there’s an official launch. In their own words:
Xogot brings the full power of Godot 4.4 to a touch-first, iPad-native experience - complete with an integrated code editor, 2D and 3D scene editors, debugger, and more. Whether you’re just getting started or you’re an experienced developer, Xogot offers a portable, approachable way to build games on the go.
Talks
Functional data structures in Swift
An interesting talk that explains the semantic difference between value and reference types, and illustrates how this facilitates safe and robust coding practices in Swift. It also clarifies how the copy-on-write strategy for large values works and how it interacts with Swift’s memory management system. Finally, the presenter demonstrates how we can define our own copy-on-write large value types.
try! Swift Tokyo 2025 - I Built an App for NeXTSTEP or:
This one is for the historians among us - the author of the talk had some fun coding an app for NeXTSTEP and gives us his look at writing code for the predecessor of the ecosystem that we’re currently developing in. We certainly had fun watching the talk as everything looks… hmm… simplified - from the web-based presentation to the tooling and the app. One last thing to point out - po
rocks everywhere!