iOS Newsletter
Hi folks,
This week we’re continuing to look at the new stuff that was introduced at WWDC 2025. We’re also taking a look at dealing with libraries - linking, copying, static vs dynamic libraries, mergeable libraries and the impact any of these have on our builds.
We think you’re going to enjoy this one!
Swift
Static, Dynamic, Mergeable, oh, my!
For starters we’ll go with a quote:
If you want to embarrass a senior iOS engineer, ask them to explain the difference between Dynamic Frameworks and Static Libraries.
Don’t hesitate to give this post a go, it’s a great dive into the matter of static vs dynamic linking, build and launch time impact and more.
Thermal States on iOS
In contrast, this post is a bite-sized piece of advice on how to keep an eye on the thermal state of your iOS application. This is important in many cases, especially when optimizing performance and battery life.
Exploring concurrency changes in Swift 6.2
Time for the (almost) obligatory concurrency-related post. Again we’re focusing on the changes coming with Swift 6.2. We’ve stumbled upon some of the bits and pieces in the last few issues, but here’s everything in one place with an in-depth explanation.
UI/UX
What is new in SwiftUI after WWDC25
This article sums up the most important SwiftUI changes from this year’s WWDC. While it’s not covering everything it gives us a good overview of some of the updated design patterns.
Stretchy header in SwiftUI with visualEffect()
A common design pattern that never seems to get old is to have a large image at the top of a scroll view, extending all the way into the top safe area. This image expands when the user pulls down to over-scroll. Oftentimes we’ve seen this implemented with the onScrollGeometryChange()
but the same can be achieved with the help of the visualEffect()
modifier.
Exploring the Secrets of layoutPriority in SwiftUI ZStack
We bet that the .layoutPriority
modifier is not among the most popular SwiftUI modifiers, but it can have a great impact on a view’s size allocation. Unlike its behavior with VStack or HStack, where a higher priority view will fight for more space when things get cramped, its behavior with ZStack is entirely different.
AI/ML
The Ultimate Guide to the Foundation Models Framework
Fresh out of this year’s WWDC is the new FoundationModels
framework, an on-device LLM. It offers some generative, on device AI capabilities like natural language understanding, content generation, summarization, and more, while maintaining users’ privacy and performance.
GodotSwiftMcp
Writing an MCP server in Swift? Why not? That’s exactly the case here. As the repo states:
The reason for this separate implementation is that on the iPad with Xogot, we won’t be able to run an out-of-process MCP server, so this version contains a pluggable provider infrastructure, but as a bonus, this also works with desktop Godot, and produces a self-contained MCP server.