Quality Coding Services

TDD for iOS Workshop

Test-Driven Development (TDD) is a core practice of Technical Agility. Yet few companies practice it (and wonder why they’re having trouble with agility). Fewer still apply it to Apple platforms.

Like riding a bicycle, TDD isn’t something you can learn from just reading a book. In this workshop, we learn by doing! If you’re a programmer with basic familiarity of iOS development, you’re ready.

Your trainer will be Jon Reid, author of iOS Unit Testing by Example: XCTest Tips and Techniques Using Swift. Jon has been practicing TDD on Apple platforms for 18 years.

Click below to ​ask about pricing & scheduling an on-site workshop at your company.


Instead of just explaining TDD, Jon helped us embrace it in a mob development setup. TDD this way is also a better way of working together effectively: everyone is part of the project, contributing and learning from others. And not only in theory: Jon helped us with our actual codebase.


Even though you think you know TDD, having Jon take us through his training and coaching proved to be eye-opening. His training has given our team the push to really start doing TDD right.

Alaska Airlines

In his TDD/iOS workshop, Jon teaches a very practical, hands-on approach on how to implement TDD and write quality testable code. He fills a huge void in the iOS community when it comes to unit-testing and quality. Jon’s iOS/TDD workshop is a must-have if your organization takes quality seriously.


Jon did a fantastic job covering the various topics and techniques on unit testing, TDD, and even pairing/mobbing specifically on the iOS platform. I love how the workshop was very hands-on and collaborative. After the workshop, the entire team came away energized and ready to apply all the learnings to our day-to-day work. I would highly recommend this workshop if your team is looking to learn more about TDD in iOS.


Anyone who cares about unit testing for iOS would benefit from this workshop. It's a great way to get through the hard part of writing the first few tests and starting to think about writing tests first.


The TDD Workshop was excellent! I appreciated Jon’s approach; having us work through TDD problems really solidified the material in a way that just lecturing would not have. He also made writing tests fun and enjoyable. We’ve significantly increased our test coverage after his workshop.

Workshop Info

  • Logistics
  • Background
  • Why do TDD?
  • Recommended tools
  • The Three Steps: Red, Green, Refactor
  • The Three Laws: Growing test code and production code in parallel
  • Writing focused, readable tests
  • Emergent Design: Evolving a solution that meet your needs
  • Refactoring: Changing the design in small, verified steps
  • How to TDD view controllers
  • Test doubles (stubs, mocks, fakes)
  • How to add tests to legacy code
Ben Patch iOS Developer
Insik Cho Senior Software Engineer
Miles Wright Independent Software Consultant
Nick Kohrn iOS Developer
Jordan Young iOS Developer
Audrey Tam Educator

My experience with refactoring in the past had been more like: tear everything out, refactor it, pray that everything works and all of the logic was maintained between the refactors. TDD and having unit tests to lean on was a night-and-day difference in refactoring. There was no fear or uncertainty, just refactoring and running tests. It was brilliant! I also found it very insightful we were able to test many different UIKit elements using unit tests. That is super powerful, because unit tests are much faster, more reliable, and cheaper/easier to implement than UI tests.

Jon demonstrated each step, Red, Green and Refactor, with good and practical examples. In the group TDD, each one could experience different roles, and the pace was maintained so well that I could learn what each step means. It's THE best TDD session I ever have had.

I was very interested in doing TDD but didn't really have a good idea about how to do it in practice. It turns out, it's not as hard as I had built it up in my head to be. It was really helpful to go through examples of things that we would actually do. I recommend this workshop to anyone who wants to understand how to do TDD in iOS. Jon Reid teaches with energy, thoughtfulness and passion.

Before this workshop, I was concerned that TDD required a lot of extra code and time. But I learned a lot of tips and tricks while gaining confidence and the desire to write better code. I learned that a lot of UI code can be tested in unit tests, which is much faster that in UI tests. I loved Jon's enthusiasm for the topic, and his kindness! I recommend this workshop to any developer that is serious about quality of code and having confidence in the code that they write.

If you ever get a chance to take a TDD workshop from Jon I highly recommend it! First day today was educational and a lot of fun!

I benefited from immersion learning and mob programming with the TDD expert, with advice and guidance based on real-world experience. I knew TDD was "a good thing" but it seemed just that little bit too hard to start doing it. I learned exactly what it means to write just enough code to make the test pass. I recommend this workshop to developers who are grappling with the usual questions about unit testing — how much is enough? what to test? how to test this hard-to-test thing? — and want to develop high-quality code when they add the next feature or develop their next app.

Click below to ​ask about pricing & scheduling an on-site workshop at your company.

Photo courtesy of #Pragma Conference