Your Upload Doesn't Stop When Your App Gets Killed. It's Not Supposed To.
URLSession background sessions keep uploads and downloads running after iOS terminates your app — but only if you set them up before the crash, not after. Here's the delegate dance nobody reads the docs closely enough to get right.
VoiceOver in SwiftUI: The Five Bugs Your Beautiful UI Is Hiding
SwiftUI gives you accessibility almost for free, until the moment it doesn't. A practical checklist of the five VoiceOver bugs that show up in real apps, and the SwiftUI modifiers that actually fix them.
TDD for SwiftUI: A Red-Green-Refactor Workflow That Isn't Academic
Day 21 of the 30-day iOS series. I went looking for a BrewLog feature to drive test-first and found a real bug already shipped: the Streak stat has been hardcoded to zero since day one. Here's the actual red-green-refactor session that fixed it.
Swift Testing Framework: Why You Should Migrate from XCTest
Day 20 of the 30-day iOS series. @Test, #expect, parametrized tests, traits, and a side-by-side comparison on a real BrewLog test file. Plus: the one thing XCTest still does that Swift Testing doesn't.
ThinkBud Just Got 5 Stars from Educational App Store
An independent panel of educators reviewed ThinkBud, gave it a 5/5 rating, and certified it. Here's what they said, what they didn't love, and what it means for the app.
I Was Failing an Exam on a Tram. So I Built an App.
The story of how a panicked study session on public transit led to ThinkBud — an iOS app that turns any link, PDF, image, or audio into brain maps, flash cards, quizzes, and exportable presentations. Now available on the App Store.
Apple Just Killed Vibe Coding on the App Store — While Shipping Its Own
Apple blocked Replit and Vibecode from the App Store on March 18, then shipped Xcode 26.3 with built-in AI coding agents a week later. The hypocrisy is stunning. The reasoning? Actually complicated. Let's talk about it.