I have expertise in TDD for UIKit code. What will it look like for modern Swift and SwiftUI? The start of a new series. https://qualitycoding.org/tdd-swiftui-lets-begin/
Jon Reid
@qualitycoding.org
https://qualitycoding.org Author of iOS Unit Testing by Example https://iosunittestingbyexample.com. Technical coach, ex-Industrial Logic. Over 20 years of #TDD. Code with joy, drive down your cost of change. he/him
In TDD, you sometimes write code that looks obviously wrong on purpose — like hard-coding "0" instead of real logic. It feels uncomfortable. That discomfort is actually the point. Here's why. https://qualitycoding.org/swiftui-tdd-fake-it-till-you-make-it-part-2/
Why I Hard-Coded "0" Into My SwiftUI View on Purpose https://qualitycoding.org/swiftui-tdd-fake-it-till-you-make-it-part-2/ #SwiftUI
SwiftUI TDD: Fake It Till You Make It (Part 2)
Write your first failing test for a SwiftUI view with ViewInspector, then fake it till you make it — the red-green-refactor cycle in action.
qualitycoding.org
OpenAI: “an internal evaluation which prompts models to pursue advanced exploitation using complex attack paths” Translation: “We told it to hack, and it hacked!” Calling the computer “rogue” for doing exactly what you told it to is silly.
Calling this a “rogue agent” is misleading. This software was instructed to do this by a person. It shouldn’t have done as it was told, but it was still told. These tools let more people do more crimes with less skill. They are still tools being used for a task they were built to do.
⏱️ Follow these steps to achieve faster #Xcode test feedback, dropping from 47s to 1.6s. Enhance your workflow. Essential for TDD. https://qualitycoding.org/optimize-xcode-for-fast-tests/
How to Optimize Your Xcode Project for Fast Test Feedback
Learn how to overcome Xcode's slow test feedback and enhance your TDD workflow. Follow our steps to achieve faster test feedback, dropping from 47s to 1.6s.
qualitycoding.org
Okay then. Folks have been asking, and it seems a shame to waste 3 1/2 years of legwork, so I'm scheduling one Code Craft & AI workshop. Tues Sept 1st - 18:45 - 21:00 BST £99 + VAT Plus you get a copy of my book-in-progress, The AI-Ready Software Developer www.tickettailor.com/events/codem...
Register – Code Craft & AI – Zoom
Code Craft & AI – Zoom, Tue 1 Sep 2026 - Tuesday Sept 1st 18:45 BST £99 + UK VAT Large-scale studies by the DevOps Research & Assessment group, CircleCI, Faros and others show an undeniable pictu...
tickettailor.com
What's one of the first things you need in a new Xcode project? A gitignore file to keep out unwanted files. Here's how to generate the gitignore you need. https://qualitycoding.org/generate-xcode-gitignore/
How to Generate a Useful Xcode Gitignore to Avoid Noise in Git | Quality Coding
What’s one of the first things you need in a new Xcode project? A gitignore file to keep out unwanted files. Here's how to generate the gitignore you need.
qualitycoding.org
I'm building the trip preparation checklist app _I want_ for myself. Note I say "preparation checklist" not "packing list" because hey, I have more to do than pack. With completely customizable "categories" (Flying, Driving, etc.), I bet people will use it in ways I never thought of. #BuildInPublic
Want to refactor your SwiftUI views without worrying you'll break something? Here's the first test that makes that possible. https://qualitycoding.org/swiftui-tdd-fake-it-till-you-make-it-part-2/
SwiftUI TDD: Fake It Till You Make It (Part 2)
Write your first failing test for a SwiftUI view with ViewInspector, then fake it till you make it — the red-green-refactor cycle in action.
qualitycoding.org
In TDD, you sometimes write code that looks obviously wrong on purpose — like hard-coding "0" instead of real logic. It feels uncomfortable. That discomfort is actually the point. Here's why. https://qualitycoding.org/swiftui-tdd-fake-it-till-you-make-it-part-2/
Why I Hard-Coded "0" Into My SwiftUI View on Purpose https://qualitycoding.org/swiftui-tdd-fake-it-till-you-make-it-part-2/
SwiftUI TDD: Fake It Till You Make It (Part 2)
Write your first failing test for a SwiftUI view with ViewInspector, then fake it till you make it — the red-green-refactor cycle in action.
qualitycoding.org
SwiftUI TDD: Fake It Till You Make It (Part 2) https://qualitycoding.org/swiftui-tdd-fake-it-till-you-make-it-part-2/
SwiftUI TDD: Fake It Till You Make It (Part 2)
Write your first failing test for a SwiftUI view with ViewInspector, then fake it till you make it — the red-green-refactor cycle in action.
qualitycoding.org
New in TestableView: An easy way to unit test how Environment changes your SwiftUI views. https://github.com/jonreid/TestableView
GitHub - jonreid/TestableView: To hide ViewInspector boilerplate for SwiftUI unit tests
To hide ViewInspector boilerplate for SwiftUI unit tests - jonreid/TestableView
github.com
Have you ever written a custom test assertion in Swift Testing and watched the failure point to the helper function instead of your actual test? https://qualitycoding.org/swift-testing-custom-assertions/
How to Make Custom Test Assertions in Swift Testing
Stop chasing test failures through helper functions. Here's how to write custom Swift Testing assertions that report errors exactly where they belong.
qualitycoding.org
Discover how Swift 6's MainActor isolation impacts XCTest, with tips on handling concurrency warnings for view controller testing. https://qualitycoding.org/xctest-mainactor/
XCTest Meets @MainActor: How to Fix Strict Concurrency Warnings
Discover how Swift 6's @MainActor isolation impacts XCTest, with tips on handling concurrency warnings for view controller testing.
qualitycoding.org
Swift Testing's failure messages look "funny". But that's not the real problem. The real problem is when they show up in the wrong place entirely. https://qualitycoding.org/swift-testing-custom-assertions/ #SwiftLang
Ahh, naming. Claude started with TipsController because hey, consider how many Controller classes it's seen. It can do better — if you know better. I called out "controller" so it went with TipsBootstrapper. But again I had that nagging thought: we can do better still.
SourceLocation: The Secret to Better Custom Assertions in Swift Testing https://qualitycoding.org/swift-testing-custom-assertions/ #SwiftTesting
How to Make Custom Test Assertions in Swift Testing
Stop chasing test failures through helper functions. Here's how to write custom Swift Testing assertions that report errors exactly where they belong.
qualitycoding.org
Would you unit test this SwiftUI? If so, how would you do it? What parts are worth testing, and what parts aren't? How would you approach it with TDD? https://qualitycoding.org/swiftui-testing-challenge/
SwiftUI Testing Challenge: Can You Test This Counter App?
Would you unit test this SwiftUI? If so, how would you do it? What parts are worth testing, and what parts aren’t? How would you approach it with TDD?
qualitycoding.org
Custom Assertions in Swift Testing: Getting Failures in the Right Place https://qualitycoding.org/swift-testing-custom-assertions/ #iOSDevelopment
How to Make Custom Test Assertions in Swift Testing
Stop chasing test failures through helper functions. Here's how to write custom Swift Testing assertions that report errors exactly where they belong.
qualitycoding.org
"When I visited her in the Wichita Falls jail in May, her spirits were bright despite her circumstances. I wanted to ask her about what she’s been reading, but wondered if she was scared to answer. 'It’s crazy that we live in a world where it’s not safe to ask what books you’re reading,' she said."
‘This is injustice’: how leftist zines were used to sentence anti-ICE protesters to decades in prison
Advocates sound alarm after zines were used as evidence to convict protesters of terrorism charges tied to 2025 protest at Texas ICE facility
theguardian.com
Struggling with a thousand-line view controller with minimal tests? Learn the legacy code rescue techniques I used on an iOS app. https://qualitycoding.org/legacy-code-rescue-thousand-line-view-controller/
Legacy Code Rescue: Taming a 1000-Line View Controller
Struggling with a thousand-line view controller with minimal tests? Learn the legacy code rescue techniques I used on an iOS app.
qualitycoding.org
My Discovery Tree skill now renders in ASCII (in addition to Mermaid) https://github.com/jonreid/DiscoveryTreeSkill
GitHub - jonreid/DiscoveryTreeSkill: Agent skill for discovery tree task management
Agent skill for discovery tree task management. Contribute to jonreid/DiscoveryTreeSkill development by creating an account on GitHub.
github.com
Does Spec-Driven Development replace agile? Are they actually at odds? This discussion with @iamleeg.bsky.social helped me overcome my biases. codeforthought.buzzsprout.com/1326658/epis...
[EN] Does Spec-Driven Development replace agile? With Graham Lee - Code for Thought
English Edition: Will spec-driven development replace agile processes? My guest Graham Lee (https://chironcodex.com/ ) and I discuss if there is still a place for agile software engineering in a...
codeforthought.buzzsprout.com
Have you ever written a custom test assertion in Swift Testing and watched the failure point to the helper function instead of your actual test? https://qualitycoding.org/swift-testing-custom-assertions/ #SwiftLang
How to Make Custom Test Assertions in Swift Testing
Stop chasing test failures through helper functions. Here's how to write custom Swift Testing assertions that report errors exactly where they belong.
qualitycoding.org
New blue paint appears to be peeling from the bottom of the Lincoln Memorial Reflecting Pool. So far the algae seems to be winning.
Swift Testing's failure messages look "funny". But that's not the real problem. The real problem is when they show up in the wrong place entirely. https://qualitycoding.org/swift-testing-custom-assertions/
SourceLocation: The Secret to Better Custom Assertions in Swift Testing https://qualitycoding.org/swift-testing-custom-assertions/
How to Make Custom Test Assertions in Swift Testing
Stop chasing test failures through helper functions. Here's how to write custom Swift Testing assertions that report errors exactly where they belong.
qualitycoding.org
Is LinkedIn website broken for anyone else? I tried disabling my ad blockers but that hasn't helped.
How to Make Custom Test Assertions in Swift Testing https://qualitycoding.org/swift-testing-custom-assertions/
How to Make Custom Test Assertions in Swift Testing
Stop chasing test failures through helper functions. Here's how to write custom Swift Testing assertions that report errors exactly where they belong.
qualitycoding.org