Notes from the build.
Pose detection that survives a noisy background
MediaPipe's pose landmark model degrades badly when the background has high texture or contrast. Here's how to fix it with confidence thresholding, temporal smoothing, and a segmentation mask fallback.
↗MVVM vs VIPER, and when to ignore both
After shipping production iOS apps in MVC, MVVM, VIPER, and Clean Architecture, I have a clearer answer: the right pattern is the one your team can actually maintain. Here's how I decide.
↗Why your SwiftUI list still drops frames at scroll
Sixty frames per second should be a baseline, not a goal. If your List or LazyVStack stutters at scroll, it's almost always one of five root causes — and none of them require switching to UICollectionView.
↗MediaPipe on iOS: what the docs leave out
The official MediaPipe Swift docs cover the happy path. This covers the rest: camera session setup, GPU vs CPU delegate tradeoffs, coordinate space mapping, and the memory leak that only shows up after 10 minutes of live inference.
↗Eleven years on, here's what I'd tell my 2014 self
I wrote my first iOS app the week Swift was announced at WWDC 2014. Eleven years later I lead a mobile team building AI-powered physiotherapy tools. Here's what I wish someone had told me at the start.
↗