11

I have been looking for a way to show the iPhone screen (not the simulator) on a monitor or projector for demo purposes.
Previous SO post suggested jailbreak (Veency, iDemo/DemoGod, screensplitr) or simulator.

Release notes iOS 3.2 (External Display Support) and iOS 4.0 (Inherited Improvements) mentions that it should be possible to connect external displays to iOS 4.0 devices.

Is it now possible to demo an iPhone device on a monitor without using the simulator, or are the release notes about other improvements?

Anyone tried to display an iOS 4.0 device on a projector or monitor?

Update 22.Jul.2010:

  • To mirror iPhone screen: Jailbreak and use Veency, iDemo or screensplitr
  • To output to external device from your application: Implement External Display Support in your app in iOS 3.2, 4.0

Update 15.Apr.2011 ;))

Update 1.Dec.2011:

Community
  • 1
  • 1
Kb.
  • 7,240
  • 13
  • 56
  • 75

5 Answers5

12

The iPhone 4 supports the VGA adapter that launched with the iPad. Within your application, any external display appears as an additional UIScreen instance. You can create a UIWindow, associate it with the UIScreen, and place content there that you would like to have displayed on the secondary monitor.

I show how to do this in the video for the iPad session of my course on iTunes U, and provide some code for this in the course notes. Matt Gemmell also has a nice writeup on the subject.

Cœur
  • 37,241
  • 25
  • 195
  • 267
Brad Larson
  • 170,088
  • 45
  • 397
  • 571
  • @Brad Larson: As I understand, it is still not possible to show the iPhone screen using the VGA adapter. The apps has to support the external device, right. So if I use KeyNote on iPad it will display the slides, but my own app will not show unless I take care of the external screen allocation. Did I understand this correctly? – Kb. Jul 20 '10 at 22:33
  • @Kb - Correct, you need to manually put content on the external display, it won't automatically mirror the main display. You can effectively mirror your application's interface by creating duplicate UI elements on the external display (sized to fit the resolution of that display) and then making sure that the state of the secondary display changes with the state of the main display. – Brad Larson Jul 21 '10 at 00:47
  • @Brad - I have tried to watch your course on iTunesU on my iPad but Madison College, your name or even the course name don't show. On the other hand, it shows on iTunes on the desktop... very strange. It works if I mail the link from the desktop to the iPad. Apple apparently don't love you on iPad... :( – Duck Nov 30 '10 at 02:29
  • @Digital Robot - Yeah, we're not yet in the main directory in iTunes U: http://stackoverflow.com/questions/3957677/where-to-find-the-ios-development-session-videos-from-brad-larson, so you have to use the above link directly to get there (I've known many people that were able to go directly to the course from the iPad that way). This should be resolved very soon, I hear. – Brad Larson Dec 01 '10 at 23:37
  • @Brad - Thanks, I am using the link since I commented here. BTW, thanks for the classes, I am certainly relearning everything I knew and discovering new stuff thru your videos. You are certainly a master with a brilliant knowledge of programming and beyond and you know how to teach, that is the most important part. If I lived in the US I would attend to your classes! :) – Duck Dec 02 '10 at 21:38
7

http://code.google.com/p/iphoneos-screen-mirroring/ Has code to allow you to mirror your screen using the cables mentioned above. This code uses private apis so make sure you don't ship with it. This can be done by creating a new target in xcode and conditionally compiling the mirroring code in.

Elfred
  • 3,851
  • 22
  • 16
  • That project no longer uses private calls. `UIGetScreenImage` is no longer a private API. Apple has said they will support it going forward, and applications submitted to the App Store can use that call. – Jason Jul 20 '10 at 14:18
  • UIGetScreenImage is again a private API but the code don't use this API anymore. The problem is that the code squeezes the image vertically and has problems when you rotate the device. – Duck Sep 30 '10 at 16:30
3

Check Apple Composite AV Cable and Apple Component AV Cable. These connect to a TV and computer so may be you can find a way to get it on a projector.

Swapnil Luktuke
  • 10,385
  • 2
  • 35
  • 58
3

Since iPad 2 "The Apple VGA Adapter mirrors exactly what you see on iPad 2 so that everyone in the room can enjoy it." Same hardware that needs special coding on original iPad then on iPad 2 by default mirrors.

Sparkup
  • 3,686
  • 2
  • 36
  • 50
codelion
  • 175
  • 1
  • 6
1

If you are using a smart TV as a monitor, you can use the AirPlay function. However, not all Smart TVs support this function. You can simply test it by connecting your iPhone and TV to the same network to see if you can use AirPlay. If not, you can try MirrorMeister's free mirroring app, it works on all iOS and macOS devices as long as you connect to the same Wi-Fi.

Dharman
  • 30,962
  • 25
  • 85
  • 135
lzj
  • 1
  • 1