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

Understanding basic animations in SwiftUI

May 17, 2026

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:

  1. animation(_:value:) view modifier for animations when a certain state value changes
  2. withAnimation(_:_:) global function which we can use to apply state changes and create animations for all views affected by them

In this article, we'll look at how both approaches work and when to use each of them.

How to recognize text in images with Vision in Swift

May 16, 2026

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.

ContentUnavailableView in SwiftUI - Complete Guide With Examples

May 16, 2026

A deep dive into Apple's standardized component for empty, unavailable, or failed content states. Before iOS 17, every app built the same VStack with an icon, title, description, and button. ContentUnavailableView provides a canonical system component with platform consistent styling, accessibility defaults, and Dynamic Type support. The article covers basic usage with title and systemImage, the built in search variant (ContentUnavailableView.search), custom initializers with view builders for actions (like a retry button for network failures), real world production examples (failed requests, first time UX, empty invoices), accessibility considerations, state driven patterns with enum based loading states, common mistakes (overbuilding, generic messages, missing recovery actions, showing empty state during loading), and when not to use it (onboarding, paywalls, interactive tutorials).

A Type-Safe EventBus in Swift

May 13, 2026

Building an event bus for communication between loosely coupled parts of an app. The implementation focuses on type safety (events conform to a marker protocol), thread safety with NSLock, automatic cleanup when the subscriber is deallocated, explicit cancellation via SubscriptionToken, MainActor delivery for UI code, and AsyncStream support. The key design choice is that subscriptions follow the owner's lifetime (weak reference), not the token's. The bus cleans up dead subscriptions lazily during publish or subscribe operations. Publishing creates a snapshot of subscribers and delivers events synchronously outside the lock.

Mastering SwiftUI Gestures: Basic to Advanced

May 12, 2026

A detailed breakdown of five core SwiftUI gestures. TapGesture with count and coordinateSpace parameters. LongPressGesture with minimumDuration, onPressingChanged, and maximumDistance. DragGesture with .onChanged, .onEnded, and an advanced version using .updating with @GestureState, explaining value, state, and transaction parameters. MagnifyGesture with magnification and velocity. RotationGesture using two @State properties (currentAngle and finalAngle) to preserve rotation after the gesture ends. A separate section on gesture composition: .map for transforming data, .simultaneously for parallel execution (unwrapping optional .first and .second), and .sequenced for sequential gestures (switch statement on the enum).

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