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.
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).
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.
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.
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.
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.
The article explains the three property wrappers for ObservableObject in SwiftUI. @StateObject creates and owns the instance, keeping it alive across view redraws. @ObservedObject is for passing an already owned instance to child views. @EnvironmentObject injects an object implicitly into a view hierarchy to avoid prop drilling. The article also covers the iOS 17 shift to the @Observable macro, which replaces @StateObject and @ObservedObject with @State, eliminates @Published, and enables granular dependency tracking (only views that read a specific property redraw when it changes).
This newsletter issue covers several iOS interview and coding topics. It explains how to answer an undo/redo system question with Core Data (basic undo manager, grouped operations, child contexts for multi-screen flows). It covers designing an Instagram style feed with clarifying questions (content types, ranking algorithm, interactions, offline support, page size, heterogeneous items). It includes a Swift Bite about task cancellation not stopping automatically (need to check Task.isCancelled or try Task.checkCancellation). It also has a hot take that SwiftUI is ready for production but teams may not be ready because they bring UIKit habits.
Two keywords that turn actor isolation from a wall into a precision tool. nonisolated opts a member out of isolation (useful for computed properties that read only constants, and for fixing delegate crashes from CLLocationManager and similar). isolated on a function parameter makes the function run directly on whatever actor you pass in. transaction closure pattern with isolated parameter lets you group multiple operations without multiple suspension points. #isolation captures caller isolation automatically. nonisolated(unsafe) is a migration escape hatch for legacy globals. isolated deinit in Swift 6.2. And the shift from nonisolated async always hopping away to nonisolated(nonsending) vs @concurrent.
A honest look at building a native macOS app entirely in SwiftUI. The author ported Shopie (an iOS wishlist app) to macOS and ran into real platform specific issues. The term "Mac-assed app" means following Mac conventions: keyboard shortcuts, proper selection states in inactive windows, context menus that highlight the target item without changing selection, and drag and drop that you can track. The article covers specific problems. Selection in inactive windows works fine. Selected but unfocused items require manually passing isEmphasized through the environment. Context menus are impossible to detect, so you cannot highlight the target item unless you use List (which is hard to customize). Drag and drop went through three API versions but still gives no way to know if a drag completed successfully outside the window. Keyboard navigation with arrow keys stops working when a TextField has focus (Spotlight style behavior is not possible). Toolbar placements are semantic and platform dependent, making precise layout difficult.
Join the Mobile Signal Talent Directory and make your profile visible to hiring teams searching for iOS talent.