Clean code, S.O.L.I.D., testability, abstractions, separation of concerns, etc.

These and other important iOS / Swift development good practices
explained simply and with memes 🤣

Recent Posts:

Developer Skills in the Age of AI: What Died, What Survived
  • 2026-09-01
  • 23 min read

Developer Skills After AI: Survival of the Valuable

Have you ever wondered what your developer skills are actually worth now? Let's price it! Take a simple SwiftUI + SwiftData note-taking app - the kind you've probably written as a recruitment task. Models, @Query bindings, list-detail navigation, a repository layer, a few tests. Call it 2,500 lines. One Claude…

Code Review in the Age of AI
  • 2026-07-24
  • 23 min read

AI Broke Code Review. Here’s How to Rebuild It

You're deep in a tricky bug when Slack pings: a colleague needs a code review. You sigh and click through. 47 files changed. 2,800 lines added, 400 removed. The size of the commit suggests the code wasn't written entirely by hand. That suspicion is confirmed the moment you start scrolling.…

Refactoring Thumbnail - How to Refactor an RxSwift Monolith into a Modular Swift App
  • 2026-06-02
  • 22 min read

How to Refactor an RxSwift Monolith into a Modular Swift App

Imagine a quarter-long refactor: turning a big ball of mud, held together by RxSwift and 1500-line view models, into a modular, fully testable codebase. All while actively developing other features and shipping the app. What triggered that massive refactor? An innocuous estimation request. And a decision that shaped the future…

ISP Thumbnail - Interface Segregation Principle in iOS: The Protocol That Became a Prison
  • 2026-04-11
  • 18 min read

Interface Segregation Principle In IOS: How To Prevent A Protocol From Becoming A Prison

It's Monday morning. You're halfway through your coffee when a Slack message pops up from the Platform team: Hey, we noticed UserService.fetchLoyaltyPoints() is throwing an error for 12% of users. Can you take a look? You open UserService.swift, and your heart sinks. Eleven dependencies. Twenty-five methods. Eight hundred forty-seven lines…

How to Migrate to @Observable Without Breaking Your App
  • 2026-02-16
  • 16 min read

How to Migrate to @Observable Without Breaking Your App

So, you've finally convinced stakeholders to raise the deployment target from iOS 15 to iOS 17 - and the first thing on your mind is @Observable. You've read the docs, watched the WWDC sessions - it looks like a straightforward swap. Replace ObservableObject, drop the @Published wrappers, change @StateObject to…