Default to a `struct` when the value has value semantics and does not need shared identity or inheritance: ```swift struct User { let id: UUID let name: String } ``` Use a `class` when instances must have shared reference identity, participate in an object lifecycle, or use inheritance. Make non-subclassable classes `final`, and prefer `let` properties unless mutation is required. Structs are generally easier to reason about and safer to share across concurrent code.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill swift-best-practices --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Swift Best Practices?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-swift-best-practices-6af90ea2)More formats (shields.io, HTML) on the badges page.
Default to a `struct` when the value has value semantics and does not need shared identity or inheritance:
```swift
struct User {
let id: UUID
let name: String
}
```
Use a `class` when instances must have shared reference identity, participate in an object lifecycle, or use inheritance. Make non-subclassable classes `final`, and prefer `let` properties unless mutation is required. Structs are generally easier to reason about and safer to share across concurrent code.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!
Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.