Android vs iPhone for sysadmins
Written by David Mytton — Subscribe now.
I have had an iPhone since February 2008, both with the original device and the 3G – I have not upgraded to the 3GS. During this time there have been regular updates to the OS, with perhaps the biggest being the launch of the App Store. I am very happy with my iPhone but I have always been aware of Android.
With the excitement around the release of Android 2.0 and the Droid handset in the US, two weeks ago I decided to purchase an Android phone to try alongside my iPhone. Many sysadmins and developers have iPhones, one of the reasons behind developing our own server monitoring iPhone application, but Android is becoming ever more popular as the platform develops and Apple fail to address the issues with the app store.
There are plenty of reviews comparing Android to iPhone generally so this post will focus specifically on the features sysadmins would find useful. I am a Linux sysadmin so there will be no comment in relation to OS X Server or Windows Server.
This is comparing an iPhone 3G running OS 3.1.2 (not jailbroken) against a T-Mobile Pulse running Android 1.5 (not rooted). I am going to be looking at core OS level features rather than the availability of “tools” apps such as monitoring or troubleshooting, discussion of which will be in a separate future post.
We use Google Apps for the @boxedice.com e-mail because of the integration into the other Google apps, the excellent spam protection and the Gmail web UI (particularly search). On my Mac I do not use Apple Mail.app but have a Fluid instance that accesses the Gmail interface.
The same applies on my iPhone – Apple Mail on the device does not work well with Gmail through IMAP because of the labels system. I have experienced problems when deleting and moving messages between what are “folders” on the iPhone, but also with the “All Mail” folder. As such, I use the mobile web UI through Mobile Safari. This uses the latest web technologies, like HTML5 and local storage, so that mail loads very quickly. However, I have experienced issues when I have intermittent connectivity – I travel by train quite often and sending mail breaks as the connection drops and comes back. This causes confusion as to whether a message has been sent or not because the UI is asynchronous and the action has sometimes not completed even though the UI indicates that it has.
Android includes a native Gmail app which syncs with my Google Apps account. It is tightly integrated into the OS and so includes support for push e-mail via the notifications panel built into the OS, something that is not possible with the iPhone web UI nor through the Apple Mail.app (which has to periodically pull mail). That said, it is not without its flaws and sometimes takes a long time to pick up new messages.
The conversations layout familiar to Gmail users works well and you can perform all the same actions such as search, archive, labelling, starring and deleting. I also pull mail in from a 3rd party POP account and the client is clever enough to use the right “from” address when replying to e-mails sent to different addresses.
Conclusion: The iPhone web UI works very well but my preference is almost always for a local, native app because of the OS integration and being able to handle connectivity issues better. I do not use push e-mail because I do not want to be constantly interrupted but the integration into the Android notification system works well and is unobtrusive.
Following on from the use of Google Apps, we make extensive use of Google Talk for IM. This integrates very well into Gmail with the web UI having a chat widget, “buddy” status in e-mail conversations and searchable chat logging. That all works seemlessly on Android with the native client that runs in the background and again integrates into the Android notifications panel. If someone initiates a chat with me, it will pop up on Adium on my Macs, in the Gmail web UI and on my Android phone. I can choose which device to use and switch between them without interrupting the conversation.
This is not possible on the iPhone, which requires you to be viewing the web UI to chat. This is a problem with being unable to run background processes but regardless, there isn’t a native Gtalk app provided by Google. You would need to use a 3rd party app and probably make use of push notifications to get the chat alerts when it isn’t running.
We also use Skype and the experience on the iPhone is far superior than on Android because the iPhone has a fully native app that includes text and voice chat as well as both incoming and outgoing “landline” calls to your Skype number.
In contrast, Android has a “Skype Lite” app that lets you make and receive calls but through a local number that uses your bundled minutes instead rather than a direct VoIP P2P connection. Incoming calls work by setting up call forwarding to your mobile phone number, which uses your Skype credit. This works well when you are “mobile” as it does not require a data connection (the iPhone Skype client doesn’t work over 3G).
Conclusion: Since GTalk is built into the Android OS it is the clear winner here, particularly for the ability to seemlessly switch between devices. Skype is functional on both platforms but there are “hidden” costs involved with using Skype on Android.
Remote access – SSH
Server issues always occur when you’re not at your main computer so being able to connect remotely on your phone is very useful! Android has a free app called ConnectBot which looks like it could be a good SSH client but I was unable to figure out how to actually get it to connect! Having entered the hostname into the “quick connect” box there was no button to actually connect, nor could I add any “favourite” hosts. Entering an IP address was frustrating because the Android number panel returned to the keyboard after each “full stop” character, of which there are several in IP addresses!
The ConnectBot app gives you access to the local terminal but attempting to execute the “ssh” command to connect to a remote host presented a permission denied error. Having connected to the local terminal, it was added as an automatic favourite so I tried to edit the details to allow me to connect to the remote host. Unfortunately, it didn’t seem to pick up the change in hostname and despite disconnecting and reconnecting, the client still connected to the local host.
In contrast, there are several (free and non-free) SSH client apps available for the iPhone. Many are buggy and difficult to use but the one I have settled with is iSSH. This has almost all the features you’d expect from an SSH client – saved hosts, managing multiple connections, common shortcut keys. It also has a passcode screen to prevent access to the app.
The key feature of any phone based SSH client is the ability to use SSH keys as they can be specific to each device and easily revoked. Both the iPhone and Android apps support these.
Conclusion: Since the Android app completely failed to work, the iPhone wins! There are several apps to choose from on the iPhone, free and paid, so you can pick which app suits you best. Android only has the one app.
Remote Access – VPN
None of our servers are accessible via SSH publicly – you must connect through our Cisco IPSec VPN. Support for this is built into the iPhone OS and is a simple case of flipping a switch in Settings to connect. Unfortunately, there is no such client in Android, nor any apps to allow connectivity to a Cisco VPN. As such, it is impossible to administer our servers via Android. To be fair, the iPhone OS only introduced Cisco VPN support in OS 3.0 and this is obviously very specific to our set up, but Cisco VPNs are used in many corporate environments and being unable to support them is a hinderance.
Conclusion: Cisco VPN only available on the iPhone.
iPhone OS is much more polished than Android. This is quite a subjective statement but the effort Apple has put into the interface shows. Usability is a key consideration when Apple set out their interface rules and that makes for a more consistent experience, which makes it easier to understand how to do specific tasks. Android runs on many different devices and so has to handle different button configurations (or lack thereof) which makes it difficult to discover how to do certain things like displaying context menus (of which there are none on the iPhone, except for copy/paste).
Whether this is the hardware or the OS I’m unsure, but I found Android to be less responsive. There are occasions when the iPhone lags for a few seconds but those are usually very rare. In contrast, things like sliding the keyboard on and responding to touch events were slower on Android. The default keyboard also seems much worse on Android, particularly the input of special characters and numbers. There are settings buttons built into the keyboard display for things like input options and predictive text, which just get in the way.
Specific to the Pulse, I also found I missed the proximity sensor built into the iPhone when making calls. Having to navigate phone “press 1 for sales…” menus with Android was horrible because it took several seconds to reactivate the display, get past the lock screen, show the keypad and then press a button. This had to be repeated when going down multiple menu levels.
But the biggest problem I can see is OS upgrades. The T-Mobile Pulse came with Android 1.5 and it is a relatively new phone. Relying on the manufacturer to release OS updates will be frustrating, particularly when they decide to stop supporting older devices. Apple does not have this problem because they own both hardware and software and whilst some features might be unavailable (e.g. compass, 3G, etc) you still get access to the core OS features regardless of the device you use.
That said, iPhone OS is more mature than Android and there are regular releases from Google. Google knows how to deal with developers and the openness of the platform works in its favour. It is far easier to start Android development than iPhone.
The integration of the Google Apps suite is a major advantage Android has. I much prefer using Android to interact with my Gmail, Calendar and Gtalk and have carried both devices for that reason.
Switching to Android is very compelling just for access to a more integrated Google experience. However, as a general phone for sysadmins, the iPhone is currently better. It has the full experience sorted – you can still use the Google Apps very well, plus all the other functionality needed by a sysadmin. Android completely failed for remote access, but that is more the fault of the app but it’s the apps that make the platform work. Google have done their bit for their own apps, now it’s time for 3rd party developers to get involved.
If you are making a buying decision now, my recommendation would be the iPhone. By the time your contract comes up for renewal in 18 months, the landscape will have progressed significantly and I suspect Android will be seriously competing for the attention of sysadmins by then, if not sooner.
I will soon be writing a followup post to this looking specifically at the apps available for sysadmins on both platforms.