In this post we will explore the most modern APIs that SwiftUI provides for programmatic scrolling, covering how to configure the initial scroll position of a scroll view, how to drive it programmatically, and how to read the current position back. We will also cover some of the nuances that are easy to miss. It's worth noting though, that all of these new APIs apply to ScrollView only, and ScrollViewReader remains the only native option for programmatic scrolling in lists.
The Observation framework is a modern Swift feature that provides automatic change tracking for observable objects. It replaces ObservableObject with a cleaner, more efficient approach using Swift macros.
I built a sample app for this post called Tour Merch. It’s an App Clip plus a parent app, both written in Swift 6 with strict concurrency on. The clip lets you buy a shirt at a Metallica show with Apple Pay; the parent app lets you see every shirt you’ve bought across the tour. The whole companion repo is at the end of this post if you want to clone and poke.
What I want to walk through is the stuff that matters once you sit down to build one of these: what App Clips are actually for, how invocation works, how the project is wired, where Apple Pay forces your hand under Swift 6, and how the clip hands off to the parent app without losing the receipt.
Feature flags are a foundational tool for modern mobile development. They allow teams to control behavior at runtime, roll out features gradually, run experiments, and decouple deployment from release. In iOS applications, a well-designed feature flag system also becomes a central coordination mechanism between product, QA, and engineering.
This article walks through a type-safe and thread-safe feature flag implementation in Swift. It explains the design decisions behind the approach, the problems it solves, and how to integrate it into a real application.
SwiftUI provides built-in support for animations. In many cases, adding animations only requires attaching an animation to a state change.
There are two common ways to do this:
In this article, we'll look at how both approaches work and when to use each of them.


Text recognition using Apple's Vision framework. The article compares the old API (VNRecognizeTextRequest with VNImageRequestHandler, synchronous perform, completion handlers) and the modern API introduced in iOS 18 and macOS 15 (RecognizeTextRequest, Swift native, Sendable, async/await). The modern version is cleaner: configure the request as a value type, call try await request.perform(on: image), get observations, extract top candidates. The article also covers recognition levels (.accurate vs .fast), language detection (automatic or manual), multi line documents, and the newer RecognizeDocumentsRequest for paragraphs instead of lines.
Join the Mobile Signal Talent Directory and make your profile visible to hiring teams searching for iOS talent.