We follow GitHub's Swift style guide and we enforce it using SwiftLint and Linterbot.
- 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.