A practical reference for design patterns that matter in modern SwiftUI development. This guide focuses on patterns that solve real problems in declarative, state-driven architectures — and explicitly calls out classic patterns that SwiftUI makes obsolete.
A practical reference for applying SOLID principles in modern Swift development. Each principle includes the core concept, real-world Swift examples, common violations to watch for, and how it maps to modular Swift Package Manager (SPM) architectures.
If you've ever found yourself mid-feature, deep in a flow state, only to have someone ping you with "Can you hotfix this real quick?" — you know the pain. You stash your work, switch branches, fix the thing, switch back, pop the stash, and pray nothing got weird.
There's a better way. It's called git worktrees, and once you start using them, you'll wonder why you ever lived without them.
A worktree lets you check out multiple branches of the same repo in different folders — simultaneously. No stashing. No switching. Just cd to another directory.
| # =============== # | |
| # Unity generated # | |
| # =============== # | |
| # temporary files that you do not want to share with other users | |
| Temp/ | |
| Obj/ | |
| UnityGenerated/ | |
| Library/ | |
| # optional, but you likely do not want to store | |
| # your builds in your git repo due to size |
| - (UIViewController *)topViewController{ | |
| return [self topViewController:[UIApplication sharedApplication].keyWindow.rootViewController]; | |
| } | |
| - (UIViewController *)topViewController:(UIViewController *)rootViewController { | |
| if (rootViewController.presentedViewController == nil) { | |
| return rootViewController; | |
| } | |