For a while now, I’ve been an exclusive Android user. Two years ago, when Android first came in to my consciousness, it was love at first sight. Android was an exciting platform, completely open source and available, offering software developers such as myself a great opportunity to have my projects downloaded and used by a rapidly-growing user base. For a young software developer, that’s the equivalent of being asked to play Wembley after being in a band for a week.

 

My previous two contract phones, the T-Mobile G1 and Samsung Galaxy S, respectively, have both run Android and for the most part, they have served their purpose to a good standard. The same day I bought my G1, I signed up to be an Android developer; if I was going to have this phone, I was going to run a few of my own applications on it, otherwise, what was the point of having it? Cue many late nights in my university accommodation, trawling through Google’s documentation and making simple applications to display random quotes or alter the phone’s ringer state. Though it was fun doing this, and exciting to see my creations come to life in my own hands, I was never really excited about the phone itself, and 18 months later when I would upgrade to the Samsung Galaxy S, I’d feel the exact same way.

 

Earlier this week, I was totally surprised to be bought an iPad 3. I’d had a quick go of one in the Apple store and, like most people, was blown away by its ease of use and by the clarity of the screen, amongst other things. However, having never owned an Apple product before, I was still in the mindset of “Apple products are overpriced and not worth the money”. I’ve since come to realise that this is the mindset of all of the people who don’t own an Apple product. There was something about unboxing the device and turning it on for the first time that was exciting in a way that I’d never felt with an Android device. For a start, the iPad is quite heavy and just feels like a quality product; this is in contrast to the lightweight, cheap plastic of my Android devices. More than this, the setup process on the iPad was incredible – just a few questions to get the device registered and connected to a wireless network and then I was done. My Android devices, in comparison, booted up and then sat there expectantly assuming I knew my way around the operating system enough to do all of this myself.

 

The differences don’t end there, though. Something strange happened to me once I was set free within iOS; I wanted to buy apps. Though this may seem obvious, for me it was bizarre. Due to Android’s need to be run on many different devices, and due to its open nature allowing different manufacturers to alter the operating system in whatever ways they see fit, I’d quickly got so used to my applications crashing or not acting as expected that I’d taken to only really using free apps. In fact, the process I’ve become accustomed to with my Samsung Galaxy S is:

 

  1. Open application
  2. Wait for application to load
  3. Wait for application to crash
  4. Click “Force Close”
  5. Reopen application

 

After downloading a few apps on my iPad, it quickly became clear that this wasn’t the case with Apple products. I’d previously ranted about Apple’s developer program costing $99 per year, but when you find yourself wading through endless rivers of buggy, badly-designed and sometimes seedy Android applications, you begin to realise that this premium cost (in comparison to Android’s one-time $25 payment) has its benefits, as does Apple’s application validation service. If Android’s collection of applications was to be merged with iOS’s, I believe that only about one in a hundred would make it.

 

The security of Android applications is something that worries me as much as the quality. I was recently able to have a meeting with a computer security expert working as a penetration tester; a white-hat hacker, in other words. After talking about the Android platform for a while, he asked me for my phone and plugged it in to his laptop. He ran a command to list all of the packages installed on the device and asked me to point to one that I’d developed myself. I gave him the package name, and he ran a few more commands, then opened up Windows Explorer to show me a .dex file (the end result of compiling an Android application). I was impressed that he had extracted this, but pointed out that, really, that was of no use. Two minutes later, I was sat open-mouthed, looking at my own source code, that he’d managed to reverse-engineer from the .dex file.

 

That experience scared me a little bit, although I did receive some excellent advice and pointers on how to keep my own systems and applications safe, even if the code could be reverse-engineered. I asked him how many people in his company would be able to do that; he estimated the figure to be around 35/40. I asked him how many people could do something similar with an iOS application; he estimated around 3/40. Chalk up another victory for the iOS platform.

 

One final thing to mention comes from my current work at Instinctive Creations. I’m working on a cross-platform push notification system for use in one or more of our applications. This means trawling through lots of documentation from both Apple and Google to figure out how to interact with a client device from a server. Google’s documentation is very to-the-point and assumes quite a bit of knowledge of the operating system. Apple’s is six times as long, but is comprehensive and all-encompassing, requiring very little previous knowledge.

 

The Android platform is still a great platform, and it’s opened up smart devices to a massive market; a market that might not necessarily be able to afford Apple’s premium costs. It’s open source, affordable and generally fairly usable, but its open source nature is also its achilles heel; having multiple copies of the same operating system running on different devices causes uncertainty of performance, and applications crash so commonly on my Samsung Galaxy S that it’s often more convenient to turn on my laptop to perform tasks that should be trivial for a smartphone. I’m sad to admit it, but my next phone upgrade will be to an iPhone; it’s expensive, but it just works, and that’s an experience worth paying extra money for.