Demo your iPhone apps via TV-Out

Demoing iPhone apps during presentations is a bitch because Apple hasn't (yet) given us a way to mirror the screen like Steve Jobs does during his keynotes. The alternatives all suck to various degrees: use a camcorder, an Elmo (the projector, not the Muppet), or the iPhone Simulator. The iPhone Simulator is the easiest option and is fine unless you're trying to demo features only found on the device (like GPS, etc.) or make a demo video of your app being used in the field.

Although there isn't an Apple-sanctioned way of mirroring the screen via the Apple A/V cable (apart from for the iPod app), Rob Terrell shared some code a little while back that enables TV Out on a per-app basis based on Erica Sadun's discovery of an unpublished class in the MediaPlayer framework.

Rob's class worked like a charm (and still does, under 3.1), however The Evil Boss took it one step further today by releasing some code that displays touch indicators and rotation changes on the mirrored output. Watch his video, above, and read the full post, iPhone Video Output, for the details and to download the code that you can add to your app to enable this functionality.

Just make sure, however, that you don't accidentally submit your app to the App Store with this code enabled or it will probably mean a quick refusal.

Big thanks to both Rob Terrell and The Evil Boss for making this possible.

(PS. Apple, if you're listening, please, please, please enable the ability to mirror the iPhone's screen for any app in the next release. Just think of how much the quality of the demo videos for apps will improve and how much that will translate to increased sales. Oh, and why did you remove the private openURL:asPanel: method on UIApplication in 3.0? If we still had that we could actually demo apps that launch Safari for some bit of their functionality via this method.)