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

SwiftData Basics

May 12, 2026

A straight introduction to SwiftData, Apple's persistence framework for iOS 17. You will see how to define models with @Model, set up a model container, fetch data with @Query, insert and save via modelContext, filter with #Predicate, and link models with @Relationship. The code is minimal and clean.

AI: When the More Rigorous Process Shipped the Lower-Quality Code

May 11, 2026

A comparison of two parallel implementations of the same iOS feature. Team A used PRD driven AI TDD with test first development and an adversarial "convince me this is correct" review. Team B used a human in the loop iterative approach: write code, run it, hit edge cases, refactor. Expected A to be tighter and more correct. The opposite happened. B won on three of four dimensions. A was cleaner on architecture only. B had stronger tests (golden binary fixtures, integration invariants), better threading correctness (assert(!Thread.isMainThread)), production observability (logging, performance tracking), and documentation with rationale per decision. Five mechanisms explain the gap. TDD does not generate the highest leverage tests (golden fixtures require working code first). Spec plus test creates a closed loop where no one asks "what about interactions?" TDD is hostile to instrumentation because logs and tracking have no failing test. Adversarial review hardens claims but does not reframe scope. Micro commits make the refactor step invisible and easy to skip.

Swift Bits: Scene for Hosted SwiftUI View

May 11, 2026

The article explains that @Environment(.scenePhase) works reliably only in a pure SwiftUI app with SwiftUI lifecycle. When a SwiftUI view is hosted inside UIKit via UIHostingController, scenePhase may not behave as expected because the view does not participate in SwiftUI's scene model. The recommended alternatives are observing UIApplication notifications (didBecomeActiveNotification, willResignActiveNotification) for app wide state, or UIScene notifications (didActivateNotification, willDeactivateNotification, didEnterBackgroundNotification, willEnterForegroundNotification) for scene level behavior closer to scenePhase semantics.

How to Think About Performance in iOS

May 11, 2026

The article presents a layered approach to iOS performance. It covers product level (perceived performance, optimistic updates, testing under Low Power Mode), metrics and observability (user centric metrics, breaking down latency, local vs production monitoring), architecture and data flow (reducing dependency breadth, critical path), UI and rendering pipeline (body execution cost, update frequency, scrolling, layout strategy), network and backend (round trips, request orchestration, concurrency), data and caching (reuse over recomputation, prefetching, cache layers), energy and power (continuous work, background activity), concurrency and scheduling (main thread, priorities, task structure), algorithms and data structures (complexity, access patterns, branching), memory and representation (heap allocations, copying, data layout), and CPU and hardware (branch prediction, cache, instruction level parallelism). The article emphasizes starting from user perception and moving down the stack, not micro optimizing prematurely.

A guide to macOS window toolbar styles in SwiftUI

May 11, 2026

The article explains how to style macOS window toolbars in SwiftUI on macOS 26. It covers toolbar layout and size (default unifiedCompact, expanded with title on its own row), hiding the window title (toolbar removing .title or showsTitle false), hiding the title bar (windowStyle .hiddenTitleBar), clearing the toolbar background (toolbarBackgroundVisibility .hidden, toolbarBackground .hidden or .clear), setting a custom toolbar background color with toolbarColorScheme, and controlling toolbar visibility (toolbarVisibility .hidden, windowToolbarFullScreenVisibility .onHover).

AwesomeSwipeActions v2.0

May 10, 2026

The library brings native like swipe actions to ScrollView based lists (LazyVStack, Grid) where SwiftUI's native swipeActions do not work. Version 2.0 adds vertical swipe gestures from top and bottom edges, not just leading and trailing. It uses a familiar syntax (awesomeSwipeActions) with full UI customization via AwesomeSwipeButton or custom views. The AwesomeSwipeCoordinator keeps only one row open at a time and provides programmatic control (openRowID, close, open) for tutorials, async flows, or undo logic.

Finally found a use case for .fixedSize

May 9, 2026

The article describes a horizontal ScrollView with cards of varying heights. The goal was to make all cards match the height of the tallest one. Using .frame(maxHeight: .infinity) alone caused each card to stretch to the full screen height because the HStack had no height constraint. The solution was adding .fixedSize(horizontal: false, vertical: true) to the HStack, which tells it to ignore the parent's height proposal and size itself to its ideal content height (the tallest card). The two modifiers work together: .fixedSize sets the correct container height, and .frame(maxHeight: .infinity) fills it.

Accelerate Framework in Swift - Complete Guide to High Performance Computing

May 9, 2026

The article explains Apple's Accelerate framework for high performance vectorized computation. It covers what Accelerate is (optimized APIs for vector math, matrix operations, signal processing, image processing, linear algebra, FFT, statistics), why it matters (naive loops miss SIMD hardware), the core philosophy (bulk computation instead of scalar iteration), major components (vDSP, vForce, BLAS, LAPACK, BNNS), practical examples (array addition, scalar multiplication, dot product, statistics, matrix multiplication with cblas_sgemm), performance considerations (Float vs Double, memory layout, benchmarking), common mistakes, and when to use or avoid it.

Generating a QR Code from a String in SwiftUI

May 8, 2026

The article explains how to generate QR codes from text using Core Image's built in qrCodeGenerator filter. It presents QRCodeGenerator as an enum with static functions (acting as a namespace, not an initializable type). The implementation uses CIFilter.qrCodeGenerator(), sets the message as Data from the input string, applies error correction level M, scales the output image (typically by 12x because the raw output is tiny), converts to CGImage then UIImage then SwiftUI Image. The article also covers using .interpolation(.none) to keep edges crisp, separating user input from committed QR code text with two @State properties, and handling failure cases.

Formatting Values in SwiftUI Text and TextField

May 8, 2026

The article explains how to use the format parameter in Text and TextField to display and accept formatted values. It covers numbers (notation, grouping, sign, decimal precision), percentages, currencies, dates (date components, intervals, relative dates, ISO 8601), temperatures, distance, file size, concatenating collections with list style, person names using PersonNameComponents, and URLs (hiding scheme, path, or domain). It also shows the difference between interpolated strings and proper formatted numbers (locale awareness), and how TextField with format automatically drops invalid characters.

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