Regain Control of Untamed iOS Code

Structure and build your iOS code for maintainability.
Then you can respond to change, because your code won’t fight you.

We started from zero TDD

Jon really helped me understand what I should be testing when I didn't know where to start. My team started from zero TDD and my successes in it have inspired the rest of the team to start.

Oliver Foggin Senior iOS developer

How to Write Clean Code

safety harness

Unit Testing

A robust suite of unit tests acts as a safety harness, giving you courage to make bold changes. But there’s an art to making tests that give you useful information, while keeping the tests themselves readable & maintainable.



Unit tests written after production code are hard to write, and may only confirm your biases. Test Driven Development shapes production code in response to tests, in an evolutionary manner. The secret sauce? Continuous Refactoring.



We can’t just bang code together and expect it to be testable. Testability must be designed in. That design brings other benefits, making it easier to modify the code. The ultimate goal? Drive down your cost of change.


Generate Test Scaffolding


Speed up the basic mechanics of writing unit tests… Generate code for either Swift or Objective-C. Templates are provided for both Xcode and AppCode, and are free to all subscribers.

code snippet sample


Become a subscriber


Jon's talk will "force" to me to think about better architecture from now on. Most of time I've written unit tests after I finish building the UIViewController. Now I understand that to be less scalable and unsafe!

Fabio Mignogna Senior iOS Developer

Jon approaches software as a craftsman. In my years as a professional, learning from Jon has probably been the single biggest influence on the way I write software today.

Rick Van Voorden iPhone Developer

Stay focused by generating test scaffolding

Speed up the mechanics of creating & maintaining unit tests. Use these Xcode snippets (or AppCode templates) to generate code, for either Swift or Objective-C.