swift-style▌
johnrogers/claude-swift-engineering · updated Apr 8, 2026
Swift code style conventions for clean, readable, and idiomatic code.
- ›Enforces naming conventions (UpperCamelCase for types, lowerCamelCase for everything else) and prioritizes clarity over brevity
- ›Advocates the \"golden path\" pattern: early returns and guards to keep happy-path logic left-aligned, avoiding deep nesting
- ›Covers code organization with extensions and MARK comments, memory management with weak captures, and access control best practices
- ›Identifies five common mistake
Swift Style Guide
Code style conventions for clean, readable Swift code.
Core Principles
Clarity > Brevity > Consistency
Code should compile without warnings.
Naming
UpperCamelCase— Types, protocolslowerCamelCase— Everything else- Clarity at call site
- No abbreviations except universal (URL, ID)
// Preferred
let maximumWidgetCount = 100
func fetchUser(byID id: String) -> User
Golden Path
Left-hand margin is the happy path. Don't nest if statements.
// Preferred
func process(value: Int?) throws -> Result {
guard let value = value else {
throw ProcessError.nilValue
}
guard value > 0 else {
throw ProcessError.invalidValue
}
return compute(value)
}
Code Organization
Use extensions and MARK comments:
class MyViewController: UIViewController {
// Core implementation
}
// MARK: - UITableViewDataSource
extension MyViewController: UITableViewDataSource { }
Spacing
- Braces open on same line, close on new line
- One blank line between methods
- Colon: no space before, one space after
Self
Avoid self unless required by compiler.
// Preferred
func configure() {
backgroundColor = .systemBackground
}
Computed Properties
Omit get for read-only:
var diameter: Double {
radius * 2
}
Closures
Trailing closure only for single closure parameter.
Type Inference
Let compiler infer when clear. For empty collections, use type annotation:
var names: [String] = []
Syntactic Sugar
// Preferred
var items: [String]
var cache: [String: Int]
var name: String?
Access Control
privateoverfileprivate- Don't add
internal(it's the default) - Access control as leading specifier
Memory Management
resource.request().onComplete { [weak self] response in
guard let self else { return }
self.updateModel(response)
}
Comments
- Explain why, not what
- Use
//or///, avoid/* */ - Keep up-to-date or delete
Constants
Use case-less enum for namespacing:
enum Math {
static let pi = 3.14159
}
Common Mistakes
-
Abbreviations beyond URL, ID, UUID — Abbreviations like
cfg,mgr,ctx,deschurt readability. Spell them out:configuration,manager,context,description. The three exceptions are URL, ID, UUID. -
Nested guard/if statements — Deep nesting makes code hard to follow. Use early returns and guards to keep the happy path left-aligned.
-
Inconsistent self usage — Either always omit
self(preferred) or always use it. Mixing makes code scanning harder and confuses capture semantics. -
Overly generic type names —
Manager,Handler,Helper,Coordinatorare too vague. Names should explain responsibility:PaymentProcessor,EventDispatcher,ImageCache,NavigationCoordinator. -
Implied access control — Don't skip access control. Explicit
private,publichelps future maintainers understand module boundaries.internalis default, so omit it.
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.6★★★★★52 reviews- ★★★★★Pratham Ware· Dec 24, 2024
I recommend swift-style for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Sofia White· Dec 24, 2024
We added swift-style from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Min Yang· Dec 12, 2024
Registry listing for swift-style matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Aarav Nasser· Dec 8, 2024
Solid pick for teams standardizing on skills: swift-style is focused, and the summary matches what you get after install.
- ★★★★★Ishan Perez· Dec 8, 2024
swift-style reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Anika Chen· Nov 27, 2024
swift-style has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Luis Farah· Nov 27, 2024
swift-style is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Sofia Shah· Nov 23, 2024
I recommend swift-style for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Yash Thakker· Nov 15, 2024
Useful defaults in swift-style — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Jin Okafor· Nov 15, 2024
Keeps context tight: swift-style is the kind of skill you can hand to a new teammate without a long onboarding doc.
showing 1-10 of 52