TDD for iOS Workshop

Jon teaching TDD in Italy

Jon Reid teaching TDD in Italy. Photo courtesy of #Pragma Conference.

Test Driven Development (TDD) is one of the core agile programming practices. Yet few companies practice it, and 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’ll learn by doing! If you’re a programmer with basic familiarity of the Swift programming language and iOS development, you’re ready. Your trainer will be Jon Reid of Quality Coding. Jon has been practicing TDD on Apple platforms for 17 years.

Workshop details

Click here to email for pricing / scheduling

Duration: 1 or 2 days
Capacity: Up to 20 people
Location: Client site

Content of 2-day version

  • 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
  • Evolving a solution that meet your needs
  • Refactoring tips
  • How to TDD view controllers, alerts, navigation, table views
  • Test doubles (stubs, mocks, fakes)
  • Strategies for introducing TDD to your team


Jon showed me how to apply many of the concepts about unit testing to iOS. It was the one thing I needed in order to use it everywhere. Jon is one of the few who knows the stuff and knows how to explain it. My customers value my knowledge about testing and it is always a differentiating factor with my competitors. I owe a lot of it to Jon.

Jorge D. Ortiz-Fuentes Instructor & Consultant

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.

E-gineering, LLC

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. It was fraught with uncertainty and a fear of forgetfulness. 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.

Ben Patch iOS Developer