
  <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
      <title>BleepingSwift</title>
      <link>https://bleepingswift.com/blog</link>
      <description>Learn Swift and SwiftUI with concise tutorials and examples.</description>
      <language>en-us</language>
      <managingEditor>undefined (Mick MacCallum)</managingEditor>
      <webMaster>undefined (Mick MacCallum)</webMaster>
      <lastBuildDate>Sat, 13 Jun 2026 00:00:00 GMT</lastBuildDate>
      <atom:link href="https://bleepingswift.com/feed.xml" rel="self" type="application/rss+xml"/>
      
  <item>
    <guid>https://bleepingswift.com/blog/os-dispatch-mach-msg-setcontext-unrecognized-selector-ios-27</guid>
    <title>Fixing &quot;-[OS_dispatch_mach_msg _setContext:]: unrecognized selector&quot; on iOS 27</title>
    <link>https://bleepingswift.com/blog/os-dispatch-mach-msg-setcontext-unrecognized-selector-ios-27</link>
    <description>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.</description>
    <pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>iOS</category><category>Debugging</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/xcode-27-agent-skills-claude-code</guid>
    <title>How to Export and Use Xcode 27&#39;s Agent Skills in Claude Code</title>
    <link>https://bleepingswift.com/blog/xcode-27-agent-skills-claude-code</link>
    <description>Xcode 27 ships seven official agent skills that capture Apple&#39;s own guidance on SwiftUI, testing, and security. Here&#39;s how to export them and use the same skills from Claude Code, Codex, or Cursor.</description>
    <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>AI</category><category>Claude Code</category><category>Agent Skills</category><category>SwiftUI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/deployment-target-supported-range-xcode-27</guid>
    <title>Fixing &quot;Supported Deployment Target Versions is 15.0 to 27.0&quot; in Xcode 27</title>
    <link>https://bleepingswift.com/blog/deployment-target-supported-range-xcode-27</link>
    <description>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.</description>
    <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>iOS</category><category>CocoaPods</category><category>Debugging</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/whats-new-storekit-ios-27</guid>
    <title>What&#39;s New in StoreKit for Xcode 27: Commitment Plans, Offer Codes, and More</title>
    <link>https://bleepingswift.com/blog/whats-new-storekit-ios-27</link>
    <description>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.</description>
    <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>StoreKit</category><category>iOS</category><category>Swift</category><category>App Store</category><category>Subscriptions</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/app-intents-siri-shortcuts</guid>
    <title>Getting Started with App Intents and Siri Shortcuts</title>
    <link>https://bleepingswift.com/blog/app-intents-siri-shortcuts</link>
    <description>Expose your app&#39;s features to Siri, Shortcuts, and Spotlight with App Intents, the Swift-native replacement for SiriKit in iOS 16 and later.</description>
    <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>App Intents</category><category>Siri</category><category>Shortcuts</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/app-tracking-transparency-swiftui</guid>
    <title>App Tracking Transparency in SwiftUI</title>
    <link>https://bleepingswift.com/blog/app-tracking-transparency-swiftui</link>
    <description>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.</description>
    <pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>SwiftUI</category><category>Privacy</category><category>iOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/checked-vs-unsafe-continuation-swift</guid>
    <title>withCheckedContinuation vs withUnsafeContinuation in Swift</title>
    <link>https://bleepingswift.com/blog/checked-vs-unsafe-continuation-swift</link>
    <description>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.</description>
    <pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Concurrency</category><category>async/await</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/module-selectors-swift-6-3</guid>
    <title>Module selectors in Swift 6.3</title>
    <link>https://bleepingswift.com/blog/module-selectors-swift-6-3</link>
    <description>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.</description>
    <pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Swift 6</category><category>Modules</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/data-races-swift-6-cant-catch</guid>
    <title>Data Races Swift 6 Still Can&#39;t Catch</title>
    <link>https://bleepingswift.com/blog/data-races-swift-6-cant-catch</link>
    <description>Swift 6&#39;s data-race safety is real, but it has blind spots. Here are the places the compiler can&#39;t see, and how to stop treating a clean build as proof your code is thread safe.</description>
    <pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Swift 6</category><category>Concurrency</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/osallocated-unfair-lock-swift</guid>
    <title>OSAllocatedUnfairLock: The Type-Safe Replacement for os_unfair_lock</title>
    <link>https://bleepingswift.com/blog/osallocated-unfair-lock-swift</link>
    <description>OSAllocatedUnfairLock wraps os_unfair_lock with a closure-based API that makes it impossible to forget to unlock and keeps the lock&#39;s storage alive for as long as you need it.</description>
    <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Concurrency</category><category>Locks</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/fmt-consteval-error-xcode-26-4-react-native</guid>
    <title>Fixing the fmt consteval Error in Xcode 26.4 for React Native</title>
    <link>https://bleepingswift.com/blog/fmt-consteval-error-xcode-26-4-react-native</link>
    <description>If your React Native build started failing after upgrading to Xcode 26.4 with a consteval error from the fmt library, here&#39;s a targeted Podfile fix that gets you back up and running.</description>
    <pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>React Native</category><category>Xcode</category><category>C++</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/url-protocol-intercept-requests-swift</guid>
    <title>Intercepting Network Requests in Swift with URLProtocol</title>
    <link>https://bleepingswift.com/blog/url-protocol-intercept-requests-swift</link>
    <description>URLProtocol is one of the oldest interception points in Foundation&#39;s networking stack. It lets you mock, log, or transform any URLSession request without touching the code that makes the request.</description>
    <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>URLSession</category><category>Networking</category><category>Testing</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/async-defer-swift-6-4</guid>
    <title>Async defer in Swift 6.4</title>
    <link>https://bleepingswift.com/blog/async-defer-swift-6-4</link>
    <description>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.</description>
    <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Swift 6</category><category>Concurrency</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/structured-logging-logger-oslog</guid>
    <title>Structured Logging in Swift with Logger and os_log</title>
    <link>https://bleepingswift.com/blog/structured-logging-logger-oslog</link>
    <description>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.</description>
    <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Logging</category><category>Debugging</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/task-cancellation-shields-swift-6-4</guid>
    <title>Task Cancellation Shields in Swift 6.4</title>
    <link>https://bleepingswift.com/blog/task-cancellation-shields-swift-6-4</link>
    <description>Swift 6.4&#39;s withTaskCancellationShield lets cleanup code run to completion even after a task has been cancelled, without spawning extra unstructured tasks.</description>
    <pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Swift 6</category><category>Concurrency</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/swift-6-2-concurrent-attribute</guid>
    <title>Using @concurrent in Swift 6.2</title>
    <link>https://bleepingswift.com/blog/swift-6-2-concurrent-attribute</link>
    <description>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.</description>
    <pubDate>Thu, 26 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Swift 6</category><category>Concurrency</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/deep-linking-universal-links-setup</guid>
    <title>Deep Linking and Universal Links Setup in iOS</title>
    <link>https://bleepingswift.com/blog/deep-linking-universal-links-setup</link>
    <description>How to set up custom URL schemes and Universal Links in iOS, handle incoming URLs in SwiftUI, and route users to the right screen.</description>
    <pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>iOS</category><category>Deep Linking</category><category>Universal Links</category><category>SwiftUI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/default-empty-property-wrapper-swift-codable</guid>
    <title>Creating a @DefaultEmpty Property Wrapper for Codable in Swift</title>
    <link>https://bleepingswift.com/blog/default-empty-property-wrapper-swift-codable</link>
    <description>Build a @DefaultEmpty property wrapper that automatically defaults missing or null array fields to an empty array when decoding JSON in Swift.</description>
    <pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Codable</category><category>Property Wrappers</category><category>JSON</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/local-notifications-unusernotificationcenter</guid>
    <title>Scheduling Local Notifications with UNUserNotificationCenter</title>
    <link>https://bleepingswift.com/blog/local-notifications-unusernotificationcenter</link>
    <description>A practical guide to scheduling and handling local notifications in iOS using UNUserNotificationCenter, from permission requests to actionable notification categories.</description>
    <pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>iOS</category><category>Notifications</category><category>UserNotifications</category><category>SwiftUI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/custom-container-views-swiftui</guid>
    <title>Building Custom Container Views in SwiftUI with Subviews</title>
    <link>https://bleepingswift.com/blog/custom-container-views-swiftui</link>
    <description>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.</description>
    <pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>iOS 18</category><category>Custom Views</category><category>Layout</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/free-up-xcode-disk-space</guid>
    <title>How to Free Up Disk Space Used by Xcode</title>
    <link>https://bleepingswift.com/blog/free-up-xcode-disk-space</link>
    <description>Xcode can consume 50GB+ of disk space over time. Here&#39;s how to reclaim storage by clearing caches, old simulators, device support files, and other accumulated cruft.</description>
    <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>Development Environment</category><category>macOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/swift-testing-framework-guide</guid>
    <title>Getting Started with Swift Testing: Apple&#39;s Modern Test Framework</title>
    <link>https://bleepingswift.com/blog/swift-testing-framework-guide</link>
    <description>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+.</description>
    <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Testing</category><category>Xcode</category><category>Swift Testing</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/swift-macros-guide</guid>
    <title>Understanding Swift Macros: A Practical Guide</title>
    <link>https://bleepingswift.com/blog/swift-macros-guide</link>
    <description>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.</description>
    <pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Macros</category><category>Advanced</category><category>Xcode</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/controlwidgetbutton-control-center</guid>
    <title>ControlWidgetButton for Control Center Widgets</title>
    <link>https://bleepingswift.com/blog/controlwidgetbutton-control-center</link>
    <description>Create interactive buttons for the Control Center using ControlWidgetButton and App Intents in iOS 18.</description>
    <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>WidgetKit</category><category>Control Center</category><category>iOS 18</category><category>SwiftUI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/swift-error-handling-guide</guid>
    <title>Error Handling in Swift: From Basics to Typed Throws</title>
    <link>https://bleepingswift.com/blog/swift-error-handling-guide</link>
    <description>A practical guide to Swift error handling covering throw/try/catch fundamentals, custom error types, Result, async error patterns, and typed throws introduced in Swift 6.</description>
    <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Error Handling</category><category>Best Practices</category><category>Swift 6</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/sensory-feedback-haptics-swiftui</guid>
    <title>Sensory Feedback and Haptics in SwiftUI</title>
    <link>https://bleepingswift.com/blog/sensory-feedback-haptics-swiftui</link>
    <description>Add haptic feedback to your SwiftUI views using the sensoryFeedback modifier, with built-in support for success, error, impact, and selection feedback.</description>
    <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Haptics</category><category>iOS 17</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/swiftui-animations-guide</guid>
    <title>SwiftUI Animations: From Basics to KeyframeAnimator</title>
    <link>https://bleepingswift.com/blog/swiftui-animations-guide</link>
    <description>A practical guide to SwiftUI animations covering implicit and explicit animations, spring physics, PhaseAnimator for multi-step sequences, and KeyframeAnimator for timeline-based control.</description>
    <pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Animations</category><category>iOS Development</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/viewthatfits-adaptive-layouts</guid>
    <title>ViewThatFits for Adaptive Layouts in SwiftUI</title>
    <link>https://bleepingswift.com/blog/viewthatfits-adaptive-layouts</link>
    <description>Use ViewThatFits to automatically select the best layout variant based on available space, without writing manual size calculations.</description>
    <pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Layout</category><category>iOS 16</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/claude-code-prevent-mac-sleep</guid>
    <title>Prevent Your Mac from Sleeping While Claude Code Works</title>
    <link>https://bleepingswift.com/blog/claude-code-prevent-mac-sleep</link>
    <description>Set up Claude Code to automatically keep your Mac awake during long tasks and let it sleep again when finished, using hooks and the caffeinate command.</description>
    <pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>AI</category><category>Development Environment</category><category>Claude Code</category><category>macOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/frame-vs-bounds-uiview</guid>
    <title>The Difference Between Frame and Bounds in UIKit</title>
    <link>https://bleepingswift.com/blog/frame-vs-bounds-uiview</link>
    <description>Understand the key difference between a UIView&#39;s frame and bounds properties, and when to use each in your iOS apps.</description>
    <pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>UIKit</category><category>iOS</category><category>Swift</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/auto-approve-xcode-mcp-connection</guid>
    <title>Auto-Approve the Xcode MCP Connection Prompt with Claude Code Hooks</title>
    <link>https://bleepingswift.com/blog/auto-approve-xcode-mcp-connection</link>
    <description>The Xcode MCP server connection prompt interrupts your flow every time you restart Claude Code or clear your session. Here&#39;s how to automate it away using hooks.</description>
    <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>AI</category><category>Claude Code</category><category>Development Environment</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/taskgroup-structured-concurrency</guid>
    <title>TaskGroup and Structured Concurrency Patterns in Swift</title>
    <link>https://bleepingswift.com/blog/taskgroup-structured-concurrency</link>
    <description>Master Swift&#39;s TaskGroup for parallel async work with proper cancellation, error handling, and result collection. Learn common patterns for batch operations and concurrent pipelines.</description>
    <pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Concurrency</category><category>iOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/typed-throws-swift-6</guid>
    <title>Typed Throws in Swift 6: Declaring Specific Error Types</title>
    <link>https://bleepingswift.com/blog/typed-throws-swift-6</link>
    <description>Swift 6 introduces typed throws, letting you declare exactly which error types a function can throw. Learn how this improves API contracts and enables exhaustive error handling.</description>
    <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Swift 6</category><category>iOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/observable-macro-migration-swiftui</guid>
    <title>@Observable Macro in SwiftUI: Migrating from ObservableObject</title>
    <link>https://bleepingswift.com/blog/observable-macro-migration-swiftui</link>
    <description>Learn how to use Swift&#39;s @Observable macro introduced in iOS 17, understand its advantages over ObservableObject, and migrate your existing code to the modern observation system.</description>
    <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>State Management</category><category>Observation</category><category>Property Wrappers</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/swift-regex-builder-dsl</guid>
    <title>Swift Regex Builder: A Type-Safe DSL for Pattern Matching</title>
    <link>https://bleepingswift.com/blog/swift-regex-builder-dsl</link>
    <description>Learn how to use Swift&#39;s RegexBuilder DSL to create readable, type-safe regular expressions with compile-time checking and strongly-typed captures.</description>
    <pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>iOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/swift-charts-basics</guid>
    <title>Getting Started with Swift Charts</title>
    <link>https://bleepingswift.com/blog/swift-charts-basics</link>
    <description>Learn how to create beautiful, interactive charts in SwiftUI using Apple&#39;s Swift Charts framework, from simple line charts to customized bar graphs.</description>
    <pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Charts</category><category>Data Visualization</category><category>iOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/expo-react-native-local-network-bonjour</guid>
    <title>Testing Expo and React Native on Device Over Local Network with Bonjour</title>
    <link>https://bleepingswift.com/blog/expo-react-native-local-network-bonjour</link>
    <description>Skip Expo Go and test your development build directly on a physical device using Bonjour for automatic network discovery.</description>
    <pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>React Native</category><category>Expo</category><category>Development Environment</category><category>macOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/orphaned-metro-bundler-port-8081</guid>
    <title>Fixing Port 8081 Already in Use: Orphaned Metro Bundler Processes</title>
    <link>https://bleepingswift.com/blog/orphaned-metro-bundler-port-8081</link>
    <description>When Metro won&#39;t start because port 8081 is already in use, you likely have an orphaned process. Here&#39;s how to find and kill it properly.</description>
    <pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>React Native</category><category>Expo</category><category>Development Environment</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/storekit-2-in-app-purchases-subscriptions</guid>
    <title>StoreKit 2 for In-App Purchases and Subscriptions</title>
    <link>https://bleepingswift.com/blog/storekit-2-in-app-purchases-subscriptions</link>
    <description>A practical guide to implementing in-app purchases and subscriptions with StoreKit 2, covering products, transactions, subscription status, and SwiftUI integration.</description>
    <pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>StoreKit</category><category>Swift</category><category>iOS</category><category>Subscriptions</category><category>In-App Purchases</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/swift-system-metrics-1-released</guid>
    <title>Swift System Metrics 1.0: Monitoring CPU, Memory, and More on the Server</title>
    <link>https://bleepingswift.com/blog/swift-system-metrics-1-released</link>
    <description>Apple released Swift System Metrics 1.0, a package that collects process-level metrics like CPU time, memory usage, and file descriptors with a unified API across Linux and macOS.</description>
    <pubDate>Sat, 21 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>swift</category><category>swift-package-manager</category><category>performance</category><category>concurrency</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/testing-push-notifications-simulator-simctl</guid>
    <title>Testing Push Notifications on iOS Simulators with xcrun simctl push</title>
    <link>https://bleepingswift.com/blog/testing-push-notifications-simulator-simctl</link>
    <description>Learn how to test push notifications on iOS simulators without needing a device or server setup using xcrun simctl push.</description>
    <pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>iOS</category><category>Simulator</category><category>Push Notifications</category><category>Testing</category><category>Xcode</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/appstorage-vs-userdefaults-vs-swiftdata</guid>
    <title>@AppStorage vs UserDefaults vs SwiftData: Choosing the Right Persistence</title>
    <link>https://bleepingswift.com/blog/appstorage-vs-userdefaults-vs-swiftdata</link>
    <description>Compare @AppStorage, UserDefaults, and SwiftData for persisting data in Swift apps. Learn when each approach makes sense and how to use them effectively.</description>
    <pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Swift</category><category>Persistence</category><category>UserDefaults</category><category>SwiftData</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/live-activity-image-not-showing</guid>
    <title>Why Your Image Isn&#39;t Showing in a Live Activity</title>
    <link>https://bleepingswift.com/blog/live-activity-image-not-showing</link>
    <description>If your Live Activity renders a grey box instead of your image, the problem is almost certainly the image size. Here&#39;s how to fix it.</description>
    <pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>WidgetKit</category><category>Live Activities</category><category>ActivityKit</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/previewing-live-activities-swiftui</guid>
    <title>How to Preview Live Activities in SwiftUI</title>
    <link>https://bleepingswift.com/blog/previewing-live-activities-swiftui</link>
    <description>Use the #Preview macro to preview your Live Activity views directly in Xcode without running the full app.</description>
    <pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>WidgetKit</category><category>Live Activities</category><category>Xcode</category><category>Previews</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/claude-code-auto-commit</guid>
    <title>Claude Code Auto Commit: How to Automatically Commit Changes as You Go</title>
    <link>https://bleepingswift.com/blog/claude-code-auto-commit</link>
    <description>Claude Code can commit changes automatically while it works. Here&#39;s how to set that up using hooks, CLAUDE.md instructions, and the right permission configuration.</description>
    <pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>AI</category><category>Development Environment</category><category>Claude Code</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/debugging-swiftui-previews</guid>
    <title>Debugging SwiftUI Previews in Xcode</title>
    <link>https://bleepingswift.com/blog/debugging-swiftui-previews</link>
    <description>When SwiftUI previews break, the error messages aren&#39;t always helpful. Here&#39;s how to debug them, clear caches, and get back to a working state.</description>
    <pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Xcode</category><category>Previews</category><category>Debugging</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/nullability-annotations-objc</guid>
    <title>Nullability Annotations in Objective-C</title>
    <link>https://bleepingswift.com/blog/nullability-annotations-objc</link>
    <description>Objective-C&#39;s nullability annotations tell the compiler which pointers can be nil. They catch bugs at compile time and make your code bridge to Swift cleanly.</description>
    <pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Swift Interop</category><category>Type Safety</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/vercel-skills-react-native-agents</guid>
    <title>Using Vercel&#39;s Skills Library to Supercharge AI Agents for React Native</title>
    <link>https://bleepingswift.com/blog/vercel-skills-react-native-agents</link>
    <description>Vercel&#39;s Skills library lets you add reusable instruction sets to AI coding agents. Here&#39;s how to use it to make agents more effective for React Native development.</description>
    <pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>AI</category><category>React Native</category><category>Development Environment</category><category>Claude Code</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/change-background-color-swiftui</guid>
    <title>How to Change the Background Color of a View in SwiftUI</title>
    <link>https://bleepingswift.com/blog/change-background-color-swiftui</link>
    <description>Learn different ways to set background colors on SwiftUI views, from simple color fills to gradients and materials.</description>
    <pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UI</category><category>Colors</category><category>Layout</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/react-navigation-v8-alpha</guid>
    <title>I&#39;m Really Excited About React Navigation v8</title>
    <link>https://bleepingswift.com/blog/react-navigation-v8-alpha</link>
    <description>React Navigation v8 is in alpha and I&#39;m genuinely excited. Native bottom tabs, smarter TypeScript inference, and a long-awaited fix for deep linking behind auth screens. This one&#39;s going to be good.</description>
    <pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>React Native</category><category>React Navigation</category><category>TypeScript</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/some-keyword-swift</guid>
    <title>Understanding the &quot;some&quot; Keyword in Swift and SwiftUI</title>
    <link>https://bleepingswift.com/blog/some-keyword-swift</link>
    <description>Learn what the &quot;some&quot; keyword means in Swift, how opaque return types work, and why SwiftUI uses &quot;some View&quot; everywhere.</description>
    <pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>SwiftUI</category><category>Opaque Types</category><category>Generics</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/claude-code-permissions-react-native</guid>
    <title>Configuring Claude Code Permissions for React Native Development</title>
    <link>https://bleepingswift.com/blog/claude-code-permissions-react-native</link>
    <description>React Native projects require running lots of shell commands. Here&#39;s how to configure Claude Code&#39;s permission system so you&#39;re not constantly approving the same operations.</description>
    <pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>AI</category><category>Development Environment</category><category>React Native</category><category>Claude Code</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/xcode-mcp-server-ai-workflow</guid>
    <title>How to Use Xcode&#39;s MCP Server to Build Xcode into Your AI Workflow</title>
    <link>https://bleepingswift.com/blog/xcode-mcp-server-ai-workflow</link>
    <description>Xcode 26.3 ships with a built-in MCP server that exposes project structure, build actions, and test results to external AI tools. Here&#39;s how to set it up.</description>
    <pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>AI</category><category>Development Environment</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/lightweight-generics-objc</guid>
    <title>Lightweight Generics in Objective-C</title>
    <link>https://bleepingswift.com/blog/lightweight-generics-objc</link>
    <description>Objective-C&#39;s lightweight generics let you specify element types for collections like NSArray&lt;NSString *&gt;. They catch type mismatches at compile time and improve Swift bridging.</description>
    <pubDate>Fri, 30 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Type Safety</category><category>Swift Interop</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/swiftui-vs-uikit-2026</guid>
    <title>SwiftUI vs UIKit: Which Should You Choose in 2026?</title>
    <link>https://bleepingswift.com/blog/swiftui-vs-uikit-2026</link>
    <description>A practical guide to choosing between SwiftUI and UIKit in 2026, based on your project requirements, team experience, and the current state of both frameworks.</description>
    <pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UIKit</category><category>iOS Development</category><category>Architecture</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/resource-isolation-swift-comparison</guid>
    <title>Choosing the Right Resource Isolation Strategy in Swift</title>
    <link>https://bleepingswift.com/blog/resource-isolation-swift-comparison</link>
    <description>Swift offers actors, GCD, and locks for thread safety. Each solves the same problem differently. Here&#39;s how to choose.</description>
    <pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Concurrency</category><category>Architecture</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/resource-isolation-swift-actors</guid>
    <title>Resource Isolation in Swift Using Actors</title>
    <link>https://bleepingswift.com/blog/resource-isolation-swift-actors</link>
    <description>Actors provide compile-time safety for shared mutable state in Swift. Here&#39;s when to use them and how they compare to older approaches.</description>
    <pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Concurrency</category><category>Actors</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/resource-isolation-swift-gcd</guid>
    <title>Resource Isolation in Swift Using GCD</title>
    <link>https://bleepingswift.com/blog/resource-isolation-swift-gcd</link>
    <description>Grand Central Dispatch remains a practical choice for thread safety in Swift, especially when you need synchronous access or are working with legacy code.</description>
    <pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Concurrency</category><category>GCD</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/resource-isolation-swift-locks</guid>
    <title>Resource Isolation in Swift Using Locks</title>
    <link>https://bleepingswift.com/blog/resource-isolation-swift-locks</link>
    <description>Locks offer the lowest overhead for thread synchronization in Swift. Here&#39;s when that matters and how to use them safely.</description>
    <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Concurrency</category><category>Threading</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/navigationview-vs-navigationstack</guid>
    <title>NavigationView vs NavigationStack: What Changed and Why</title>
    <link>https://bleepingswift.com/blog/navigationview-vs-navigationstack</link>
    <description>NavigationStack replaced NavigationView in iOS 16 with a more powerful programmatic navigation model. Here&#39;s what changed and how to migrate.</description>
    <pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Navigation</category><category>iOS Development</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/async-await-basics-swift</guid>
    <title>Async/Await Basics in Swift</title>
    <link>https://bleepingswift.com/blog/async-await-basics-swift</link>
    <description>A practical introduction to async/await in Swift, covering the fundamentals you need to write concurrent code that&#39;s both safe and readable.</description>
    <pubDate>Sat, 17 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Concurrency</category><category>async/await</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/async-await-vs-gcd-swift</guid>
    <title>Async/Await vs GCD in Swift: When to Use Each</title>
    <link>https://bleepingswift.com/blog/async-await-vs-gcd-swift</link>
    <description>Both async/await and Grand Central Dispatch solve concurrency problems, but they approach them differently. Here&#39;s how to choose between them.</description>
    <pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Concurrency</category><category>GCD</category><category>async/await</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/16kb-page-alignment-android-react-native</guid>
    <title>Fixing 16KB Page Alignment Errors in React Native for Android</title>
    <link>https://bleepingswift.com/blog/16kb-page-alignment-android-react-native</link>
    <description>Google Play now requires 16KB page size support for Android apps. Here&#39;s how to fix alignment errors in your React Native project before your next release gets rejected.</description>
    <pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>React Native</category><category>Android</category><category>Google Play</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/operator-precedence-swift-vs-objc</guid>
    <title>Operator Precedence Gotchas When Moving Between Swift and Objective-C</title>
    <link>https://bleepingswift.com/blog/operator-precedence-swift-vs-objc</link>
    <description>A refactoring mishap with arithmetic expressions led me down the rabbit hole of operator precedence differences between Swift and Objective-C. Here&#39;s what to watch for.</description>
    <pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Objective-C</category><category>Migration</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/auto-switch-node-version-nvm</guid>
    <title>Automatically Switch Node Versions with nvm for React Native Projects</title>
    <link>https://bleepingswift.com/blog/auto-switch-node-version-nvm</link>
    <description>Avoid cryptic build failures by setting up nvm to automatically use the right Node version when you cd into a project.</description>
    <pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>macOS</category><category>Development Environment</category><category>React Native</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/change-default-screenshot-folder-macos</guid>
    <title>How to Change the Default Screenshot Folder on macOS</title>
    <link>https://bleepingswift.com/blog/change-default-screenshot-folder-macos</link>
    <description>Stop cluttering your Desktop with screenshots. Here&#39;s how to save them somewhere else using Terminal or the Screenshot app.</description>
    <pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>macOS</category><category>Development Environment</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/access-camera-roll-swiftui</guid>
    <title>Accessing the Camera Roll in SwiftUI</title>
    <link>https://bleepingswift.com/blog/access-camera-roll-swiftui</link>
    <description>Learn how to access photos from the camera roll in SwiftUI, including required permissions, Info.plist configuration, and using PhotosPicker for iOS 16+ or UIImagePickerController for earlier versions.</description>
    <pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UIKit</category><category>Images</category><category>Privacy</category><category>Configuration</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/detect-screenshot-taken-swiftui</guid>
    <title>Detecting When a Screenshot is Taken in SwiftUI</title>
    <link>https://bleepingswift.com/blog/detect-screenshot-taken-swiftui</link>
    <description>Learn how to detect when users take screenshots in your SwiftUI app by observing UIApplication notifications.</description>
    <pubDate>Fri, 02 Jan 2026 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UIKit</category><category>Security</category><category>Privacy</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/prevent-ds-store-network-drives</guid>
    <title>Prevent macOS from Creating .DS_Store Files on Network and USB Drives</title>
    <link>https://bleepingswift.com/blog/prevent-ds-store-network-drives</link>
    <description>Stop macOS from littering .DS_Store files on network shares and USB drives with a simple Terminal command. Keep your external storage clean and your repositories tidy.</description>
    <pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>macOS</category><category>Configuration</category><category>Development Environment</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/detect-successful-share-sheet-in-swiftui</guid>
    <title>Detect Successful Share Sheet Completion in SwiftUI</title>
    <link>https://bleepingswift.com/blog/detect-successful-share-sheet-in-swiftui</link>
    <description>Learn how to detect when a user successfully shares content using a share sheet in SwiftUI by wrapping UIActivityViewController.</description>
    <pubDate>Sun, 28 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UIKit</category><category>Share</category><category>ActivityViewController</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/prevent-drag-to-dismiss-sheet</guid>
    <title>Prevent Drag-to-Dismiss on SwiftUI Sheets</title>
    <link>https://bleepingswift.com/blog/prevent-drag-to-dismiss-sheet</link>
    <description>Learn how to prevent users from dismissing modal sheets by swiping down in SwiftUI using interactiveDismissDisabled.</description>
    <pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Sheet</category><category>UI</category><category>Modal</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/interactive-glass-effects-swiftui</guid>
    <title>Building Interactive Glass Controls in SwiftUI</title>
    <link>https://bleepingswift.com/blog/interactive-glass-effects-swiftui</link>
    <description>Make your glass elements respond to touch with scaling, shimmer effects, and touch-point illumination using the interactive() modifier and glass button styles.</description>
    <pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>iOS</category><category>Liquid Glass</category><category>UI Design</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/corner-radius-swiftui</guid>
    <title>Rounding Corners in SwiftUI: From cornerRadius to clipShape</title>
    <link>https://bleepingswift.com/blog/corner-radius-swiftui</link>
    <description>The cornerRadius modifier is deprecated in iOS 17. Here&#39;s how to use clipShape, RoundedRectangle, and the new ConcentricRectangle to round corners the modern way.</description>
    <pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UI</category><category>Shapes</category><category>Layout</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/glass-effect-id-transitions-swiftui</guid>
    <title>Creating Morphing Glass Transitions with glassEffectID</title>
    <link>https://bleepingswift.com/blog/glass-effect-id-transitions-swiftui</link>
    <description>The glassEffectID modifier enables glass views to smoothly morph into one another during state changes, creating fluid transitions that feel native to iOS 26.</description>
    <pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>iOS</category><category>Liquid Glass</category><category>Animations</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/allows-hit-testing-swiftui</guid>
    <title>Disable Touches with allowsHitTesting in SwiftUI</title>
    <link>https://bleepingswift.com/blog/allows-hit-testing-swiftui</link>
    <description>Learn how to use the allowsHitTesting modifier to make views ignore touches, letting taps pass through to elements behind them.</description>
    <pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Gestures</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/glass-effect-container-swiftui</guid>
    <title>Coordinating Glass Elements with GlassEffectContainer</title>
    <link>https://bleepingswift.com/blog/glass-effect-container-swiftui</link>
    <description>When you have multiple glass elements that should blend and animate together, GlassEffectContainer coordinates their rendering for seamless visual results.</description>
    <pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>iOS</category><category>Liquid Glass</category><category>UI Design</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/liquid-glass-swiftui-introduction</guid>
    <title>Getting Started with Liquid Glass in SwiftUI</title>
    <link>https://bleepingswift.com/blog/liquid-glass-swiftui-introduction</link>
    <description>iOS 26 introduces Liquid Glass, a translucent design language for navigation elements. Here&#39;s how to apply the glassEffect modifier to your custom views.</description>
    <pubDate>Sun, 14 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>iOS</category><category>Liquid Glass</category><category>UI Design</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/no-such-module-error-xcode</guid>
    <title>Fixing &quot;No Such Module&quot; Errors in Xcode</title>
    <link>https://bleepingswift.com/blog/no-such-module-error-xcode</link>
    <description>When Xcode says it can&#39;t find a module you&#39;ve clearly installed, the problem is usually in your build configuration, not your package manager.</description>
    <pubDate>Wed, 10 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>Swift Package Manager</category><category>Debugging</category><category>CocoaPods</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/simulating-device-conditions-in-xcode</guid>
    <title>Simulating Device Conditions in Xcode for Real-World Testing</title>
    <link>https://bleepingswift.com/blog/simulating-device-conditions-in-xcode</link>
    <description>Learn how to use Xcode&#39;s Device Conditions feature to simulate thermal state and network conditions to test your app under real-world stress scenarios.</description>
    <pubDate>Thu, 04 Dec 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>Testing</category><category>Performance</category><category>Development</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/round-specific-corners-swiftui</guid>
    <title>How to Round Specific Corners of a View in SwiftUI</title>
    <link>https://bleepingswift.com/blog/round-specific-corners-swiftui</link>
    <description>Learn how to round only certain corners of a SwiftUI view using UnevenRoundedRectangle, custom shapes, and clipShape.</description>
    <pubDate>Wed, 26 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UI</category><category>Shapes</category><category>Layout</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/resize-image-swiftui</guid>
    <title>How to Resize an Image in SwiftUI</title>
    <link>https://bleepingswift.com/blog/resize-image-swiftui</link>
    <description>Learn how to resize images in SwiftUI using resizable(), frame(), and different content modes like scaledToFit and scaledToFill.</description>
    <pubDate>Tue, 25 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Image</category><category>UI</category><category>Layout</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/activity-indicator-swiftui</guid>
    <title>How to Add an Activity Indicator (Spinner) in SwiftUI</title>
    <link>https://bleepingswift.com/blog/activity-indicator-swiftui</link>
    <description>Learn how to show loading spinners in SwiftUI using ProgressView, including customization options and common loading patterns.</description>
    <pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UI</category><category>Loading</category><category>ProgressView</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/detect-shake-gesture-swiftui</guid>
    <title>Detecting Shake Gestures in SwiftUI</title>
    <link>https://bleepingswift.com/blog/detect-shake-gesture-swiftui</link>
    <description>Learn how to detect when users shake their device in SwiftUI by bridging to UIKit&#39;s motion events and creating a reusable view modifier.</description>
    <pubDate>Sat, 22 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Gestures</category><category>UIKit</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/simulator-wont-launch-troubleshooting</guid>
    <title>Fixing iOS Simulator That Won&#39;t Launch or Boot</title>
    <link>https://bleepingswift.com/blog/simulator-wont-launch-troubleshooting</link>
    <description>When the iOS Simulator refuses to launch, gets stuck booting, or shows a black screen, here&#39;s how to diagnose and fix it.</description>
    <pubDate>Tue, 18 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>Simulator</category><category>Debugging</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/scheduling-alarms-with-alarmkit</guid>
    <title>Scheduling Alarms with AlarmKit</title>
    <link>https://bleepingswift.com/blog/scheduling-alarms-with-alarmkit</link>
    <description>Learn how to use AlarmKit to schedule alarms and countdown timers that appear on the Lock Screen and Dynamic Island on iOS 26.</description>
    <pubDate>Sat, 15 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>AlarmKit</category><category>iOS</category><category>Swift</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/dark-mode-swiftui</guid>
    <title>Supporting Dark Mode in a SwiftUI App</title>
    <link>https://bleepingswift.com/blog/dark-mode-swiftui</link>
    <description>Learn how to properly support dark mode in SwiftUI using semantic colors, adaptive color assets, and color scheme detection.</description>
    <pubDate>Fri, 14 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Dark Mode</category><category>UI</category><category>Colors</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/using-sf-symbols-swiftui</guid>
    <title>Using SF Symbols in SwiftUI</title>
    <link>https://bleepingswift.com/blog/using-sf-symbols-swiftui</link>
    <description>Learn how to use SF Symbols in your SwiftUI apps, including sizing, coloring, animations, and finding the right symbol for your needs.</description>
    <pubDate>Thu, 13 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>SF Symbols</category><category>Icons</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/state-vs-binding-swiftui</guid>
    <title>@State vs @Binding in SwiftUI: When to Use Each</title>
    <link>https://bleepingswift.com/blog/state-vs-binding-swiftui</link>
    <description>Understand the difference between @State and @Binding in SwiftUI, when to use each, and how they work together to manage data flow between views.</description>
    <pubDate>Mon, 10 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>State Management</category><category>Data Flow</category><category>Property Wrappers</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/age-rating-code-storekit</guid>
    <title>Reading Your App&#39;s Age Rating with StoreKit&#39;s ageRatingCode</title>
    <link>https://bleepingswift.com/blog/age-rating-code-storekit</link>
    <description>Learn how to use AppStore.ageRatingCode to read your app&#39;s current age rating and react to rating changes for parental consent compliance.</description>
    <pubDate>Sat, 08 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>StoreKit</category><category>iOS</category><category>Swift</category><category>App Store</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/xcode-indexing-slow-fixes</guid>
    <title>Fixing Xcode Indexing That&#39;s Stuck or Slow</title>
    <link>https://bleepingswift.com/blog/xcode-indexing-slow-fixes</link>
    <description>When Xcode&#39;s indexing gets stuck or takes forever, your autocomplete and jump-to-definition stop working. Here&#39;s how to get it unstuck.</description>
    <pubDate>Mon, 03 Nov 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>Performance</category><category>Debugging</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/toolbar-spacer-swiftui</guid>
    <title>Add Spacing to Toolbars with ToolbarSpacer in SwiftUI</title>
    <link>https://bleepingswift.com/blog/toolbar-spacer-swiftui</link>
    <description>Learn how to use ToolbarSpacer to add fixed and flexible spacing between toolbar items in SwiftUI, new in iOS 26.</description>
    <pubDate>Thu, 30 Oct 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Toolbar</category><category>UI</category><category>Layout</category><category>iOS 26</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/optional-observed-object-swiftui</guid>
    <title>Working with Optional ObservableObject in SwiftUI</title>
    <link>https://bleepingswift.com/blog/optional-observed-object-swiftui</link>
    <description>Learn different approaches for handling optional ObservableObject instances in SwiftUI, from conditional rendering to wrapper patterns.</description>
    <pubDate>Sat, 25 Oct 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>State Management</category><category>ObservableObject</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/defensive-coding-nserror-objc</guid>
    <title>Defensive Coding with NSError in Objective-C</title>
    <link>https://bleepingswift.com/blog/defensive-coding-nserror-objc</link>
    <description>NSError is the standard error handling mechanism in Objective-C, but using it defensively requires more than just passing a pointer. Learn patterns that prevent crashes and make debugging easier.</description>
    <pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Error Handling</category><category>Best Practices</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/failable-initializers-for-swiftui-views</guid>
    <title>Using Failable Initializers to Handle Optionals in SwiftUI Views</title>
    <link>https://bleepingswift.com/blog/failable-initializers-for-swiftui-views</link>
    <description>Failable initializers offer a cleaner alternative to if-let statements when your SwiftUI views depend on optional data.</description>
    <pubDate>Wed, 22 Oct 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Swift</category><category>Optionals</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/presentation-detents-swiftui</guid>
    <title>Control Sheet Height with presentationDetents in SwiftUI</title>
    <link>https://bleepingswift.com/blog/presentation-detents-swiftui</link>
    <description>Learn how to use the presentationDetents modifier to control sheet heights in SwiftUI, creating interactive bottom sheets similar to Apple Maps and Music.</description>
    <pubDate>Wed, 15 Oct 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Sheet</category><category>UI</category><category>Modal</category><category>iOS 16</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/xcode-previews-not-loading</guid>
    <title>Fixing SwiftUI Previews That Won&#39;t Load</title>
    <link>https://bleepingswift.com/blog/xcode-previews-not-loading</link>
    <description>When SwiftUI previews fail with cryptic errors or just spin forever, here&#39;s how to diagnose and fix the most common causes.</description>
    <pubDate>Wed, 08 Oct 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>SwiftUI</category><category>Debugging</category><category>Previews</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/permissionkit-child-safety-communication-apps</guid>
    <title>Building Child-Safe Communication Features with PermissionKit</title>
    <link>https://bleepingswift.com/blog/permissionkit-child-safety-communication-apps</link>
    <description>PermissionKit lets children request parental permission to communicate with new contacts directly through Messages. Here&#39;s how to integrate it into your social or messaging app to create safer communication experiences.</description>
    <pubDate>Fri, 03 Oct 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>PermissionKit</category><category>SwiftUI</category><category>Child Safety</category><category>iOS</category><category>Family Sharing</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/content-shape-swiftui</guid>
    <title>Control Tappable Area with contentShape in SwiftUI</title>
    <link>https://bleepingswift.com/blog/content-shape-swiftui</link>
    <description>Learn how to use the contentShape modifier to expand or customize the tappable area of your SwiftUI views, making buttons and interactive elements more user-friendly.</description>
    <pubDate>Sun, 28 Sep 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Gestures</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/safe-area-handling-swiftui</guid>
    <title>Understanding Safe Areas in SwiftUI</title>
    <link>https://bleepingswift.com/blog/safe-area-handling-swiftui</link>
    <description>Safe areas keep your content visible and interactive. Here&#39;s how they work in SwiftUI and when you should ignore them.</description>
    <pubDate>Mon, 22 Sep 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Layout</category><category>UI</category><category>Safe Area</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/app-background-state-saving-swiftui</guid>
    <title>Detecting When App Enters Background and Saving State in SwiftUI</title>
    <link>https://bleepingswift.com/blog/app-background-state-saving-swiftui</link>
    <description>Learn how to detect app lifecycle changes in SwiftUI, save state when your app enters the background, and restore it when users return, using scenePhase and UIApplication notifications.</description>
    <pubDate>Sat, 13 Sep 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Lifecycle</category><category>State Management</category><category>Persistence</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/previewing-partially-generated-content-foundation-models</guid>
    <title>Previewing Partially Generated Content with Foundation Models in SwiftUI</title>
    <link>https://bleepingswift.com/blog/previewing-partially-generated-content-foundation-models</link>
    <description>When building UIs that stream AI-generated content using Apple&#39;s Foundation Models framework, testing intermediate states in Xcode Previews requires some creative workarounds. Here&#39;s how to preview partially generated content without calling the actual model.</description>
    <pubDate>Thu, 11 Sep 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Foundation Models</category><category>Xcode</category><category>Previews</category><category>AI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/custom-fonts-swiftui</guid>
    <title>Using Custom Fonts in SwiftUI</title>
    <link>https://bleepingswift.com/blog/custom-fonts-swiftui</link>
    <description>How to add custom fonts to your SwiftUI app, use system font variants, and ensure your typography scales properly with Dynamic Type.</description>
    <pubDate>Fri, 05 Sep 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Fonts</category><category>Typography</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/centering-views-swiftui</guid>
    <title>Centering Views in SwiftUI</title>
    <link>https://bleepingswift.com/blog/centering-views-swiftui</link>
    <description>Understanding the difference between frame alignment and stack alignment is the key to centering views exactly where you want them in SwiftUI.</description>
    <pubDate>Tue, 19 Aug 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Layout</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/texteditor-horizontal-padding-contentmargins</guid>
    <title>Adding Horizontal Padding to TextEditor in SwiftUI with contentMargins</title>
    <link>https://bleepingswift.com/blog/texteditor-horizontal-padding-contentmargins</link>
    <description>Learn how to add horizontal padding inside a TextEditor without affecting the scrollbar using the contentMargins modifier introduced in iOS 17.</description>
    <pubDate>Tue, 12 Aug 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>TextEditor</category><category>Layout</category><category>iOS 17</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/detect-low-power-mode-swiftui</guid>
    <title>Detecting Low Power Mode in SwiftUI and Adapting UI Performance</title>
    <link>https://bleepingswift.com/blog/detect-low-power-mode-swiftui</link>
    <description>Learn how to detect when users enable Low Power Mode and automatically reduce animations, refresh rates, and visual effects to preserve battery life in your SwiftUI app.</description>
    <pubDate>Fri, 08 Aug 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Performance</category><category>Battery</category><category>iOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/presenting-multiple-sheets-swiftui</guid>
    <title>Presenting Multiple Sheets in SwiftUI</title>
    <link>https://bleepingswift.com/blog/presenting-multiple-sheets-swiftui</link>
    <description>How to present a second sheet from within an already-presented sheet in SwiftUI.</description>
    <pubDate>Fri, 18 Jul 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Sheets</category><category>Navigation</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/symbolicate-swift-crash-report</guid>
    <title>Symbolicating Swift Crash Reports in Xcode</title>
    <link>https://bleepingswift.com/blog/symbolicate-swift-crash-report</link>
    <description>Learn how to symbolicate crash logs from App Store Connect and Xcode Cloud to debug production crashes effectively.</description>
    <pubDate>Fri, 11 Jul 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>Debugging</category><category>Crash Reporting</category><category>Production</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/add-app-delegate-in-swiftui-app</guid>
    <title>Adding an App Delegate to a SwiftUI App</title>
    <link>https://bleepingswift.com/blog/add-app-delegate-in-swiftui-app</link>
    <description>Learn how to integrate UIKit&#39;s App Delegate into your SwiftUI app for handling app lifecycle events and system callbacks.</description>
    <pubDate>Sun, 06 Jul 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>AppDelegate</category><category>UIKit</category><category>Lifecycle</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/access-environment-value-in-view-extension</guid>
    <title>Access Environment Values in View Extensions</title>
    <link>https://bleepingswift.com/blog/access-environment-value-in-view-extension</link>
    <description>Learn how to access SwiftUI environment values in View extensions using ViewModifiers for clean, reusable code.</description>
    <pubDate>Sat, 05 Jul 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Environment</category><category>ViewModifier</category><category>Extensions</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/generate-a-qr-code-in-swiftui</guid>
    <title>How to generate QR codes in SwiftUI</title>
    <link>https://bleepingswift.com/blog/generate-a-qr-code-in-swiftui</link>
    <description>Learn how to create and display QR codes in SwiftUI using Core Image filters.</description>
    <pubDate>Thu, 03 Jul 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>CoreImage</category><category>QR</category><category>Images</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/search-sf-symbols-in-xcode</guid>
    <title>How to search SF Symbols in Xcode</title>
    <link>https://bleepingswift.com/blog/search-sf-symbols-in-xcode</link>
    <description>Learn how to search SF Symbols in Xcode.</description>
    <pubDate>Wed, 02 Jul 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Xcode</category><category>SwiftUI</category><category>Design</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/floating-action-button-keyboard-swiftui</guid>
    <title>Building a Floating Action Button (FAB) that Respects Keyboard in SwiftUI</title>
    <link>https://bleepingswift.com/blog/floating-action-button-keyboard-swiftui</link>
    <description>Learn how to create a Material Design-style floating action button in SwiftUI that intelligently moves above the keyboard and avoids blocking text input fields.</description>
    <pubDate>Fri, 27 Jun 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Keyboard</category><category>UI</category><category>Layout</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/pull-to-load-more-scrollview-swiftui</guid>
    <title>Building a Pull-to-Load-More ScrollView in SwiftUI</title>
    <link>https://bleepingswift.com/blog/pull-to-load-more-scrollview-swiftui</link>
    <description>How to detect when users scroll to the bottom of a list and automatically load more content.</description>
    <pubDate>Fri, 20 Jun 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>ScrollView</category><category>UI</category><category>Pagination</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/keyboard-toolbar-swiftui</guid>
    <title>Managing Keyboard Toolbar Items in SwiftUI (iOS 15+)</title>
    <link>https://bleepingswift.com/blog/keyboard-toolbar-swiftui</link>
    <description>Learn how to add custom toolbar buttons above the keyboard in SwiftUI using the .toolbar modifier with keyboard placement for Done buttons, formatting controls, and more.</description>
    <pubDate>Sun, 15 Jun 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Keyboard</category><category>TextField</category><category>TextEditor</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/prevent-screenshots-in-swiftui</guid>
    <title>Preventing Screenshot Capture in SwiftUI Views</title>
    <link>https://bleepingswift.com/blog/prevent-screenshots-in-swiftui</link>
    <description>Learn how to prevent users from taking screenshots of sensitive content in your SwiftUI app using field-level security and UIKit bridging for financial, medical, or private data protection.</description>
    <pubDate>Thu, 05 Jun 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Security</category><category>Privacy</category><category>UIKit</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/imessage-style-input-accessory-view</guid>
    <title>Creating an iMessage-Style Input Accessory View in SwiftUI</title>
    <link>https://bleepingswift.com/blog/imessage-style-input-accessory-view</link>
    <description>Learn how to create a custom input accessory view that stays above the keyboard, similar to iMessage&#39;s input bar.</description>
    <pubDate>Sun, 25 May 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Keyboard</category><category>UI</category><category>TextField</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/finding-top-view-controller</guid>
    <title>Finding the Top View Controller in Swift</title>
    <link>https://bleepingswift.com/blog/finding-top-view-controller</link>
    <description>How to traverse the view controller hierarchy to find the currently visible view controller.</description>
    <pubDate>Thu, 15 May 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>UIKit</category><category>iOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/pull-to-refresh-without-list-swiftui</guid>
    <title>Implementing Pull-to-Refresh Without List in SwiftUI</title>
    <link>https://bleepingswift.com/blog/pull-to-refresh-without-list-swiftui</link>
    <description>Learn how to add pull-to-refresh functionality to custom ScrollViews in SwiftUI without using List, perfect for custom layouts and complex scroll content.</description>
    <pubDate>Thu, 08 May 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>ScrollView</category><category>UIKit</category><category>Async</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/skeleton-shimmer-loading-swiftui</guid>
    <title>Creating Skeleton Loading Views (Shimmer Effect) in SwiftUI</title>
    <link>https://bleepingswift.com/blog/skeleton-shimmer-loading-swiftui</link>
    <description>Learn how to build skeleton loading screens with animated shimmer effects in SwiftUI using gradients, AnimatableModifier, and reusable view modifiers for a polished loading experience.</description>
    <pubDate>Tue, 29 Apr 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Animation</category><category>UI</category><category>Loading</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/get-all-environment-values-in-swiftui</guid>
    <title>Inspecting all SwiftUI Environment Values</title>
    <link>https://bleepingswift.com/blog/get-all-environment-values-in-swiftui</link>
    <description>Learn how to dump all SwiftUI environment values for debugging purposes.</description>
    <pubDate>Sat, 19 Apr 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Environment</category><category>Debugging</category><category>Development</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/time-ago-in-swiftui</guid>
    <title>Showing a relative &quot;Time ago&quot; date in SwiftUI</title>
    <link>https://bleepingswift.com/blog/time-ago-in-swiftui</link>
    <description>Learn how to display human-readable relative timestamps like &quot;5 minutes ago&quot; or &quot;yesterday&quot; using RelativeDateTimeFormatter in your SwiftUI apps.</description>
    <pubDate>Fri, 18 Apr 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Date</category><category>Formatting</category><category>Foundation</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/generate-random-emoji</guid>
    <title>Generating a Random Emoji in Swift</title>
    <link>https://bleepingswift.com/blog/generate-random-emoji</link>
    <description>How to generate random emoji characters in Swift using Unicode scalar ranges.</description>
    <pubDate>Sat, 12 Apr 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Unicode</category><category>String</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/undo-redo-swiftui</guid>
    <title>Implementing Undo/Redo in SwiftUI with UndoManager</title>
    <link>https://bleepingswift.com/blog/undo-redo-swiftui</link>
    <description>Learn how to implement undo/redo functionality in SwiftUI using UndoManager, including environment injection, registering actions, and creating undo buttons for professional editing experiences.</description>
    <pubDate>Sat, 05 Apr 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UndoManager</category><category>State Management</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/get-current-disk-usage</guid>
    <title>Getting Current Disk Usage in Swift</title>
    <link>https://bleepingswift.com/blog/get-current-disk-usage</link>
    <description>How to check available and total disk space on iOS devices using URL resource values.</description>
    <pubDate>Thu, 20 Mar 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Storage</category><category>iOS</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/crashlytics-dsyms-not-showing-up-xcode-15</guid>
    <title>Firebase Crashlytics dSYM files not uploading using Xcode 15+</title>
    <link>https://bleepingswift.com/blog/crashlytics-dsyms-not-showing-up-xcode-15</link>
    <description>Learn how to fix the Firebase Crashlytics dSYM files not properly being uploaded to Firebase after upgrading to Xcode 15/16.</description>
    <pubDate>Mon, 17 Mar 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Firebase</category><category>Xcode</category><category>Crashlytics</category><category>Debugging</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/access-environmental-variables-in-swift</guid>
    <title>Accessing Environment Variables in Swift</title>
    <link>https://bleepingswift.com/blog/access-environmental-variables-in-swift</link>
    <description>Learn how to access and configure environment variables in Swift applications for configuration management, API keys, and feature toggles.</description>
    <pubDate>Sun, 09 Mar 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Configuration</category><category>Environment</category><category>Development</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/aligning-text-in-swiftui</guid>
    <title>Aligning Text in SwiftUI</title>
    <link>https://bleepingswift.com/blog/aligning-text-in-swiftui</link>
    <description>Learn how to align single and multiline text in SwiftUI.</description>
    <pubDate>Thu, 13 Feb 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Text</category><category>Layout</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/scrolling-a-scrollview-automatically</guid>
    <title>How to make a SwiftUI List scroll automatically?</title>
    <link>https://bleepingswift.com/blog/scrolling-a-scrollview-automatically</link>
    <description>Learn how to use ScrollViewReader and ScrollViewProxy to scroll a SwiftUI list to a specific item automatically.</description>
    <pubDate>Wed, 12 Feb 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>ScrollView</category><category>List</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/detect-when-context-menu-is-open</guid>
    <title>Detect when a context menu is open in SwiftUI</title>
    <link>https://bleepingswift.com/blog/detect-when-context-menu-is-open</link>
    <description>Learn how to detect when a context menu is open in SwiftUI.</description>
    <pubDate>Mon, 10 Feb 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>ContextMenu</category><category>UI</category><category>Gestures</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/webview-transparent-background</guid>
    <title>Creating a WebView with a transparent background in SwiftUI</title>
    <link>https://bleepingswift.com/blog/webview-transparent-background</link>
    <description>Learn how to create a WebView/WKWebView with a transparent/clear background in SwiftUI.</description>
    <pubDate>Mon, 10 Feb 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>WebView</category><category>UIKit</category><category>Styling</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/adding-a-textfield-to-an-alert</guid>
    <title>Adding a TextField to an Alert in SwiftUI</title>
    <link>https://bleepingswift.com/blog/adding-a-textfield-to-an-alert</link>
    <description>Learn how to accept user input in an alert using TextField or SecureField.</description>
    <pubDate>Sun, 09 Feb 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>TextField</category><category>Alert</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/dismiss-keyboard-react-native</guid>
    <title>Different Ways to Dismiss the Keyboard in React Native</title>
    <link>https://bleepingswift.com/blog/dismiss-keyboard-react-native</link>
    <description>The keyboard doesn&#39;t always dismiss itself when you expect it to. Here are several approaches to dismissing it programmatically and through user interaction.</description>
    <pubDate>Sun, 19 Jan 2025 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>React Native</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/add-character-limit-to-texteditor</guid>
    <title>Adding a character limit to a TextEditor or TextField in SwiftUI</title>
    <link>https://bleepingswift.com/blog/add-character-limit-to-texteditor</link>
    <description>Learn how to create a modifier that limits the characters that can be entered in a TextEditor or TextField view in SwiftUI.</description>
    <pubDate>Tue, 17 Dec 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>TextField</category><category>TextEditor</category><category>Validation</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/scale-text-to-fit</guid>
    <title>How to scale text to fit its parent view with SwiftUI</title>
    <link>https://bleepingswift.com/blog/scale-text-to-fit</link>
    <description>Learn the ways to scale a text view&#39;s font size to fit its parent view in SwiftUI.</description>
    <pubDate>Thu, 12 Dec 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Text</category><category>Layout</category><category>UI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/gif-image-view</guid>
    <title>How to display a GIF from a URL in SwiftUI</title>
    <link>https://bleepingswift.com/blog/gif-image-view</link>
    <description>Learn how to use a WKWebView as a quick way to load a GIF from a URL and display it in a SwiftUI view.</description>
    <pubDate>Wed, 11 Dec 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Images</category><category>WebView</category><category>UIKit</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/custom-disclosure-group</guid>
    <title>Creating custom styles for DisclosureGroup views</title>
    <link>https://bleepingswift.com/blog/custom-disclosure-group</link>
    <description>Learn how to use DisclosureGroupStyle to create custom DisclosureGroup views in SwiftUI.</description>
    <pubDate>Tue, 10 Dec 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UI</category><category>Components</category><category>Styling</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/get-emoji-name</guid>
    <title>How to get the name of an emoji in Swift</title>
    <link>https://bleepingswift.com/blog/get-emoji-name</link>
    <description>Learn how to use kCFStringTransformToUnicodeName to get the system name for any emoji.</description>
    <pubDate>Sun, 08 Dec 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Text</category><category>Unicode</category><category>Emoji</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/prevent-simulator-keyboard-from-disimssing</guid>
    <title>Preventing the software keyboard from dismissing on iOS simulators</title>
    <link>https://bleepingswift.com/blog/prevent-simulator-keyboard-from-disimssing</link>
    <description>Learn how to prevent typing with your physical keyboard from dismissing the software keyboard when running your Swift app in the iOS simulator.</description>
    <pubDate>Sun, 08 Dec 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Simulator</category><category>Keyboard</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/nil-null-nsnull-objc</guid>
    <title>nil vs Nil vs NULL vs NSNull in Objective-C</title>
    <link>https://bleepingswift.com/blog/nil-null-nsnull-objc</link>
    <description>Objective-C has four ways to represent nothing. Understanding when to use each prevents subtle bugs and clarifies your code&#39;s intent.</description>
    <pubDate>Mon, 18 Nov 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Fundamentals</category><category>Memory</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/detecting-xcode-previews</guid>
    <title>Detecting if SwiftUI is running in a Preview in Xcode</title>
    <link>https://bleepingswift.com/blog/detecting-xcode-previews</link>
    <description>Learn how to detect if a SwiftUI app is running in a Xcode Preview.</description>
    <pubDate>Tue, 08 Oct 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Xcode</category><category>Previews</category><category>Development</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/pod-install-fails-with-unknow-isa</guid>
    <title>Fixing CocoaPods &quot;Unknown ISA PBXFileSystemSynchronizedRootGroup&quot; Error</title>
    <link>https://bleepingswift.com/blog/pod-install-fails-with-unknow-isa</link>
    <description>How to resolve the pod install error caused by Xcode 16&#39;s new folder-based group structure.</description>
    <pubDate>Tue, 08 Oct 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>CocoaPods</category><category>Xcode</category><category>iOS</category><category>Troubleshooting</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/always-show-nav-bar</guid>
    <title>How to force navigation bar to show background in SwiftUI?</title>
    <link>https://bleepingswift.com/blog/always-show-nav-bar</link>
    <description>Learn how to force the navigation bar to show a background color in SwiftUI.</description>
    <pubDate>Mon, 07 Oct 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>Navigation</category><category>UI</category><category>Styling</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/using-disclosure-group</guid>
    <title>Using DisclosureGroup to hide and show content</title>
    <link>https://bleepingswift.com/blog/using-disclosure-group</link>
    <description>How to use the SwiftUI DisclosureGroup view to create collapsable content.</description>
    <pubDate>Sun, 06 Oct 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>SwiftUI</category><category>UI</category><category>Components</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/add-elements-to-array-swift</guid>
    <title>All the Ways to Add Elements to an Array in Swift</title>
    <link>https://bleepingswift.com/blog/add-elements-to-array-swift</link>
    <description>A practical guide to the different methods for adding single elements, multiple elements, and inserting at specific positions in Swift arrays.</description>
    <pubDate>Sun, 15 Sep 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>Arrays</category><category>Collections</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/access-app-delegate-swift</guid>
    <title>How to Access the App Delegate in Swift</title>
    <link>https://bleepingswift.com/blog/access-app-delegate-swift</link>
    <description>Learn how to access your app&#39;s App Delegate from anywhere in your Swift code, including from SwiftUI views.</description>
    <pubDate>Mon, 09 Sep 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>UIKit</category><category>AppDelegate</category><category>SwiftUI</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/replace-characters-in-string-swift</guid>
    <title>How to Replace Characters in a String in Swift</title>
    <link>https://bleepingswift.com/blog/replace-characters-in-string-swift</link>
    <description>Learn multiple approaches to replace characters and substrings in Swift strings, from simple replacements to pattern-based transformations.</description>
    <pubDate>Tue, 20 Aug 2024 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Swift</category><category>String</category><category>Text</category><category>Manipulation</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/kvo-deep-dive</guid>
    <title>Key-Value Observing Deep Dive</title>
    <link>https://bleepingswift.com/blog/kvo-deep-dive</link>
    <description>KVO lets you observe property changes without delegation or notifications. Here&#39;s how it works under the hood and how to use it correctly.</description>
    <pubDate>Tue, 12 Dec 2023 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Foundation</category><category>Advanced</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/blocks-closures-objc</guid>
    <title>Blocks - Closures Before Swift Existed</title>
    <link>https://bleepingswift.com/blog/blocks-closures-objc</link>
    <description>Before Swift closures, Objective-C had blocks. The syntax is different, but the power is the same. Here&#39;s how to use them effectively.</description>
    <pubDate>Fri, 17 Nov 2023 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Concurrency</category><category>Fundamentals</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/nsobject-hierarchy</guid>
    <title>The NSObject Class Hierarchy Explained</title>
    <link>https://bleepingswift.com/blog/nsobject-hierarchy</link>
    <description>Every Objective-C class inherits from NSObject (usually). Here&#39;s what NSObject provides and why it matters for every object you create.</description>
    <pubDate>Thu, 05 Oct 2023 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Foundation</category><category>Fundamentals</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/categories-vs-extensions-objc</guid>
    <title>Categories vs Class Extensions in Objective-C</title>
    <link>https://bleepingswift.com/blog/categories-vs-extensions-objc</link>
    <description>Both let you add methods to classes, but categories and class extensions serve different purposes. Here&#39;s when to use each.</description>
    <pubDate>Tue, 29 Aug 2023 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Fundamentals</category><category>Best Practices</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/message-passing-objc</guid>
    <title>Message Passing - The Heart of Objective-C</title>
    <link>https://bleepingswift.com/blog/message-passing-objc</link>
    <description>Unlike C++ virtual methods, Objective-C uses dynamic message passing. Understanding this mechanism unlocks the language&#39;s full power.</description>
    <pubDate>Tue, 11 Jul 2023 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Runtime</category><category>Fundamentals</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/retain-cycles-objc</guid>
    <title>Understanding Retain Cycles in Objective-C</title>
    <link>https://bleepingswift.com/blog/retain-cycles-objc</link>
    <description>Retain cycles are the most common memory leak in Objective-C. Learn how they form, how to detect them, and patterns that prevent them.</description>
    <pubDate>Thu, 18 May 2023 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Memory</category><category>ARC</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/namespacing-objc</guid>
    <title>Namespacing in Objective-C - The Prefix Problem</title>
    <link>https://bleepingswift.com/blog/namespacing-objc</link>
    <description>Objective-C lacks namespaces, so the community invented conventions. Here&#39;s how prefixes and other patterns help avoid collisions in a flat symbol space.</description>
    <pubDate>Thu, 06 Apr 2023 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Best Practices</category><category>Architecture</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/longest-objc-symbols</guid>
    <title>The 10 Longest Symbol Names in Apple&#39;s Frameworks</title>
    <link>https://bleepingswift.com/blog/longest-objc-symbols</link>
    <description>Objective-C is famous for verbose naming. Let&#39;s celebrate (or mourn) the longest method and class names hiding in Apple&#39;s standard libraries.</description>
    <pubDate>Tue, 14 Feb 2023 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Humor</category><category>Apple Frameworks</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/try-catch-nserror-objc</guid>
    <title>Why Objective-C Has try-catch But Nobody Uses It</title>
    <link>https://bleepingswift.com/blog/try-catch-nserror-objc</link>
    <description>Objective-C supports exception handling with @try/@catch, but the community settled on NSError pointers instead. Here&#39;s why.</description>
    <pubDate>Fri, 27 Jan 2023 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Error Handling</category><category>Best Practices</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/swizzling-foot-guns</guid>
    <title>Ways to Shoot Yourself in the Foot with Method Swizzling</title>
    <link>https://bleepingswift.com/blog/swizzling-foot-guns</link>
    <description>Swizzling is powerful but dangerous. Here are the common pitfalls and how to avoid turning your clever hack into a debugging nightmare.</description>
    <pubDate>Thu, 03 Nov 2022 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Runtime</category><category>Debugging</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/power-of-swizzling</guid>
    <title>The Power of Method Swizzling in Objective-C</title>
    <link>https://bleepingswift.com/blog/power-of-swizzling</link>
    <description>Method swizzling lets you replace method implementations at runtime. Here&#39;s how it works and when this powerful technique shines.</description>
    <pubDate>Mon, 19 Sep 2022 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Runtime</category><category>Advanced</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/class-clusters-objc</guid>
    <title>Class Clusters in Objective-C - The Pattern Behind Foundation</title>
    <link>https://bleepingswift.com/blog/class-clusters-objc</link>
    <description>Understand the class cluster pattern that makes NSString, NSArray, and NSDictionary work, and learn how to implement your own.</description>
    <pubDate>Fri, 08 Jul 2022 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Design Patterns</category><category>Foundation</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/nstagged-pointer-string</guid>
    <title>NSTaggedPointerString - The Hidden Optimization You&#39;ve Never Heard Of</title>
    <link>https://bleepingswift.com/blog/nstagged-pointer-string</link>
    <description>Discover how the Objective-C runtime secretly stores small strings directly in pointer values, eliminating heap allocations entirely.</description>
    <pubDate>Sun, 22 May 2022 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Memory</category><category>Performance</category>
  </item>

  <item>
    <guid>https://bleepingswift.com/blog/barrier-queues-gcd</guid>
    <title>Barrier Queues in GCD - Thread-Safe Collections Without Locks</title>
    <link>https://bleepingswift.com/blog/barrier-queues-gcd</link>
    <description>Learn how dispatch barrier queues provide elegant reader-writer synchronization in Objective-C without explicit locks or semaphores.</description>
    <pubDate>Tue, 15 Mar 2022 00:00:00 GMT</pubDate>
    <author>undefined (Mick MacCallum)</author>
    <category>Objective-C</category><category>Concurrency</category><category>GCD</category>
  </item>

    </channel>
  </rss>
