Talking to the guys from RealVNC at the Smartphone Show today, I realised I'd been a bit dim - their new mobile version is a server too, not just a client/viewer. (There's been VNC viewers for handhelds for a while now. I'd been wondering why they thought that was new. Duh...)
Why would you want a VNC server on your phone? So you can control it remotely, of course - to run it as an MP3 player from your PC, say, or to provide remote support, fixing another user's set-up or showing them how to do stuff. It could even be used to test applications automatically or remotely, on a network in another country perhaps.
(Yes, there's ways to control some phones remotely now, but most aren't standard and won't work over a Wi-Fi or 3G connection.)
The current version of RealVNC for mobiles isn't even a beta - pushed for a description, they came up with "advanced prototype". In other words, it works well enough to demo, but it's not stable enough to allow into the wild. Final release isn't due until early in 2009, they said.
That's partly because of the number of platforms they're trying to support from a single code-base, says RealVNC's James Wright - that's Java, Series 60, UIQ, BlackBerry, Windows Mobile and now iPhone too. And it's partly because pulling the screen image off a phone isn't as easy as with a PC, especially given that some elements of a phone - such as the camera - may actually be bypassing the O/S and writing to the screen directly.
But it's also because of the specific challenges of mobile phones, such as how to wake them up and kick the VNC server into action. How this happens is still up for grabs, it seems - a "magic SMS" perhaps? Certainly you don't want the phone permanently listening for connections as it'd kill the battery in no time.
There are already ways to package other VNC distros for technical support - for instance, UltraVNC SingleClick is set up to look for incoming connections from a specific IP address. That might also be a good way to enable access to phones for tech support - if you can figure out how to tell the user to switch it on.