Jonathan Penn tames electronic bits with his wit and snark. He owns Rubber City Wizards, a company that solves problems---sometimes with software. He recently authored a book on UI Automation testing for iOS, writes and speaks on various technologies, raises children, revels in buoyant mischief, and voices bios in the third person.
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.
RubyMotion is a brand new project built by the creator of MacRuby that finally brings the power of native Ruby application development to iOS. RubyMotion gives you a way to quickly bootstrap, compile, deploy code written in Ruby that accesses all the raw power of the Cocoa Touch and Core Foundation APIs.
Under the hood, Objective C shares a lot in common with RubyMotion. We'll explore how it works and integrates with the Objective C runtime, get a taste of its flexibility, see some demos in action, and talk about the pitfalls that await the brave souls who live on the cutting edge.
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!
Behavior and performance testing takes a toll on us as developers. We have to perform the same steps over, and over, and over again. That's where Instruments and UI Automation can help. We're going to explore practical examples of building tests for iOS applications, organizing test suites, automated performance testing with Instruments, stubbing app data and external dependencies, and running things from the command line...automating our automated tests as it were.
This is going to be a dive deep into the tools with all new material. Bring your tough questions and we'll chat during the Q&A.
Core Data is a SQLite ORM, right? No, it's so much more! We're going to dive into some novel uses of NSIncrementalStore, the delightful data storage abstraction behind the amazingly complex Core Data framework. This is an advanced talk exposing how fetch requests get fulfilled, how save requests put data to rest, and how we can tell Core Data about changes that happen behind its back. By writing custom incremental stores, you'll take advantage of all the caching, threading, transacting, and undo-ing that Core Data gives you for free but store that data any way you want. Boom.
Xcode 5 is here and testing is finally getting the focus it deserves. In this talk we'll explore the official XCTest framework and its excellent tie-in with Xcode and Apple's continuous integration mechanism, Xcode Bots. We'll walk through some examples of isolated unit testing and how the new test runner gives you the quick and useful feedback you need. We'll even go over lower-level integration tests, like testing the behavior of your Core Data stack. Slides, sample code, and fun will be provided.
The power to build dynamic animations with UIKit Dynamics is intoxicating. No longer are we bound to the cruel taskmasters of deterministic timing functions! Break free! But does this freedom come with it's own yet-to-be-discovered burdens? We'll take a look at what sets UIKit dynamics apart, and try to figure out if it's really useful or not.
We are the music makers,
And we are the dreamers of dreams.
- Arthur O'Shaughnessy
Why is Apple pushing iBeacons? What is all this hubbub about wearable technology? Will my refrigerator scold me for my bad eating habits? Robots?!?! If you're asking these questions, you'll enjoy the Workshop of Things.
Here's what to expect:
As the world of physical objects becomes more and more connected, you can play along with your iOS development skills! We'll update this abstract with more details after WWDC (for obvious reasons).
Come join us for the Workshop of Things!