Using @concurrent in Swift 6.2
Swift 6.2 changes how async functions pick a thread by default. The new @concurrent attribute lets you explicitly opt into background execution when you actually need it.
// Swift and SwiftUI tutorials, Objective-C archaeology, React Native survival guides, AI experiments, and other rabbit holes I fall into.
Requires iOS 26.0+
Explore the cutting-edge APIs introduced in iOS 26. StoreKit enhancements, new SwiftUI modifiers, and the latest platform capabilities. Stay ahead with tutorials on brand-new features.
Build beautiful, declarative UIs for iOS 13+ with SwiftUI. Master views, state management, and cross-platform development.
Learn powerful UIKit patterns for iOS apps. Integrate with SwiftUI or build traditional view controller-based applications.
Master Swift fundamentals, best practices, and advanced language features for writing clean, efficient code.
Create immersive spatial computing experiences for Apple Vision Pro
Build health apps, complications, and watch faces for Apple Watch
Develop native desktop applications with AppKit and SwiftUI
Share code across iOS, iPadOS, macOS, and more
Master debugging tools, write effective tests, and troubleshoot issues efficiently
Build intuitive forms with TextFields, validation, and smart keyboard handling
Control data flow with @State, @Binding, @Observable, and Environment patterns
Implement sheets, modals, NavigationStack, and complex navigation flows
Boost productivity with Xcode features, shortcuts, and advanced workflows
Fast solutions to common problems - get unstuck quickly with focused answers
Swift 6.2 changes how async functions pick a thread by default. The new @concurrent attribute lets you explicitly opt into background execution when you actually need it.
iOS 18 introduced public APIs for building custom container views that can decompose content into individual subviews. Learn how to use ForEach(subviews:), Group(subviews:), and ContainerValues.
Xcode can consume 50GB+ of disk space over time. Here's how to reclaim storage by clearing caches, old simulators, device support files, and other accumulated cruft.
Swift Testing replaces XCTest with a cleaner macro-based API. Learn how to write tests with @Test, #expect, parameterized inputs, and traits in Xcode 16+.
Swift macros generate code at compile time, reducing boilerplate and catching errors early. Learn how to use built-in macros and understand how custom macros work.
Create interactive buttons for the Control Center using ControlWidgetButton and App Intents in iOS 18.
Get notified when I publish new tutorials on Swift, SwiftUI, and iOS development. No spam, unsubscribe anytime.