Adapting to change: design patterns in Swift
summary
PlanGrid is the context and the concrete claim is that applying SOLID in Swift makes change cheap: code is refactored into small components so features ship faster. Examples include decomposing a bulky image downloader → downloader + cache + data provider, replacing enums with a timestamp config closure to extend behavior without switches, modeling messages with a protocol-based message content instead of runtime type checks, injecting a session manager protocol for testable controllers, and using small extensions to replace brittle comments.
AI-written summary · about
chapters (11)
- 0:00Intro
- 1:04Construction vs software
- 2:17Bad architecture decisions
- 4:48Solid design principles
- 8:42Separating functions
- 10:56Using an enum
- 12:39Using a configuration object
- 16:27Interface segregation
- 17:30dependency inversion
- 21:02floating point protocol
- 24:46Slava
related talks
40mMobiconf 2018: John Sundell, Swift by Sundell
26mDesign of Everyday Swift
53mRefactor Your Way Forward
55mFrom Design to Swift: Best Practices in App Development - ROUNDTABLE
30mConsistency Principle
28mElevating your design with SwiftUI
52mType-Driven Design with Swift
51mDesigning Buildable Mobile Apps - iOS App Development
