<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Swift in Practice</title>
  <link>https://swiftinpractice.com/</link>
  <atom:link href="https://swiftinpractice.com/feed.xml" rel="self" type="application/rss+xml"/>
  <description>Real-world ideas for Apple platforms — Swift, architecture, and delivery notes from Bruno Valente.</description>
  <language>en</language>
  <lastBuildDate>Tue, 20 Oct 2026 12:00:00 GMT</lastBuildDate>
  <item>
    <title>Edition #16: The Upload Finished. Did the Work?</title>
    <link>https://swiftinpractice.com/editions/16-the-upload-finished-did-the-work/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/16-the-upload-finished-did-the-work/</guid>
    <pubDate>Tue, 20 Oct 2026 12:00:00 GMT</pubDate>
    <category>Architecture</category>
    <description>Reliable uploads separate transport completion from server commitment, using a durable state machine, reconciliation on launch, and idempotent retries.</description>
  </item>
  <item>
    <title>Edition #15: The Task Is Not the Unit of Work — Ownership, Isolation, and Cancellation Beyond async/await</title>
    <link>https://swiftinpractice.com/editions/15-the-task-is-not-the-unit-of-work/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/15-the-task-is-not-the-unit-of-work/</guid>
    <pubDate>Tue, 06 Oct 2026 12:00:00 GMT</pubDate>
    <category>Concurrency</category>
    <description>Swift's concurrency checks make code thread-safe, but who owns an operation and how long it lives are architectural decisions — not something to inherit from a view's lifecycle.</description>
  </item>
  <item>
    <title>Edition #14: Stop Designing for Screens</title>
    <link>https://swiftinpractice.com/editions/14-stop-designing-for-screens/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/14-stop-designing-for-screens/</guid>
    <pubDate>Thu, 24 Sep 2026 12:00:00 GMT</pubDate>
    <category>SwiftUI</category>
    <description>Apple's foldable iPhone Duo is a prompt to design for available space and content relationships instead of specific devices.</description>
  </item>
  <item>
    <title>Edition #13: From Prototype to Client Delivery: Structuring Swift Projects That Don’t Break</title>
    <link>https://swiftinpractice.com/editions/13-from-prototype-to-client-delivery/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/13-from-prototype-to-client-delivery/</guid>
    <pubDate>Mon, 02 Feb 2026 12:00:00 GMT</pubDate>
    <category>Architecture</category>
    <description>A handoff-friendly Swift structure: feature ownership, a small core, isolated networking, modern concurrency, and tests around risk.</description>
  </item>
  <item>
    <title>Edition #12: Multi-Camera Capture on iOS: The Architecture No One Tells You About</title>
    <link>https://swiftinpractice.com/editions/12-multi-camera-capture-on-ios/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/12-multi-camera-capture-on-ios/</guid>
    <pubDate>Fri, 30 Jan 2026 12:00:00 GMT</pubDate>
    <category>Media &amp; Camera</category>
    <description>Hardware-synchronised AVCaptureMultiCamSession, shared Metal resources, capability checks, and thermal-aware degradation.</description>
  </item>
  <item>
    <title>Edition #11: Building Real-Time Computer Vision Pipelines in Swift</title>
    <link>https://swiftinpractice.com/editions/11-building-real-time-computer-vision-pipelines-in-swift/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/11-building-real-time-computer-vision-pipelines-in-swift/</guid>
    <pubDate>Thu, 29 Jan 2026 12:00:00 GMT</pubDate>
    <category>Performance</category>
    <description>The production lessons behind stable 30–60 FPS camera pipelines: memory flow, zero-copy Metal mapping, thermal limits, and interruptions.</description>
  </item>
  <item>
    <title>Edition #10: Why MVVM-C with Coordinators Does Scale</title>
    <link>https://swiftinpractice.com/editions/10-why-mvvm-c-with-coordinators-does-scale/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/10-why-mvvm-c-with-coordinators-does-scale/</guid>
    <pubDate>Fri, 23 Jan 2026 12:00:00 GMT</pubDate>
    <category>Architecture</category>
    <description>MVVM-C scales when coordinators own navigation and business rules stay in view models or domain use cases — a real-world SwiftUI perspective.</description>
  </item>
  <item>
    <title>Edition #9: When Your iOS App Is Stuck — How to Unblock It Fast</title>
    <link>https://swiftinpractice.com/editions/9-when-your-ios-app-is-stuck-how-to-unblock-it-fast/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/9-when-your-ios-app-is-stuck-how-to-unblock-it-fast/</guid>
    <pubDate>Fri, 16 Jan 2026 12:00:00 GMT</pubDate>
    <category>Architecture</category>
    <description>Find the real blocker before commissioning a redesign: diagnose architecture, performance, and integration constraints first.</description>
  </item>
  <item>
    <title>Edition #8: Swift Enum Hidden Magic Tricks</title>
    <link>https://swiftinpractice.com/editions/8-swift-enum-hidden-magic-tricks/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/8-swift-enum-hidden-magic-tricks/</guid>
    <pubDate>Sat, 06 Dec 2025 12:00:00 GMT</pubDate>
    <category>Architecture</category>
    <description>Use enums as architecture: state machines, compiler-enforced namespaces, and polymorphism without inheritance instead of boolean soup.</description>
  </item>
  <item>
    <title>Edition #7: HLS &amp; Metal: Architectural Clarity for Video Streaming at Scale</title>
    <link>https://swiftinpractice.com/editions/7-hls-and-metal-architectural-clarity-for-video/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/7-hls-and-metal-architectural-clarity-for-video/</guid>
    <pubDate>Mon, 03 Nov 2025 12:00:00 GMT</pubDate>
    <category>Media &amp; Camera</category>
    <description>Where HLS, AVFoundation, and Metal actually belong in a production video pipeline — and why reaching for Metal before profiling usually makes things slower, not faster.</description>
  </item>
  <item>
    <title>Edition #6: A11y, or You Can Call It Accessibility</title>
    <link>https://swiftinpractice.com/editions/6-a11y-or-you-can-call-it-accessibility/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/6-a11y-or-you-can-call-it-accessibility/</guid>
    <pubDate>Sun, 26 Oct 2025 12:00:00 GMT</pubDate>
    <category>Accessibility</category>
    <description>Accessibility in iOS is product quality and a delivery requirement, not a late polish pass — with the EU's June 2025 deadline making it a business risk too.</description>
  </item>
  <item>
    <title>Edition #5: Swift Comes to Android — A New Era for Cross-Platform Development</title>
    <link>https://swiftinpractice.com/editions/5-swift-comes-to-android/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/5-swift-comes-to-android/</guid>
    <pubDate>Sat, 25 Oct 2025 12:00:00 GMT</pubDate>
    <category>Platforms &amp; Devices</category>
    <description>What the first official Swift Android SDK previews make possible today — and what remains experimental for teams sharing code across platforms.</description>
  </item>
  <item>
    <title>Edition #4: Understanding HLS: A Practical Guide for Swift Developers</title>
    <link>https://swiftinpractice.com/editions/4-understanding-hls-a-practical-guide-for-swift-developers/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/4-understanding-hls-a-practical-guide-for-swift-developers/</guid>
    <pubDate>Wed, 22 Oct 2025 12:00:00 GMT</pubDate>
    <category>Media &amp; Camera</category>
    <description>Playlists, segments, adaptive bitrate, codecs, and the production trade-offs behind reliable video and audio delivery.</description>
  </item>
  <item>
    <title>Edition #3: Swift 6 Migration Playbook: How We Moved Three Production Apps Without Halting Feature Delivery</title>
    <link>https://swiftinpractice.com/editions/3-swift-6-migration-playbook/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/3-swift-6-migration-playbook/</guid>
    <pubDate>Mon, 20 Oct 2025 12:00:00 GMT</pubDate>
    <category>Concurrency</category>
    <description>A case study: five engineers migrated three production apps (~400K lines) to Swift 6 concurrency over 12 weeks without pausing feature delivery.</description>
  </item>
  <item>
    <title>Edition #2: Swift Concurrency: What I Wish Someone Had Told Me</title>
    <link>https://swiftinpractice.com/editions/2-swift-concurrency-what-i-wish-someone-had-told-me/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/2-swift-concurrency-what-i-wish-someone-had-told-me/</guid>
    <pubDate>Wed, 15 Oct 2025 12:00:00 GMT</pubDate>
    <category>Concurrency</category>
    <description>Hard-won lessons from migrating three production apps to Swift 6's strict concurrency model: what @MainActor doesn't protect, and how actor reentrancy hides in code that looks clean.</description>
  </item>
  <item>
    <title>Edition #1: Welcome to Swift in Practice — First Topic: Bluetooth Low Energy (BLE) in Swift</title>
    <link>https://swiftinpractice.com/editions/1-bluetooth-low-energy-in-swift/</link>
    <guid isPermaLink="true">https://swiftinpractice.com/editions/1-bluetooth-low-energy-in-swift/</guid>
    <pubDate>Sun, 05 Oct 2025 12:00:00 GMT</pubDate>
    <category>Platforms &amp; Devices</category>
    <description>A practical tour of CoreBluetooth: scanning, connecting, advertising, and the platform rules that trip teams up in production.</description>
  </item>
</channel>
</rss>
