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)
Golden Path
Left-hand margin is the happy path. Don't nest if statements.
Code Organization
Use extensions and MARK comments:
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.
Computed Properties
Omit get for read-only:
Closures
Trailing closure only for single closure parameter.
Type Inference
Let compiler infer when clear. For empty collections, use type annotation:
Syntactic Sugar
Access Control
privateoverfileprivate- Don't add
internal(it's the default) - Access control as leading specifier
Memory Management
Comments
- Explain why, not what
- Use
//or///, avoid/* */ - Keep up-to-date or delete
Constants
Use case-less enum for namespacing:
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.


