iOS Resources
Hand-picked Articles and Videos

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

Latest curated iOS content

GeometryReader in SwiftUI

May 5, 2026

The article explains what GeometryReader is and how it provides access to a parent container's size and position through GeometryProxy. It covers basic usage (reading width and height), creating responsive grids that adapt column count based on available width, coordinate spaces with global frame conversion, a practical circular progress view example, and caveats about GeometryReader taking all available space by default and potential performance impacts.

Unexpected Task suspension points in Swift Concurrency

May 4, 2026

The article explains how tasks inherit MainActor isolation from the surrounding context, which creates an unexpected suspension point. A task created on the MainActor must wait for the main thread to become available before it even starts executing, even if its first real operation switches to a different isolation domain. This can cause performance issues, especially when many such tasks are created rapidly. The solution is to start the task on a different isolation domain immediately using Task { @concurrent in } and then jump back to MainActor only when UI updates are needed.

What is Swift Concurrency?

May 4, 2026

The article explains the motivation and mental model behind Swift Concurrency, starting from the 2017 Concurrency Manifesto. It covers isolation domains (MainActor, custom actors, nonisolated), how isolation propagates through calls and closures, Sendable for safe data crossing, and common problem areas like mixed isolation, detached tasks, MainActor.run, and unstructured concurrency. It also explains actors under the hood (executors, job queues, thread independence), global actors, and the recent shift toward approachable concurrency where async code stays in the caller's isolation domain by default.

Understanding 'indirect' keyword in Swift - Recursive Enums Explained Clearly

May 2, 2026

The article explains why recursive enums need the indirect keyword. It covers the problem (value types need a known size at compile time, but recursive cases create infinite size), the solution (indirect stores the case via heap reference), case level versus enum level indirect, practical examples like expression trees and file systems, and trade offs including heap allocation and indirection cost.

Synchronization in Swift: Actors vs Queues vs Locks

April 30, 2026

The article compares three approaches to thread safety in Swift: actors (language level isolation with compiler enforcement), DispatchQueue (execution level coordination with serial or concurrent queues), and locks (critical section level control). It explains how each works under the hood, including actor reentrancy, queue deadlocks, lock recursion problems, and the new Mutex type from the Synchronization framework. It also covers atomics for simple operations and provides practical guidance on choosing based on safety, performance, API shape, and cognitive load.

Immediate tasks in Swift Concurrency explained

April 28, 2026

The article explains immediate tasks (Task.immediate), a new feature in Swift 6.2 that starts executing synchronously on the caller's executor rather than being scheduled to run later. It covers when to use them (calling async code from synchronous actor code, preserving ordering), the risk of overhang (blocking the caller too long), immediate detached tasks, and immediate child tasks in task groups with addImmediateTask.

Q&A: Swift Concurrency (Formatted)

April 28, 2026

This is a transcript of a live Q&A session with Apple engineers answering specific questions about Swift Concurrency. Topics include the difference between Task { @MainActor in } and MainActor.run, the meaning of nonisolated and nonisolated(nonsending), using @concurrent for offloading work, task cancellation best practices, actor limits, the new withDeadline proposal, migration from Swift 5 to Swift 6 concurrency, and testing async code.

Overview of onChange() in SwiftUI

April 28, 2026

The article explains the evolution of onChange() from iOS 14 to iOS 17+. It covers the two new signatures, the initial parameter to trigger the action on first appear, the difference between View and Scene modifiers, and how to avoid blocking the main thread with async code.

In partnership with
Appcircle
Appcircle
Ship iOS releases without the chaos
See how Appcircle simplifies App Store publishing, from customizing release flows to re-signing builds and tracking every deployment in one place.
Watch on YouTube
© 2026 US iOS Employers. All rights reserved.
Made by
Stan
linkedin