{"enrichment":{"faq":[{"a":"swift-concurrency-updates covers Swift 6.2's \"Approachable Concurrency\" features that reduce boilerplate and simplify strict concurrency adoption. Key changes include default MainActor inference for app targets (eliminating manual @MainActor annotations), async functions now staying on their calling actor by default, and the new @concurrent attribute for explicit background execution. These improvements make migrating from Swift 6.0/6.1 less painful and help resolve data-race errors more intuitively.","q":"What are the main Swift 6.2 concurrency changes?"},{"a":"swift-concurrency-updates explains that @concurrent is Swift 6.2's attribute for explicitly offloading CPU-intensive work to the background. Unlike Task.detached, @concurrent provides a cleaner, more declarative way to mark functions or closures for background execution. This skill guides you through applying @concurrent to your code, understanding when it's appropriate versus other concurrency patterns, and how it integrates with the new default actor isolation behavior.","q":"How do I use @concurrent in Swift 6.2?"},{"a":"swift-concurrency-updates teaches that default MainActor inference is a Swift 6.2 feature that automatically applies MainActor isolation to app targets without requiring manual @MainActor annotations on every type and method. You can enable and configure this behavior via a build setting in Xcode. This dramatically reduces boilerplate while maintaining strict concurrency checking, making it easier to adopt Swift 6.2's concurrency model.","q":"What is default MainActor inference in Swift 6.2?"},{"a":"swift-concurrency-updates clarifies that in Swift 6.2, async functions now remain on their calling actor by default instead of implicitly hopping to a generic background context. This means if you call an async function from the MainActor, it stays on the MainActor unless explicitly isolated elsewhere. This behavior reduces unexpected context switches and makes concurrency more predictable, helping you resolve data-race errors and write safer concurrent code.","q":"How do async functions stay on the calling actor in Swift 6.2?"},{"a":"swift-concurrency-updates provides a migration guide for moving from Swift 6.0/6.1 to 6.2 with less boilerplate. The skill shows how to leverage default MainActor inference to remove redundant annotations, adopt @concurrent for background work, and use the nonisolated keyword where isolation isn't needed. You'll learn which data-race errors are now easier to fix and how to incrementally update your codebase using Swift 6.2's new defaults.","q":"How do I migrate from Swift 6.0 to 6.2 concurrency?"},{"a":"swift-concurrency-updates explains that nonisolated is a Swift 6.2 keyword used to mark methods or properties that don't require actor isolation, even when they're part of an actor-isolated type. This is especially useful when default MainActor inference is enabled, allowing you to explicitly opt out of isolation for specific members. Using nonisolated reduces unnecessary context hops and helps you fine-tune concurrency behavior in your app targets.","q":"What is the nonisolated keyword in Swift 6.2?"}],"shadow_tags":["actor-isolation","thread-scheduling","ui-main-thread","concurrent-execution","data-race-prevention","migration-tooling","async-await-behavior","background-processing","protocol-conformance","compiler-settings"],"summary_rewrite":"This skill guides you through Swift 6.2's \"Approachable Concurrency\" features that simplify strict concurrency adoption. Discover how default MainActor inference eliminates manual annotations, how async functions now stay on their calling actor, and how to use @concurrent for explicit background execution. Perfect for migrating from Swift 6.0/6.1 or resolving data-race errors with the latest toolchain."},"files":[{"bytes":13918,"path":"skills/swift/concurrency/SKILL.md","sha256":"cb543398bb19ce2738977fb9e372f7a03fe5966912141b285ba446871e2a4474","url":"https://skillfed.io/files/rshankras/claude-code-apple-skills/concurrency/397fbc5a/SKILL.md"}],"id":"rshankras/claude-code-apple-skills/concurrency","links":{"html":"https://skillfed.io/rshankras/claude-code-apple-skills/concurrency","md":"https://skillfed.io/rshankras/claude-code-apple-skills/concurrency.md","repo":"https://github.com/rshankras/claude-code-apple-skills"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":47,"language":"Swift","last_updated":"2026-07-24","license":"MIT","name":"swift-concurrency-updates","publisher":"rshankras","stars":565},"relations":{"similar":[{"id":"dpearson2699/swift-ios-skills/swift-concurrency"},{"id":"Dimillian/Skills/swift-concurrency-expert"},{"id":"affaan-m/ECC/swift-concurrency-6-2"},{"id":"rshankras/claude-code-apple-skills/concurrency-patterns"},{"id":"xu-xiang/everything-claude-code-zh/swift-concurrency-6-2"},{"id":"jamesrochabrun/skills/swift-concurrency"},{"id":"rshankras/claude-code-apple-skills/swift"},{"id":"AvdLee/Swift-Concurrency-Agent-Skill/swift-concurrency"},{"id":"steipete/agent-scripts/swift-concurrency-expert"},{"id":"sammcj/agentic-coding/swift-development"}]},"slug":{"owner":"rshankras","repo":"claude-code-apple-skills","skill":"concurrency"},"version":"397fbc5a"}
