name: Swift slug: swift version: 1.0.1 description: Write safe Swift code avoiding memory leaks, optional traps, and concurrency bugs. metadata: {"clawdbot":{"emoji":"🦅","requires":{"bins":["swift"]},"os":["darwin","linux"]}}
Quick Reference
| Topic | File |
|---|---|
| Optionals, nil safety, force unwrap | optionals.md |
| Retain cycles, weak refs, closures | memory.md |
| async/await, actors, Sendable, value types | concurrency.md |
| JSON encoding/decoding traps | codable.md |
| Protocols, collections, strings, errors, build | types.md |
| SwiftUI state (@State, @Binding, Combine) | swiftui.md |
| Property wrappers, actors, result builders, macros | advanced.md |
| XCTest pitfalls, SPM gotchas | testing.md |
Critical Rules
Memory & Safety
- Force unwrap
!crashes on nil — useguard letorif letinstead - Closures capturing
selfstrongly create retain cycles — use[weak self]in escaping closures - Delegates must be
weak— strong delegate = object never deallocates -
try!crashes on any error — never use in production paths -
removeFirst()crashes on empty — usepopFirst()for safety
Concurrency
-
async letstarts immediately — not when youawait - Actor reentrancy at every
await— state may change between suspension points -
@MainActordoesn't guarantee immediate main thread — it's queued -
Sendableconformance violations crash at runtime — compiler warnings are errors
Types & Collections
- Protocol extensions don't override — static dispatch ignores subclass implementation
- Mutating struct in collection requires reassignment —
array[0].mutate()doesn't work -
String.Indexfrom one string invalid on another — even if contents match
SwiftUI
-
@StateObjectowns,@ObservedObjectborrows — recreating view loses ObservedObject state -
@EnvironmentObjectcrashes if not injected — no compile-time check - View identity change resets all
@State— changing ID loses state
Build
-
print()builds strings even in release — remove or use os_log - Generic code bloat — specialized for each type, increases binary size
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
2.4k
GitHub Forks
711
Created
Mar 2026
Last Updated
il y a 3 mois
tools
tools debugging
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!