# BleepingSwift

> Learn Swift and SwiftUI with concise tutorials and examples.

BleepingSwift is a tutorial site for Apple-platform developers, written by Mick MacCallum. It covers Swift, SwiftUI, UIKit and Objective-C across iOS, iPadOS, macOS, watchOS and visionOS, with 161 tutorials, 9 interactive checklists, curated learning paths, and free browser-based developer tools. Articles record the minimum OS versions and the Xcode version they were tested against where that matters. All content is free and needs no account.

## Start here

- [Get Started](https://bleepingswift.com/get-started): Learn SwiftUI from scratch with beginner-friendly tutorials. No prior iOS experience needed.
- [SwiftUI Basics](https://bleepingswift.com/swiftui-basics): SwiftUI fundamentals: views, modifiers, stacks, alignment, and layouts.
- [Learning Paths](https://bleepingswift.com/learn): Curated paths that guide you through articles in the right order, from fundamentals to advanced topics.
- [Quick Tips](https://bleepingswift.com/quick-tips): Short, focused tutorials with fast answers to common Swift and SwiftUI problems.
- [All tutorials](https://bleepingswift.com/blog): The full archive of Swift and SwiftUI tutorials, newest first.

## Frameworks

- [SwiftUI](https://bleepingswift.com/swiftui): Tutorials covering state management, navigation, animations, and UI components for iOS 13+.
- [UIKit](https://bleepingswift.com/uikit): View controllers, Auto Layout, animations, and SwiftUI interoperability for iOS and iPadOS.

## Platforms

- [visionOS](https://bleepingswift.com/visionos): Spatial computing for Apple Vision Pro: immersive experiences, 3D content, and mixed reality in SwiftUI.
- [watchOS](https://bleepingswift.com/watchos): Apple Watch apps: complications, workout tracking, health integrations, and SwiftUI for watchOS.
- [macOS](https://bleepingswift.com/macos): Native Mac apps with Swift and SwiftUI: AppKit integration, menu bars, windows, and file management.
- [Objective-C Archives](https://bleepingswift.com/objc): Objective-C development, memory management, runtime tricks, and the foundations of Cocoa.

## iOS version guides

- [iOS 15+](https://bleepingswift.com/ios-15): async/await, new APIs, and modern capabilities available from iOS 15 on.
- [iOS 16+](https://bleepingswift.com/ios-16): NavigationStack, the Charts framework, and enhanced layout APIs.
- [iOS 17+](https://bleepingswift.com/ios-17): SwiftData, the Observation framework, and modern Swift patterns.
- [iOS 26](https://bleepingswift.com/ios-26): The newest iOS 26 APIs, SwiftUI additions, and StoreKit updates.

## Topic hubs

- [State Management](https://bleepingswift.com/state-management): @State, @Binding, @Observable, @EnvironmentObject, data flow patterns, and Environment values.
- [Navigation](https://bleepingswift.com/navigation): NavigationStack, sheets, modals, deep linking, and programmatic navigation.
- [Forms](https://bleepingswift.com/forms): TextFields, validation, keyboard handling, and form state management in SwiftUI.
- [Animations](https://bleepingswift.com/animations): Implicit and explicit animations, custom transitions, spring effects, and advanced techniques.
- [Debugging](https://bleepingswift.com/debugging): Xcode debugging tools, unit testing, crash tracking with Crashlytics, and troubleshooting.
- [Developer Tools](https://bleepingswift.com/developer-tools): Xcode configuration, simulator usage, and development workflow optimization.

## Free developer tools (browser-based, no account)

- [All tools](https://bleepingswift.com/tools): One-off web tools and utilities for developers: formatters, converters, and generators.
- [JSON to Codable](https://bleepingswift.com/tools/json-to-codable): Convert JSON to clean Swift Codable structs. Smart type inference for URLs, dates, and UUIDs.
- [Privacy Manifest Generator](https://bleepingswift.com/tools/privacy-manifest): Build PrivacyInfo.xcprivacy files: tracking settings, collected data types, and required reason APIs.
- [Color Converter](https://bleepingswift.com/tools/color-converter): Convert colors between hex, RGB, and HSL, and generate SwiftUI Color and UIKit UIColor code.
- [Regex Tester](https://bleepingswift.com/tools/regex-tester): Live pattern matching with highlighted results, capture groups, and generated Swift Regex code.
- [String Case Converter](https://bleepingswift.com/tools/string-converter): Convert between camelCase, snake_case, PascalCase, kebab-case, and more.
- [Xcode Version Reference](https://bleepingswift.com/tools/xcode-versions): Chart mapping Xcode versions to Swift versions, iOS SDKs, and minimum macOS requirements.
- [Object Formatter](https://bleepingswift.com/tools/object-formatter): Format messy object notation into readable code. Supports Swift, JavaScript, Rust, Elixir, and more.

## Checklists

- [All checklists](https://bleepingswift.com/checklists): Interactive checklists covering App Store submission, security, testing, and more.
- [App Store Submission Checklist](https://bleepingswift.com/checklists/app-store-submission-checklist): A developer-focused checklist for iOS app submissions, covering code quality, privacy compliance, monetization, store listing, and everything that catches developers off guard the first time.
- [Core Data and SwiftData Migration Checklist](https://bleepingswift.com/checklists/core-data-swiftdata-migration-checklist): A checklist for Core Data schema migrations and SwiftData adoption, covering model versioning, lightweight vs custom migration, testing with real data, and keeping users safe through the transition.
- [iOS App Performance Checklist](https://bleepingswift.com/checklists/ios-app-performance-checklist): A developer-focused performance checklist covering launch time, main thread usage, memory, image handling, scrolling, and battery, with guidance on where to measure each one in Instruments.
- [iOS App Security Checklist](https://bleepingswift.com/checklists/ios-app-security-checklist): A practical security checklist for iOS developers, covering data storage, network security, authentication, binary hardening, and third-party SDK auditing.
- [Swift Code Review Checklist](https://bleepingswift.com/checklists/swift-code-review-checklist): A structured checklist for reviewing Swift pull requests, covering correctness, memory management, API design, concurrency, test coverage, and SwiftUI-specific concerns.
- [Swift Concurrency Migration Checklist](https://bleepingswift.com/checklists/swift-concurrency-migration-checklist): A structured checklist for migrating iOS codebases from completion handlers and DispatchQueue to async/await and actors, covering audit, adoption, Sendability, and common pitfalls.
- [SwiftUI Accessibility Checklist](https://bleepingswift.com/checklists/swiftui-accessibility-checklist): A practical checklist for SwiftUI accessibility, covering VoiceOver labels, Dynamic Type support, color contrast, Reduce Motion, and how to test what you've built.
- [TestFlight Beta Testing Checklist](https://bleepingswift.com/checklists/testflight-beta-checklist): Everything you need to get a TestFlight build in front of testers without the common setup mistakes, covering build config, internal and external testing groups, feedback, and build expiry.
- [Xcode Project Setup Checklist](https://bleepingswift.com/checklists/xcode-project-setup-checklist): A checklist for setting up a new Xcode project correctly from the start, or auditing an existing one. Covers targets, build settings, signing, dependencies, folder structure, and CI.

## Lists

- [All lists](https://bleepingswift.com/lists): Curated lists of tools, libraries, resources, and references worth knowing about.
- [Xcode Hidden Command Line Tools](https://bleepingswift.com/lists/xcode-tools): A guided tour of the 100+ command line utilities bundled inside Xcode that most iOS developers never discover, organized by what they actually do.

## Tutorials (most recently updated)

- [All tutorials](https://bleepingswift.com/blog): The complete archive of 161 Swift and SwiftUI tutorials.
- [SwiftUI Form: Sections, FormStyle, and Validation](https://bleepingswift.com/blog/swiftui-form-guide): How Form differs from List, how to structure it with Sections, what .grouped and .columns actually change, and a validation pattern that does not fight the framework.
- [Fixing "-[OS_dispatch_mach_msg _setContext:]: unrecognized selector" on iOS 27](https://bleepingswift.com/blog/os-dispatch-mach-msg-setcontext-unrecognized-selector-ios-27): An app that ran fine for years suddenly hangs on the splash screen when you debug it on an iOS 27 device, with an OS_dispatch_mach_msg unrecognized selector in the console. Here is what causes it and the one-line fix.
- [How to Export and Use Xcode 27's Agent Skills in Claude Code](https://bleepingswift.com/blog/xcode-27-agent-skills-claude-code): Xcode 27 ships seven official agent skills that capture Apple's own guidance on SwiftUI, testing, and security. Here's how to export them and use the same skills from Claude Code, Codex, or Cursor.
- [Fixing "Supported Deployment Target Versions is 15.0 to 27.0" in Xcode 27](https://bleepingswift.com/blog/deployment-target-supported-range-xcode-27): Xcode 27 dropped support for deployment targets below iOS 15. If your build now fails with IPHONEOS_DEPLOYMENT_TARGET set to a lower value and a supported range of 15.0 to 27.0, here is why and how to fix it.
- [What's New in StoreKit for Xcode 27: Commitment Plans, Offer Codes, and More](https://bleepingswift.com/blog/whats-new-storekit-ios-27): Xcode 27 brings monthly subscriptions with a 12-month commitment, a reworked offer code redemption API, Bundles and Suites, and a unified App Review submission flow. Here is what each one changes for your code.
- [Getting Started with App Intents and Siri Shortcuts](https://bleepingswift.com/blog/app-intents-siri-shortcuts): Expose your app's features to Siri, Shortcuts, and Spotlight with App Intents, the Swift-native replacement for SiriKit in iOS 16 and later.
- [App Tracking Transparency in SwiftUI](https://bleepingswift.com/blog/app-tracking-transparency-swiftui): A practical guide to App Tracking Transparency in iOS, covering the Info.plist usage description, the ATTrackingManager API, authorization statuses, and when to actually prompt the user from SwiftUI.
- [withCheckedContinuation vs withUnsafeContinuation in Swift](https://bleepingswift.com/blog/checked-vs-unsafe-continuation-swift): Continuations bridge completion-handler APIs into async/await. The checked variant catches the two ways you can get it wrong, and the unsafe one trusts you completely.
- [Module selectors in Swift 6.3](https://bleepingswift.com/blog/module-selectors-swift-6-3): SE-0491 introduces the :: operator to disambiguate names that come from different modules. Here is when you actually need it and the gotchas worth knowing.
- [Data Races Swift 6 Still Can't Catch](https://bleepingswift.com/blog/data-races-swift-6-cant-catch): Swift 6's data-race safety is real, but it has blind spots. Here are the places the compiler can't see, and how to stop treating a clean build as proof your code is thread safe.
- [OSAllocatedUnfairLock: The Type-Safe Replacement for os_unfair_lock](https://bleepingswift.com/blog/osallocated-unfair-lock-swift): OSAllocatedUnfairLock wraps os_unfair_lock with a closure-based API that makes it impossible to forget to unlock and keeps the lock's storage alive for as long as you need it.
- [Fixing the fmt consteval Error in Xcode 26.4 for React Native](https://bleepingswift.com/blog/fmt-consteval-error-xcode-26-4-react-native): If your React Native build started failing after upgrading to Xcode 26.4 with a consteval error from the fmt library, here's a targeted Podfile fix that gets you back up and running.
- [Intercepting Network Requests in Swift with URLProtocol](https://bleepingswift.com/blog/url-protocol-intercept-requests-swift): URLProtocol is one of the oldest interception points in Foundation's networking stack. It lets you mock, log, or transform any URLSession request without touching the code that makes the request.
- [Async defer in Swift 6.4](https://bleepingswift.com/blog/async-defer-swift-6-4): SE-0493 finally lets you write defer { await cleanup() } in async functions, without spawning a detached task or threading cleanup logic through every return path.
- [Structured Logging in Swift with Logger and os_log](https://bleepingswift.com/blog/structured-logging-logger-oslog): print is fine for scratch work, but production apps need categories, levels, and privacy redaction. Here is how the Logger API from the os module gives you all of that without much ceremony.
- [Task Cancellation Shields in Swift 6.4](https://bleepingswift.com/blog/task-cancellation-shields-swift-6-4): Swift 6.4's withTaskCancellationShield lets cleanup code run to completion even after a task has been cancelled, without spawning extra unstructured tasks.
- [Using @concurrent in Swift 6.2](https://bleepingswift.com/blog/swift-6-2-concurrent-attribute): 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.
- [Deep Linking and Universal Links Setup in iOS](https://bleepingswift.com/blog/deep-linking-universal-links-setup): How to set up custom URL schemes and Universal Links in iOS, handle incoming URLs in SwiftUI, and route users to the right screen.
- [Creating a @DefaultEmpty Property Wrapper for Codable in Swift](https://bleepingswift.com/blog/default-empty-property-wrapper-swift-codable): Build a @DefaultEmpty property wrapper that automatically defaults missing or null array fields to an empty array when decoding JSON in Swift.
- [Scheduling Local Notifications with UNUserNotificationCenter](https://bleepingswift.com/blog/local-notifications-unusernotificationcenter): A practical guide to scheduling and handling local notifications in iOS using UNUserNotificationCenter, from permission requests to actionable notification categories.
- [Building Custom Container Views in SwiftUI with Subviews](https://bleepingswift.com/blog/custom-container-views-swiftui): 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.
- [How to Free Up Disk Space Used by Xcode](https://bleepingswift.com/blog/free-up-xcode-disk-space): 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.
- [Getting Started with Swift Testing: Apple's Modern Test Framework](https://bleepingswift.com/blog/swift-testing-framework-guide): 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+.
- [Understanding Swift Macros: A Practical Guide](https://bleepingswift.com/blog/swift-macros-guide): 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.
- [ControlWidgetButton for Control Center Widgets](https://bleepingswift.com/blog/controlwidgetbutton-control-center): Create interactive buttons for the Control Center using ControlWidgetButton and App Intents in iOS 18.

...and 136 more at https://bleepingswift.com/blog.

## Site and legal

- [About](https://bleepingswift.com/about): Mick MacCallum: iOS developer of nine-plus years, co-founder at Parra, former Stack Overflow moderator.
- [Apps](https://bleepingswift.com/apps): iOS apps and developer tools built and shipped to the App Store, including Only Recipes, Tax Days, and Claude Drops.
- [WWDC](https://bleepingswift.com/wwdc): WWDC 2026 hub: the platform updates predicted for this year across iOS, Swift and the developer tools.
- [Privacy Policy](https://bleepingswift.com/privacy): Privacy Policy for BleepingSwift.
- [Terms of Service](https://bleepingswift.com/terms): Terms of Service for BleepingSwift.

## Crawl guidance

- Every page is public. There is no paywall, login, or account.
- Full URL index: https://bleepingswift.com/sitemap.xml
- RSS feed: https://bleepingswift.com/feed.xml
- Tutorials carry BlogPosting structured data with the publish date, last-modified date, and author.
- Tag pages (/tags and /tags/<tag>) are deliberately noindex; cite the canonical article or hub instead.
- Code samples are free to reuse. When quoting prose, please attribute BleepingSwift and link the source article.
