2013 Fall Tour Registration Now Open!
Jonathan Penn

Jonathan Penn

Jonathan Penn is a mobile and web app developer with a long history of quality work sprinkled with mischief. Aside from working hard to solve client problems, he is the mad scientist behind the apps at Navel Labs, and scribbler-in-chief at Cocoa Manifest, a technical blog for exceptional iOS resources and commentary. As an avid vim user, Jonathan thinks Apple’s support of emacs key bindings in Xcode is more egregious than their dubious use of patent lawsuits. He also likes cats.

 

CocoaConf PDX Presentations:


UI Automation - Automate ALL THE THINGS!

So, for the nth time, you fire up your awesome iOS app to run through your testing steps. Manually. Over and over. And you have to do the same tests on the iPad. And the iPod touch. On iOS 4 and then 5. And you just want to pull your hair out. Oh, and you just found a memory leak. Fix it and start over again. And again.

Meet UI Automation, Apple's official UI testing framework. You manipulate your app with Javascript through the views and controls, similar to the way you'd manipulate a web page. The scripts can drive the simulator or even the device. As part of Instruments, Apple's performance monitoring and debugging tool, you can automate your apps through all kinds of scenarios and evaluate the performance or memory usage. It's so powerful and flexible that it can look a little overwhelming at first. We'll investigate the framework through live interactive demos against a real application and walk through good practices to keep your test suite organized as it grows. View Details

Zen And The Intro To iOS Gesture Recognizers

Gesture Recognizers are Apple's answer to the problem: How do I keep all those touches straight!?!? It's about tracking touch state over time, and UIGestureRecognizer subclasses give us a standard and composable way to manage that complexity. We'll look at how recognizers work, how they compete to decide which one "wins", see a custom complex gesture recognizer in action, and discuss how to leverage this in your applications. Complete with demo and sample code!

View Details