iOS Resources
Hand-picked Articles

Curated from top iOS blogs. Stay up to date with high-quality content.

Latest curated iOS content

Articles

Enum Cases as Protocol Witnesses in Swift

June 8, 2026

Enums are one of the most useful modeling tools in Swift. We use them for screen states, navigation routes, user actions, errors, commands, feature flags, and many other parts of iOS applications.

A lot of these models have something in common: they describe a closed set of possible values. A screen can be loading, loaded, or failed. A route can open a list, details, or settings. An action can represent view appearance, refresh, or item selection. These concepts map naturally to enums.

Styling measurement unit fonts in SwiftUI

June 7, 2026

By default, SwiftUI's Text view renders formatted measurements as a uniform string and applies the same font and style to both the value and the unit. In some situations we might want to style the unit differently from the value to make it less dominant, for example. We can do this using the AttributedString API.

We can build a reusable Text initializer that targets only the unit component of a formatted measurement and applies a distinct font.

How to create a toggle control widget in iOS

June 6, 2026

iOS 18 introduced interactive controls that live directly in Control Center and on the Lock Screen. Unlike widgets that only display information, control widgets respond to taps, letting users trigger actions without opening the app. A ControlWidgetToggle is the simplest form: it represents a boolean state and fires an AppIntent when the user taps it.

This article walks through building a Focus Session toggle. Tapping it starts or ends a focus block, and the control reflects the current state each time the user opens Control Center.

Why Does Every Swift Charts Bar Get the Same Gradient?

June 5, 2026

Swift Charts is not rendering the gradient incorrectly. It is resolving the gradient in a different coordinate space than you probably expected.

The practical fix is alignsMarkStylesWithPlotArea(_:).

SwiftUI animation timing

June 4, 2026

The Animation type in SwiftUI describes the timing curve for a value change, controlling how quickly a value moves toward its destination and whether it overshoots before settling. We can apply it to a specific view using the animation(_:value:) modifier, or wrap a state change in withAnimation(::) to animate all affected views at once.

On-Device Video Quality Enhancement

June 3, 2026

A blurry video stream is not fixed by simply adding a sharper filter.

Real on-device video quality enhancement has a harder constraint: every decoded frame must be enhanced before the next frame arrives. At 60 fps, the system has about 16 ms per frame for decoding, enhancement, rendering, UI work, and synchronization. If the app copies each frame into CPU memory, converts formats, runs a model, then copies it back to the GPU, the feature may look good in a demo and still fail in production.

The important idea is this: on-device video enhancement is a frame pipeline problem first, and an AI model problem second.

Core Data + Observation: From Property-Level Reactivity to a Freer Mental Model

June 3, 2026

Unfortunately, within Apple’s persistence framework ecosystem, this experience is mainly reflected in SwiftData. The large and stable Core Data ecosystem, which still powers many complex applications, has not received the same level of native integration. To bring the convenience of modern Swift features to this long-standing persistence framework, I recently explored and implemented Observation support in Core Data Evolution(CDE), giving NSManagedObject property-level precise observation capabilities.

This article discusses the motivation behind this feature, how to use it, its implementation approach, the engineering challenges involved, and some of the trade-offs made during development.

Enabling Haptic Feedback with sensoryFeedback in SwiftUI

June 2, 2026

Learn how to add haptic feedback to SwiftUI apps using the sensoryFeedback modifier and explore common and lesser-known feedback styles that make interactions more engaging.

How Do You Build a Mutex That Works with async/await ?

June 2, 2026

A couple of days ago I ran into a really interesting use case: I wanted to protect a method from being called more than once at a time. You might think "actor, done" — but nope, an actor won't save you here.

Because of actor reentrancy, the moment your method hits an await and suspends, another task can sneak in and start running the same method.

Enter Sandman Mode: Three Months Inside Xcode 26.3’s Agentic Coding

June 2, 2026

I handed Xcode a task three months ago and walked to the kitchen for coffee. When I came back, the build was green, two files I hadn’t named were edited, and a test I’d forgotten existed was passing again. I sat down, read the diff, and reverted half of it.

That’s the honest shape of the last three months. The agent built into Xcode 26.3 is genuinely good at a specific kind of work, genuinely bad at another, and the gap between those two is exactly where you earn your keep now. This is a field report, not a launch-day hot take — three months of real work on VinylCrate, the wins and the reverts both.

In partnership with
Looking for your next iOS opportunity?

Join the Mobile Signal Talent Directory and make your profile visible to hiring teams searching for iOS talent.

Join the Directory
© 2026 Mobile Signal. All rights reserved.
Made by
Stan
linkedin