I've long been promising a generic roundup on accessing the desktop on other computers (let them be running Windows, Mac OS X, Linux or even some mobile operating systems like Windows Mobile) from iPhones and iPod touches (from now on: iPhones), mostly because there aren't really usable and/or up-to-date all-in-one articles on the subject, let alone comparative ones.
Getting this roundup ready took me a lot of time (over six weeks): much more than I've originally expected. The reason for this was that I've made some really serious bandwidth usage and networking model tests (all involving the making of videos of this process to provide you with as documented a process as possible) so that I can provide you as much objective, comparative information as possible. I have also very thoroughly tested the protocols used by these applications to find out internal weaknesses or lack of optimization. I've also been in really busy correspondence (asking about every single problem / question I've run into in their applications) with most of the authors of these titles. (Too bad the developers of Wyse PocketCloud didn’t respond to my requests and registering in their forums seems to be broken too – I’ve never got a mail from the forum engine with my password.)
Note that if you aren’t really interested in how a given title compares to the alternative remote desktop controllers, you may still find the discussion useful. I explain a lot of less-known things. For example, did you know that the cheap Mocha VNC client supports the discovery of VNC servers in the local network? Did you know that you can make your life much-much easier by using the built-in “scroll wheel emulation” support in most controllers? I not only point out these, but also explain how a given functionality can be accessed; for example, with the scroll wheel, I explain what gestures are needed to access it.
I also provide a much more detailed review of each of the reviewed app than you can find anywhere else. For example, I’ve read through the (U.S.) AppStore user reviews of Wyse PocketCloud. Most of them are pretty meaningless “best ever since sliced bread” and there are also quite a few of “useless cr@p, doesn’t even work”-type of posts. As you may have already guessed, none of these are true: PocketCloud is definitely not the best remote controller but is still far away from being useless. (Interestingly, I could only find one or two real comparisons to the alternatives among the user comments; see that of Dieburnrobot dated 24 Sep 2009) Note that many of even the five-star posts contain false info; for example the one stating connection entries can’t be edited after creation. (Yes they can be; this is what the right arrow on the rightmost side is for in each and every desktop controller clients.)
Should you (still) have questions after reading this roundup, let me know. Feel free to post a (public – do NOT send me any private mails because they don’t benefit your fellow iPhone users. I will simply ignore these kinds of mails) follow-up or question. I’ll more than happy to answer them. Do you have a problem with configuring a given remote controller app? Let me help you!
No pure media controllers!
First, let me point out that I've "only" reviewed and compared "full" remote control solutions in here. This means I have not included strictly multimedia-only controllers; that is, ones that only let for controlling multimedia playback but nothing else. They may be reviewed in some of my forthcoming roundup. That is, if you "only" want to remote control, say, your desktop Windows Media Player or run your scripts when initiated from your iPhone, you may want to wait for that article. (It's, generally, much easier and much less resource-, including bandwidth, intensive to remote control a multimedia app or server-side scripts with a dedicated application than via a generic remote access application. That is, you won't really want to remote control for example your WMP via, say, VNC client or LogMeIn.) (Just to have an idea of how these remote media controllers look like on another, competing platform, Windows Mobile, you might want to check out my dedicated article).
As with all my roundups, a lot of information can be found in the quite long comparison and benchmark chart and it’s there that you can quickly check for the existence of a given feature (for example, audio transfer) and instantly see which of the applications support it. This kind of comparison is definitely more complicated (but, of course, not impossible) if you would only need to rely on the main article text (the one you’re reading).
The aim of remote access applications is the same: to provide you access to your desktop computer(s) (in here, I'll refer to them as "remote desktops") when you're away from them. You can control them from your client computer (or, in this case, iPhone) directly. That is, you can see the remote desktop on your (local) client computer (iPhone) as if it were running locally, right on your client and not somewhere else on the Internet far away. With some really advanced clients, you can also do direct file transfers (this, as of this writing, still isn’t supported on the iPhone), clipboard synchronization (for example, if you have a loooooong e-mail address in a local file / database on your local client computer, you only copy it to the local clipboard and, then, just synchronize the clipboard so that it also becomes available on the remote clipboard; this way, you can avoid having to re-enter it on the remote desktop by hand; unfortunately, currently, only clipboard synchronization going in the other direction is supported on the Apple platforms), remote administration and (at least on some other mobile platforms) Personal Information Management (PIM) data (calendar, contacts and even mails) access in addition to "plain" remote controlling.
There are, basically, two kinds of remote access / control applications: 1. Web-based ones and 2. non-Web based ones.
In general, the former
- are much easier to set up on both the server and the client (except for, maybe, RDP-based, already built-in solutions like the RDP-based "Remote Desktop" in Window, where all you need to do is just enabling a checkbox to make remote access allowed). In most cases, when you plan to install the server of a Web-based remote control app on your desktop computer you want to access remotely, you just navigate to the homepage of the developer and let it download a server to your desktop PC, which, then, you just install (the latter is, in most cases, just clicking the "next" button and entering the username and/or password you'll want to use). The client install is equally easy: just select and install the client from AppStore. (While on Windows [and Windows Mobile] client you just navigate to already-registered desktop server page and, upon trying to make it work, the system will notice your client still doesn’t have a client; it’ll immediately auto-install one.)
- give complete freedom to the subscribers in that they connect to their remote desktops really easily, independent of the networking model of their desktop (that is, these services even work over firewalled and/or severely restricted connections). All you need to do is making sure your computer you want to remotely access has Internet access. No need to configure any firewalls or to even know the actual Internet address of your computer, the central Web server takes care of all this. All you need to do is logging into your central account in the central Web server: it will connect you to your remote desktop.
That is, for a non-IT-professional, these kinds of remote access solutions are preferable to the other group, which, in general, requires manual server download, installation, configuration and, in cases, tuning. This is why, first, I discuss the first group.
1.1 Web-based end-user applications
1.1.1 LogMeIn Ignition
One of the most recommended remote desktop controller applications is LogMeIn Ignition, which is Web-based. It, basically, has two versions: the free LogMeIn Free, which only offers remote control (with all the advantages of web-based access: firewall support, on-the-fly, easy client install requiring almost no user intervention or setup etc.) and LogMeIn Pro, which, in addition to remote controlling your desktop, also supports file transfer (with desktop clients, bidirectional; with iPhone clients, not any kind of file transfer is supported) and, for non-iPhone clients,
- Remote Printing to print remote files locally, on the printer attached to client
- File Sharing to easily share large files, without uploads (similar to, say, MegaUpload)
- Guest Invite to share the desktop for remote collaboration
- File Synchronization to synchronize files & folders of the client and the remote desktop
- Security (256-bit SSL encryption)
As can be seen, the iPhone version, unfortunately, is decidedly worse than the desktop PC one - as is the case with, unfortunately, most of the reviewed applications. (Almost none of them makes full use of the capabilities of the protocols – for example, file transfer.)
A well-behaving, stable, useful application with all the most important goodies LogMeIn has (but without audio / file transfer or clipboard synchronization). If the networking model is very restrictive and you simply can’t use alternative remote desktop controllers (most importantly, Jaadu RDP or VNC), this title should be the way to go.
Note that the iPhone client works with both the free and the pro subscription versions. As the client doesn’t support file transfer at all, you will want to stick with the free one – unless you want to access the same computer using more capable (desktop Windows or Windows Mobile) clients. Paying the yearly / monthly fee for the Pro version is pretty much useless if you can’t make use of the advanced features.
1.2 Non-Web-based applications
There are several applications that, unlike the previously reviewed ones, don't use a central Web server for keeping tracks of a computer and help clients log in.
Some of them are based on the RDP (Remote Desktop) protocol (used by Terminal Server / Services in the Terminal Services / Server line of Microsoft Windows and Remote Desktop by Windows XP Pro / Vista); some of them (VNC clients) on Remote FrameBuffer (RFB ) and some use a proprietary one. In the following, I devote two subsections to the first two (RDP and VNC) cases. (I completely ignore the third as there is only one and pretty much incapable app for the iPhone with a proprietary protocol not utilized by anything else.) There are major differences between these three cases, which is worth elaborating on because they have a direct, at times, unwanted effect. This also has an effect on the behavior of all the applications based on these protocols. For example, RDP-based remote controlling locks the current user out of the desktop (making any kind of co-operation impossible between the remote and the local user), don’t allow for seeing extended desktops and, with some lower-quality clients, force the desktop to switch to using lower resolution.
First, how these protocols compare? I've constantly been asked on these; therefore, I elaborate on this question a bit more.
First, the RDP protocol differs a LOT from all the other protocols:
- unlike the most important alternative, VNC, it can only run on Windows desktops – no Mac OS X, Linux or even Windows Mobile.
- it’s already built-in (unless you have the cheapest and lowest-end Windows versions) – no need to install anything else
- When a remote session is active, the terminal can't be used by anyone - they will be locked out
While RDP has its drawbacks, it has advantages too; in addition to the above-mentioned availability in many Windows operating systems (without your having to install any server component - you only need to enable them with a single checkbox tick), the really good bandwidth usage. Therefore, you may really want to compare its disadvantages and advantages to those of the alternatives - in a lot of cases, RDP may be the best solution.
Second, the second most important protocol is RFB, which forms the foundation for VNC (Virtual Network Computing) clients. When properly configured, with the proper clients, VNC (from now on, I use "VNC" to refer to remote controller products using the RFB protocol) can be even more bandwidth-friendly than the above-introduced Microsoft RDP protocol. VNC clients don't suffer from the above-listed problems of RDP either and, therefore, may be a much better choice than the built-in RDP under some circumstances (for example, when you don't want to lock out the current user while you remote control the desktop). They, on the other hand, require a separate one-time server install and, should you fine-tune the server-side options (e.g., scaling), they also require you to gain some familiarity with the server-side config utility.
1.2.1 RDP-based applications
22.214.171.124 Jaadu RDP 3.0.1
Without doubt the best RDP client for the iPhone right away. It supports true full screen (unlike many of the alternatives), sound transfer, clipboard synchronization (both from the desktop to the iPhone and not in the opposite direction), full (!) Unicode keyboard support, the full set of PC keys, the best cursor mode (allowing for both reliable selection of even the smallest icons and hovering cursor to see pop-up windows), and, with compatible routers, even port forwarding autoconfiguration etc. In addition, it’s actively been worked on and the developer is very responsive and quite often releases new versions. He’s also working on some goodies for the new version.
The biggest disadvantage of this application is the pretty hefty price tag ($30). Nevertheless, if you plan to access your desktop via RDP (again, before going for a specific program, compare the advantages and disadvantages of each of the three protocols; that is, VNC, RDP and LogMeIn!) quite frequently, I think this is the client to go for.
126.96.36.199 Remote Desktop by MochaSoft 2.1
This application comes in two flavors: the free lite version (which lacks all kinds of elaborate keyboard / mouse modes: it only lets for left clicks and pressing keys already available on the standard iPhone keyboard) and the commercial one.
Unfortunately, as is the case with all the other programs in this review (except for Wyse PocketCloud, which I consider a little bit overpriced for what it’s currently capable of), you generally get what you pay for. Even if you purchase the commercial version, you won’t have, for example, independent cursor control (the only way to activate something is directly tapping it, which has all its problems unless you zoom fully in, which also takes time and effort) or even full screen without any icons.
Every cloud has a silver lining, though: if you come from Windows Mobile, you will certainly welcome the new RDP engine not showing any disastrous consequences of for example smooth scrolling. The latter has certainly rendered the Windows Mobile version pretty much useless and a data use hog.
188.8.131.52 iRdesktop by Thinstuff s.r.o. 1.0.1
This is a free RDP, really rudimentary app. The only advantage it has over the most recommended RDP client, Jaadu RDP, is its ability to control more than one remote desktop at the same time. In this regard, only Carter Harrison’s WinAdmin (which is equally non-recommended) is comparable.
Otherwise, if you don’t really need to control more than one remote desktop at the same time, think twice before going for this title – again, you get what you pay for.
184.108.40.206 Wyse PocketCloud 1.0.1
This RDP client is pretty much in the similar price range as the most expensive apps in this roundup: that is, the Jaadu twins and LogMeIn Ignition. Unfortunately, it’s way less featured.
The only real advantage of this title is the built-in think Web clients which can be pretty easily compared to that of SkyFire on both Windows Mobile and Symbian. The latter allows users access, among other things, full Flash, Java applet etc.-based Web pages etc. and is great fun.
However, PocketCloud’s solution, when compared to SkyFire, severely lacks: it has no audio transfer (that is, you won’t hear a video, should you want to play it via a PocketCloud session) or favorites. It doesn’t have tabs either. Furthermore, the desktop-side component it requires has some CPU usage even when it’s inactively running in the background. (When operating on battery, every single percent counts.) I think this part of the app should really be enhanced with at least audio transfer and some kind of a favorite support.
I’ve made a video showing the mini-Web browser in action; it’s available HERE.
Note that it also has another unique feature: support for VMWare. I didn’t test this; some of the AppStore users love it.
220.127.116.11 WinAdmin by Carter Harrison, LLC 1.1.1
This RDP client is another one not really recommended – unless you need a tool that allows concurrent access to more than one remote desktops and, for some reason, you don’t want to use the free iRdesktop by Thinstuff s.r.o.
Nevertheless, of the two, I’d definitely go with iRdesktop by Thinstuff s.r.o. instead, should you really need this kind of functionality.
1.2.2 RFB-based (VNC) applications
Note that, after quickly listing the four different solutions, I also explain what needs to be known about different servers, encodings and server-side scaling. This knowledge will be essential in sometimes drastically decreasing the bandwidth needs of the applications. At first, I introduce the applications themselves.
18.104.22.168 Jaadu VNC 3.0
As with the case of RDP, it’s also Jaadu’s product that is undeniably the best among VNC clients – provided you don’t want to make use of partial screen transfer (of which I’ll talk later), which only VNC Pocket Office by Chillingo Ltd is capable of. The same stands for server scaling, which is only supported by two other clients.
Otherwise, it has some excellent features; for example, remote desktop-to-iPhone clipboard synchronization, an excellent cursor mode, easy switching (two-fingered swipes up/down) between full screen and standard view (other VNC clients don’t support full screen at all or, with them, it’s way more tedious to switch between the two modes) etc. Also, it’s promised to work OK with huge remote desktop sizes (for example, with ones utilizing double monitor configurations) on older iPhone models with 128 Mbytes of RAM only. (On my test 3G S, I haven’t encountered any memory problem on any of the tested VNC clients [or LogMeIn] in the high-resolution double monitor test.) The developer, along with some other goodies, also promises a gmail-based solution for truly network topology-independent access - something like only LogMeIn can provide. Let’s see how it works out.
Currently, if the (rather high) price and the lack for server scaling / partial screen transfer isn’t a problem, this is the most recommended VNC client.
22.214.171.124 Mocha VNC by MochaSoft 2.1
This client is pretty much similar in capabilities to that of the RDP client of the same company. It too has a free lite version with radically reduced features.
If you want a strictly free VNC client (and the lack of right clicks and the like isn’t a problem), you can safely go with the free version of this app. If, however, you would prefer the commercial version, let me point out that VNC Pocket Office by Chillingo Ltd is definitely more featureful and is more recommended – and is even cheaper.
126.96.36.199 VNC Pocket Office by Chillingo Ltd 2.2
This title is definitely superior to the Mochasoft VNC client I’ve elaborated on in the previous section – and, in some respects, even better than the (much more expensive) Jaadu VNC. Nevertheless, if you do have the money and couldn’t use the two extra, but not commonly used features (support for scaling and partial screen transfer), go for the latter title, particularly if you plan to use if often.
188.8.131.52 VNC servers
Now that I've quickly elaborated on the different VNC clients, let's take a look at the server side. Unlike with the Web- (LogMeIn Ignition) and RDP-based solutions, you must manually install a server on your desktop PC you’d like to access.
There are several VNC servers out there with slightly different capabilities. Some of these capabilities are, at the time of writing, unfortunately, exclusive. This means, for example, if you need (Western – other languages aren’t supported) accented characters, you’ll need to go for UltraVNC. On the other hand, if you have a double monitor configuration, you’ll need to use TightVNC instead. The latter, however, doesn’t support international characters on the iPhone (while it does on other platforms; for example, Windows Mobile).
In general, installing VNC servers is pretty straightforward. You install the product and just start the server in Start Menu / Programs on the Windows desktop PC. When it's running, it'll display an icon in the system tray (systray), through which you'll have access to the configuration dialog, user list and can even shut down the service.
184.108.40.206 VNC Bandwidth usage fine tuning
With a capable VNC client / server combo, you can fine-tune the bandwidth usage and force it to be really small. This, however, requires you to know what options there are.
First, there are so-called "encodings" used with VNC. Some of them really love wasting bandwidth; for example, RAW, which, as you may already have guessed, just sends over uncompressed raw screen data and, consequently, takes orders of magnitude more bandwidth than protocols utilizing compression methods. Well-known, high-bandwidth and, therefore, to-be-avoided encodings also include RRE and CoRRE.
The widely used Hextile (the best available with the above-introduced, free, not recommended three "legacy" clients) is already a bit better but still consumes a lot of bandwidth and should, therefore, be avoided. With some additional compression (Zlib hextile, for example) it becomes pretty usable, bandwidth-wise: it will "only" consume about three times more bandwidth than RDP or more advanced (for example, JPEG-based) VNC encodings. Of the Pocket PC clients, only Mocha (and, of course, PT PO) supports Zlib / ZRLE compression.
Finally, Tight with or without JPG (the best, most space/bandwidth-efficient way to encode images) is by far the most effective VNC encoding. Interestingly, all iPhone VNC clients state they would prefer not to be used with Tight – as opposed to (decent) clients on other platforms (for example, Windows Mobile).
Note that on the iPhone you don’t need to be afraid of these settings – all clients are configured to use the (by the developers) most recommended and pretty good ZRLE; there is no need to set it yourself.
220.127.116.11.1 Server-side scaling issues
In addition to choosing the right encoding (at least Zlib / ZRLE - again, note that Tight (JPG) would deliver better results but the iPhone clients, for some reason, don’t recommend using it), you should also know what server-side scaling is and how you can fine-tune it to further reduce bandwidth usage.
First, remote desktops are, generally, bigger than the resolution of your iPhone screen. For example, two of my high-end IBM Thinkpad notebooks have UXGA (1600*1200) screens, which is far larger than even the 480*320 (HVGA) screens of iPhones. If (and only if!) you don't zoom into this image fully and scroll around the page so that a pixel on the remote desktop equals to a pixel on the iPhone (or, even more, should you want / need to use touchsceen tapping), you can make use of clever remote desktop-side (!) rescaling of screen images before (!) returning them to the client. Just imagine: if you would like to just navigate on a 1600*1200 desktop with your iPhone screen, by instructing the server to resize the screen images returned to the client itself, you can save a LOT of bandwidth. For example, if the server uses the rescaling factor 2, then, it'll send over a 1600/2 * 1200/2, that is, 800*600 images, which are still bigger than the iPhone screen and, therefore, only result in very small image quality degradation - while delivering considerable bandwidth usage decrease. Using the scaling factor 3 with the above-mentioned UXGA desktops, the full screen images sent over will become 1600/3 * 1200/3; that is, 533*400 in size. Of course, this will introduce some kind of blurriness - but the data usage decrease advantage will be considerable.
Note that, currently, VNC servers are only capable of using integer scaling factors - that is, you can't make them return for example strictly 480*320 (HVGA) images of a 1600*1200 (UXGA) desktop (1600 divided by 480, that is, 3.333, isn’t an integer). This is why you can't just tell them "with a UXGA remote desktop and a VGA client, use the rescaling factor 3.333 so that you get the most optimal result with the best possible image quality".
You can find some real-world benchmark results to show all this in the chart. (See more info in the discussion of the chart.) Server-side scaling, while it does introduce some kind of blurriness (example screenshots of this later), really reduce the used bandwidth: with a two-factor server-side resizing, about 35...45%.
Finally, some examples of the quality degradation (all taken on a VGA Pocket PC; they would be pretty similar on an iPhone. Pay special attention to the increased blur on each consecutive screenshot.):
As can clearly be seen, the quality slightly degrades even at the rescale factor of two. That is, there is a clear tradeoff between quality and speed. You will want to use / configure the server-side scaling feature in the VNC clients actively supporting scaling (currently, VNC Pocket Office by Chillingo Ltd and Mocha VNC by MochaSoft) that directly allow for configuring. In VNC Pocket Office by Chillingo Ltd, this can be very easily done under “Server Scaling” (the last-but-one slider in the configuration dialog). Note that, on the server configuration dialog (right-click the Ultra / WinVNC icon and select Admin Properties), it’s accessible under “Default Server Screen Scale” – this is the only way of setting this on Mocha VNC by MochaSoft, which, as opposed to VNC Pocket Office by Chillingo Ltd, doesn’t have a scaling setting in its configuration menu. Note that if you modify the default “1” in Ultra / WinVNC, Jaadu VNC will just not connect – it’ll just go on showing “Connecting”.
2. Feature / benchmark chart
It's available here. Due to sheer size, I couldn't include it in here - sorry. You'll need to click the link.
2.1 Explanation for the chart
Compatibility (I’ve tested it on): I’ve listed the operating systems I’ve tested the apps on and, in parentheses, the OS’es they are declared to be compatible with. As you can see, as of this writing (09/30/2009), there is only remote desktop controller not compatible with the latest-and-greatest desktop Windows operating system version, Windows 7: Remote Desktop by MochaSoft 2.1. However, the new, compatible version is promised to be approved in 1…4 weeks.
Accessing more than one machines at the same time, in parallel?: two of the clients (namely, iRdesktop by Thinstuff s.r.o. and WinAdmin by Carter Harrison, LLC; both RDP clients) support keeping up a connection to more than one desktop. The (otherwise, much more recommended) apps (the two Jaadu apps, LogMeIn Ignition and VNC Pocket Office), unfortunately, don’t – with them, you need to disconnect from the first desktop first to be able to connect to the other one.
Control mode: Touchscreen (needs major zoom-in to be absolutely sure you do hit the icon you wanted to tap) / Cursor (you can control a self-standing cursor, making it far easier to hit anything): as is explained in the description of this row, there are, basically, two control modes in higher-end, more expensive remote controllers. The (in most cases, default) mode allows for controlling an on-screen cursor (generally, with an offset from the current touch position so that you do see the cursor during scrolling) and only activating anything (that is, sending a left click) when, after you’ve finished scrolling, you quickly tap the screen anywhere.
This lets for far better controllability than the other, Touchscreen approach almost exclusively used by lower-end and free apps. You won’t need to zoom in in order to be able to be absolutely sure to, for example, activate the right one of the consecutive Windows window minimize / maximize / close icons: you just drag the cursor over the right one, release the touchscreen and, then, tap it once to issue a left-click. With a control method not applying visible and draggable cursors, this is far more complicated and error-prone because of the inherent lack of preciseness of tapping with human fingers.
Bandwidth usage group: I've made some really extensive tests to find out how each and every remote control solution uses bandwidth. These tests are, therefore, of paramount importance if you
- Have a very expensive (for example, mobile phone-based without an unlimited data plan) connection, where every byte counts
- Have a slow connection and would, therefore, welcome the fastest possible solution
To reliably and comparably (!) benchmark the different remote controller solutions, I've done the following:
- I've always reset the data counter on my iPhone before connecting to the desktop – and, after the test, I’ve read the current data counter (making sure it was also visible in the video I’ve taken of the entire process).
- I've switched the desktop resolution to 800*600 (SVGA) on the notebook
- I've automatically scrolled through a looooooong test HTML document (my well-known Pocket PC Gaming Bible Part I without the PPCMag header/footer), with disabled smooth scrolling by default (in another tests, I've enabled smooth scrolling to see how he protocol handles smooth scrolling events to increase the data transfer efficiency). To automatize scrolling (and also to reliably find out the rendering time of each and every page), I've used My Macros V2.8 by GoldSolution Software. With this application, it's very easy to simulate user input (in this case, pressing the Page Down key) and waiting for a pre-determined time (please also see this screenshot). The latter also helped me to find out the minimal delay between subsequent page down events for the current page to be completely rendered by the client. The iPhone clients (as opposed to Windows Mobile ones) were pretty similar in graphics rendering speed; that is, the 1-second delay I’ve generally used (and is clearly visible in the test videos) suited them all.
Note that, during these tests, I've paid special attention to not letting the notebook do any additional animation (for example, animated icons in the system tray or MSN contacts / Outlook mail notifications - I've disabled all these applications) and also made sure the mouse cursor was also hovering over the title bar of Internet Explorer, not displaying any additional tip bubbles and not moving at all.
Also note that I've often re-run the tests in order to be absolutely sure I get the right figures. I’ve separated these results (and the videos I’ve taken of the tests) by semicolons (;).
In subsequent tests, I've repeated the test above, in a slightly modified environment; for example, I've switched on smooth scrolling and/or modified the color depth (in the client); all this to see how modifying these parameters affects the bandwidth usage of a given remote control solution. These additional tests delivered a lot of important results, which I've also elaborated on in the tests.
In most cases, the uplink (uploaded) data use being much smaller than the downlink (downloaded) data, I didn’t bother documenting the former. In these cases, there is only one data. For example, in the “Partial view optimization” row, with LogMeIn, it’s 4.1 Mbyte. In cases where I deemed it necessary to also jot down the uplink data use, I’ve separated it from the (much higher) downlink data use by a slash (providing the uplink benchmark result first), like in the case of VNC Pocket Office by Chillingo Ltd in the same row. There, 404k / 1.5M means the particular test resulted in the data use figures of 404 kbytes up- and 1.5 Mbytes downlink.
Note that in the non-scrolling tests, when I didn’t use a timer to stop, say, after 9 minutes (to be still able to upload the video documenting all this on YouTube), I’ve also provided the time interval of the tests. For example, “10 minutes: 22k/111k (8-bit)” means that, when running a 10-minute test, the up/downlink data use was 22 and 111 kbytes, respectively.
Nothing happens: The first test I’ve done was testing the data usage of the apps when no changes are visible. As you can see, the RDP-based solutions and LogMeIn are somewhat behind the VNC clients.
Speaking of VNC, it’s also here that I’ve tested the data use caused by different screen refreshing parameters of VNC Pocket Office by Chillingo Ltd. (The lower the value you can set when setting up an account, the more quickly the desktop controller app fetches the current state of the screen from the server.) As you can see, if you decrease this value to 0 (that is, there isn’t any delay between requested pages) from the default 0.5 second (assuming you use the “3G” default template), the data use becomes about tenfold. Nevertheless, this doesn’t mean you should never decrease this value to 0…0.2 – later, in the “Scrolling” row, when there is major screen acitivity, the overhead caused by the constant polling in no way amount to a tenfold data use increase.
Cursor blinking: my second test was finding out what data use a blinking cursor results in (as opposed to the case of absolutely not happening anything). As you can see, the data usage figures are definitely larger than in the first case but none of the tested protocols exhibited any severe bugs resulting in, say, data use of an order of magnitude more.
Scrolling: this is the test I’ve elaborated two bullets above.
General differences in scrolling bandwidth usage: smoothing: starting with this row, I provide you with information on how the data usage can be decreased by, for example, disabling smooth scrolling in the Web browser (here, I’ve used Internet Explorer for testing; however, other Windows browsers also support this). All these tests are based on the scrolling tests run with different parameters.
In the particular test of this row (smooth scrolling), there doesn’t seem to be much difference.
Color depth: when you, basically, work with textual data, there doesn’t seem to be much difference between 8- (256 colors max.) and 16/32-bit (65500 / 16 million colors) modes. That is, you don’t need to disable 16- or 32-bit color modes to decrease data use if you work with text most of the time.
Note that there is only one exception: if you switch to grayscale mode in LogMeIn (which turned out to be much more usable and pleasant to the eyes than I had predicted; see the video if interested), the data use will be halved. (This is a definite step forward from the results I’ve measured almost three years ago when publishing the Windows Mobile-specific version of this roundup.)
Partial view optimization: as has already been mentioned, only one of the reviewed apps (VNC Pocket Office by Chillingo Ltd) support data use reduction in a special mode that only transfer part of the entire desktop. This can be clearly seen from the data usage benchmark data provided here: while the data use of the other apps are almost exactly the same when scrolling through the standard Web page zoomed in the upper left quarter of the browser’s active area, VNC Pocket Office resulted in about a two-fold data use decrease (404k / 1.5M as opposed to 348k / 3.1M; all this allowing no smooth scrolling, 0 delay, 8bit color and no scaling).
This feature can become highly useful in cases of, for example, remotely browsing web pages full of quickly changing Flash animations. You, on the client, zoom into the text so that the advertisements are invisible – and, by this, you greatly reduce data use.
Connection model / protocol? : here, I just list the protocols the tested remote controllers are based on. In this test, there are only three of them: RDP, VNC and LogMeIn.
LAN (internet-less)?: this row is protocol- and not client-specific. However, I’ve found it necessary to mention it in the chart as well as it’s a very frequent request by iPhone users to have a solution that can be used to directly access one’s desktop in the same for example Wi-Fi local network, without the entire communication being done through the Internet – and, most importantly, the probably very slow home (A)DSL modem.
As you can see, if you do need a direct connection between your desktop computer and your iPhone (which, again, may me way faster than a connection through your Internet connection), you will want to prefer clients utilizing the RDP or the VNC protocol – that is, not LogMeIn.
Able to log in when the user is not / no user is logged in (can you register the server as a Windows service?)?: a decent remote controller application should also (automatically or configurably) register itself as a system service so that it's started even without any Windows user's logging in. This is of tremendous importance with all password/login-protected desktop PC's. You shouldn't rely on not rebooting your desktop either to avoid the need for this: there will inevitably be for example critical XP updates that do reboot the PC. That is, if your desktop Windows you'd like to remotely access doesn't log in automatically, make double sure you configure your remote controller server to be started as a service. Fortunately, all of them can be configured this way - most of them even defaults to being started as a service.
Dynamic IP announcement support?: Should your remote desktop be connected to the Internet via a, say, DSL line, your IP address will most probably change, in general, once a day. With built-in dynamic IP announcement support, you can very easily announce your IP every, say, 15 minutes. You will, then, be able to access this IP stored on a central server and accordingly set the address to connect to in the remote client.
Note that you will still be able to use your remote desktop on a dynamic IP with remote control software not supporting dynamic IP announcement because there are a lot of third-party software (not related to remote controlling) that do the trick. However, the easiest is to have support built-in.
Unfortunately, unlike on Windows Mobile (where there are remote control servers that do announce their IP address), currently, no iPhone remote desktop apps exist that do this. Nevertheless,
- the developer of Jaadu promise some kind of such a service will soon be implemented, making use of Gmail
- the no-ip service works just fine and, if you also install the official no-IP DUC client on your desktop, you will never see any difference between LogMeIn (which does this automatically) and any VNC or RDP client (which don’t). You just enter your no-ip.com address into your iPhone once and, after that (assuming the no-IP DUC is always active on your desktop) it will always be able to connect.
Note that you will still need to configure your router (if you don’t directly access the net) to pass the incoming port requests to your desktop. Jaadu’s desktop-side apps do this automatically if your router does support this kind of auto-configuration.
Service on desktop: Additional memory usage: here, I've elaborated on the memory usage of the desktop-side services (if any). As can be seen, none of the server applications are memory or CPU hogs. The only exception is Wyse PocketCloud’s WyseBrowser.exe (if you do want to use the Web browser), which a bit memory- and CPU-hungry; the latter even when there's no active RDP session. Hope this will be fixed.
Easy to stop/ restart service (no need to e.g. kill it from task manager / restart the desktop)?: here, I explain how the server-side listening services can be en/disabled and/or started / stopped. Fortunately, it’s easy with all of the reviewed ones – unlike with, say, CrossTec (and restarting GoToMyPC once you kill it) you may have seen if you come from Windows Mobile.
Misc: Landscape support? : all of the apps are capable of making use the landscape mode; some even offer orientation locking to avoid accidentally changing back to Portrait.
Dedicated chat support, using a simple textual protocol to communicate to greatly simplify chatting between the remote user and the local terminal user?: on other (even mobile – see Windows Mobile) platforms, some remote desktop applications support the use of dedicated chat windows, which aren't (necessarily) part of the desktop. With these chat windows, you the remote user can communicate with the user sitting in front of the remote desktop using dedicated chat windows. Supporting these is advantageous in two respects:
- they are far more responsive than simply, say, using a, say, file edit window / Word document to communicate because the characters you enter, as you do it in a local (non-remote) text input component, are echoed right back to you.
- When two users try to chat via, say, an open Word document, surely "race for controlling the cursor" events happen.
Unfortunately, there isn’t such support on the iPhone – yet(?).
Double monitors (extended desktops; VNC tested with UltraVNC and TightVNC)?: of the RDP – VNC – LogMeIn trio, both VNC (assuming you use UltraVNC) and LogMeIn support extended desktops using external monitors. Here, I’ve listed the results of my tests.
As can be seen, all VNC clients (and LogMeIn) support extended desktops.
Full screen support?: unfortunately, not all clients support full screen. Some (namely, Wyse PocketCloud 1.0.1), while they hide most of their GUI components upon pressing the “Full screen” icon, still leave the standard, system-wide status row at the top of the screen. Some (namely, MochaSoft’s both apps and LogMeIn) don’t offer any way of hiding their (somewhat transparent) on-screen icons. And, finally, some of them (iRdesktop and WinAdmin) don’t even bother hiding their (non-transparent) icon bars at all, taking up quite a bit of screen estate.
Jaadu’s apps and VNC Pocket Office by Chillingo are the best in this respect.
Copy-paste between client and remote desktop (clipboard synchronization): with the introduction of OS version 3, the iPhone, at last, has received support for copy/paste and clipboard.
Unfortunately, of the tested controllers, only Jaadu’s two (RDP and VNC) apps support copying, and “only” from the desktop to the local iPhone, not vice versa.
Server-side configuration capabilities: some apps allow for setting the most important parameters (for example, scaling) accessing the server-side configuration window (for example, with Ultra / WinVNC, Admin Properties). Here, I’ve listed whether it’s possible to set these parameters if the iPhone client doesn’t have the settings in its local configuration dialogs.
An example: Mocha VNC by MochaSoft doesn’t allow setting server scaling from the local options screen (unlike VNC Pocket Office by Chillingo Ltd). Nevertheless, from the controller, you can freely fire up Admin Properties and just set server scaling to your desire.
Accessing other resources on the remote desktop: File transfer between client and remote desktop: while file transfer is pretty common in other operating systems (even under alternative ones like Windows Mobile), none of the iPhone controllers support it. Hope this too changes – at least the Jaadu folks mentioned they will try implementing it.
Client-side remote / monitoring tools?: : ever wanted to avoid having to, say, use the Task Manager in a full remote session? Ever wanted to avoid remote registry editing in a remote session because of the amount of, say, registry tree navigation involved, which results in greatly slowed down operation when done remotely? On alternative mobile operating systems, there are desktop controllers that allow for remotely monitoring; for example, RemotelyAnywhere on Windows Mobile, it's possible. The local HTML interface offered this application, which is compatible with even the dumbest Pocket Internet Explorer, offers you the chance of doing all this stuff locally, without having to log in to a real remote session and accessing these monitoring / registry editing tools in there.
Unfortunately, nothing like this is possible on the iPhone.
Access to other PIM resources?: should you want to access and, what is more, search your mail or other personal calendar / contacts / tasks data stored in your Outlook or Outlook Express, you'll want to ask iPhone remote desktop controller software developers to take a look at how genuinely I'm InTouch (on Windows Mobile) does this.
Of course, you can do the same with actually logging in to your remote desktop and doing the same PIM stuff in there via Outlook (Express), but it's, of course, a much more awkward solution with orders of magnitude more bandwidth usage - remotely accessing / using for example Outlook will always be much harder than through a mobile screen/interface-optimized, locally (on the iPhone) running interface.
Console mode (in Windows Server products): here, I listed whether the RDP-compliant apps also support console mode available in Windows Server products (but not in XP / Vista / Windows 7, of course). Most of them do. Just remember to enable console mode on your iPhone before connecting – it’s disabled by default.
User interaction: Co-working with local (server) desktop user (no locks etc.): Here, I've listed whether the user sitting in front of the desktop computer can interact with the remotely connecting one
Anyone knowing RDP-based solutions knows both these painfully lack this functionality. Therefore, you'll need to go for an alternative solution if you do need these. All non-RDP-based solutions support co-accessing the same desktop with the physically in front of it sitting user.
Login: l/p credentials can be saved?: in some alternative operating systems (most importantly, Windows Mobile before version 6), it was impossible to store the login/password data of a user. Fortunately, there’s no such restriction in any of the iPhone remote desktop controller applications. Note that they all support for not only saving this kind of info, but also specifying more than one account. Some (namely, VNC Pocket Office by Chillingo) even offer Wi-Fi- and cellular-optimized templates to create these, the difference being in, for example, the delay, the color depth etc.
Windows accounts? That is, can you log in using any existing Windows user login / password pair (you don't need to come up with a new username and/or password but can use your familiar Windows one)?: this shows whether you need to come up with a password (and, probably, a new username) for logging in, or, you can use your Windows username / password. As you can see, with RDP apps and LogMeIn, you can directly use your Windows passwords. With VNC apps, on the other hand, you can’t – you need to use the VNC password, not the Windows one. The latter (if at all supported by the VNC server – Tight doesn’t support it, while Ultra/WinVNC do) isn’t supported in any of the current VNC clients.
iPhone 3G (128M RAM) test with as large a desktop as possible: in this test, I wanted to find out whether a memory-constrained device is able to reliably (without crashes) to access as big a desktop as possible. I used a UXGA (1600*1200) laptop. I ended up having to use one screen (the built-in one, that is) with RDP (as it’s incapable of making use of a secondary monitor) at either this (with RDP clients that do support his high a resolution) or lower (generally, SXGA [1280*1024]) resolutions. With VNC and LogMeIn (where you can use both extended desktops and there’s no obligatory screen resizing), I used a desktop sized 2880*1200 (coming from the built-in UXGA screen and an additional SXGA one).
I’ve run the tests on a jailbroken iPhone 3G but without any special memory hog SpringBoard / WinterBoard add-ons; neither any “memory free” apps like SwapMode in Cydia. It doesn’t even have YourTube (the excellent YouTube downloader plug-in; see my dedicated article HERE), QuickScroll (see THIS), iMobileCinema (see THIS), Backgrounder (the best “hack” ever written for the iPhone) or anything like these – that is, not anything that could take up system resources / memory. I haven’t run Safari / Mail / iPod previously either (these programs remain in memory after you exiting them). That is, these tests represent the “ideal” state (something that can be attained after resetting a device but without additional “daemon hunting” and hardcore hacking & free memory increasing). Note that, should you encounter any problems resulting from memory shortage and you don’t have any kind of “free memory” applications or hacks, just restart the iPhone by pressing and holding the Power button and sliding the slider when displayed.
All in all, I haven’t found any of the tested programs fail at the given screen sizes. I, however, noticed how slow some of the VLC apps are. This means if you’re an iPhone 3G user and want / need to use VNC, you may want to consider sticking with Jaadu VNC – it delivers by far the best and fastest performance. (On a 3G S, the difference isn’t this much pronounced.)
Wake up on LAN?: of the bunch, VNC Pocket Office by Chillingo also supports wake up on LAN functionality.