We follow GitHub's Swift style guide and we enforce it using SwiftLint and Linterbot. We also follow Apple's API design guidelines.
- Extract view logic from controller
- Immutable controllers
- Use lazy actions
- Extract presentation logic into view models
- Use extensions when conforming to protocols
- Use private extensions for private methods
- Use property hooks to configure outlets
- Avoid structs that use closure that capture self
- Dependencies should always be protocols.
- Table view cell identifiers should be inferred from the class name.
- Public properties should appear before private ones.
- Avoid using frame and bounds properties to add child views.