Snapp Technology
Snapp iOS Weekly
Issue 97 June 19, 2026

Hi folks,

This week, we’re diving into some serious performance gains as Apple swaps C for Swift in their TrueType hinting interpreter, and exploring a new frontier with Anthropic’s Claude integration for the Foundation Models framework. We’ve got some essential SwiftUI polishing tips on measurement units and a reality check on the new .prominent tabs in iOS 27 — remember, tabs are for destinations, not actions. We’re also rethinking our layout strategies for the resizable iPhone era, stealing a BCP 47 trick for dynamic text, and leveling up our Swift Testing game with better custom assertions. And for the “tweak-and-run” addicts, Tinkerble is here to save us from a thousand recompiles.

Enjoy!

Subscribe

Articles

Swift

Swift at Apple: Migrating the TrueType Hinting Interpreter

Scott Perry

Apple finally swapped out their C-based TrueType hinting interpreter for a memory-safe Swift version in the Fall 2025 releases. Not only did they kill off a major security attack surface, but they actually managed to make it 13% faster. They used a bunch of cool Swift 6 features like ~Copyable types and Span to keep performance high without sacrificing readability.

AI / ML

Apple Foundation Models - Claude API Docs

Claude APIDocs

Anthropic just dropped a Swift package that lets us plug Claude directly into Apple’s Foundation Models framework. It basically lets you swap between the on-device model and Claude using the same LanguageModelSession API, which is a huge win for consistency. It’s currently targeting the OS 27 betas, so we’re looking at a future where switching from local to frontier models is just a one-liner.

UI / UX

Styling measurement unit fonts in SwiftUI

Natalia Panferova

Ever get annoyed that SwiftUI treats measurement values and units as one big blob of text? We’ve all been there. Natalia shows us how to use AttributedString and transformingAttributes to target just the unit, letting us downscale it with a .caption font while keeping the value bold. It’s one of those small details that makes our apps look way more polished.

From Size Class to Available Space - Is horizontalSizeClass Still Reliable?

Xu Yang

With iPhone Mirroring and resizable iPhone apps in iOS 26, horizontalSizeClass isn’t the width sensor we thought it was. Fatbobman explains that Apple is decoupling “host semantics” from “geometric space,” meaning a wide iPhone window doesn’t automatically trigger a .regular size class. If we want our layouts to actually adapt to the space available, we need to stop relying on idioms and start looking at the actual geometry of the view or scene. It’s time to stop thinking about “devices” and start thinking about “space.”

Dynamic Text in SwiftUI – Robb Böhnke

Robb Böhnke

Here’s a clever hack for handling app-wide preferences, like choosing between a full name and a display name, without littering every Text view with if statements. The author uses a custom FormatStyle and hijacks the Locale’s BCP 47 private use subtags to propagate preferences through the environment. It’s a bit of a workaround, but it makes the dynamic behavior feel like a native part of SwiftUI’s late-binding system. Who doesn’t love a good “hidden” feature of BCP 47?

SwiftUI’s New .prominent Tab in iOS 27 Is Not a Floating Action Button

Sagar Unagar

This one gives us a much-needed reality check on the new .prominent tab role in iOS 27. It’s tempting to use it as a Floating Action Button for “Add” or “Create” actions, but Sagar argues that’s a huge mistake. Tabs are for destinations, not actions. If tapping it doesn’t take the user somewhere, it shouldn’t be a prominent tab. Let’s not ruin our UX just because a new API makes it easy.

Testing

How to Make Custom Test Assertions in Swift Testing

Jon Reid

The article dives into the “Swift Testing” framework and explains why we still need custom assertions even though #expect is way more informative than XCTest’s old assertions. The big tip here is using SourceLocation to make sure failures are reported at the call site in your test, not inside your helper function. If we’re doing complex validation with if statements, Issue.record is the way to go for clean, readable failures.

Utils

Tinkerble

Edward Sanchez

This is a cool debug companion system for SwiftUI. Instead of recompiling every time you want to tweak a padding value or a color, you register them with @TinkerbleState and edit them live from a macOS companion app. It even supports logging live values and triggering app-side actions. It’s a huge productivity boost for those of us who spend half our day in the “tweak-and-run” loop.