Goodbye iPhone, Hello HTC Desire S

So it’s nearly 2 years since I got my iPhone 3GS, and I decided I wanted to change. Not because the old 3GS was feeling old – it still felt snappy and the battery lasted 2 days. What made me change was those ever-so-annoying “if you don’t have an iPhone” adverts. The thought of being associated with a brand that came across as self-obsessed and narcissistic had slowly been eating away at me, and when I read this story my decision was made.

image

Compared to iOS, Android has a very “home brewed” feeling to it. The interface is much more complex and far less intuitive. On the flip side however, that means everything is a lot more configurable. In this respect, Android reminds me of Windows Mobile and Symbian more so than it does iOS, I can schedule my work email to only push new items during work hours for example – something I missed from my Nokia, that the iPhone did not offer. The home screen is far superior to that of the iPhone, but it falls down on simple things: Renaming a folder was surprisingly difficult to work out, it turned out I needed to click and hold on the folder name in the folder’s popup. Dragging widgets is awkward as you can’t seem to have more than one floating at once, so rearranging them when the screen is full is impossible.

Unlocked Doors

While the software does have a “rough and ready” feel to it, this has benefits as there is virtually no vendor lock-in. I managed to stream music from my DLNA NAS box quite easily. Apple will let you do this, but only within their ecosystem. There is free satnav (although the phone doesn’t come with a carkit), voice input and a whole host of good quality apps available from the app store. One really useful feature is HTC Sense Online, which lets you locate your phone, make it ring, and lock it remotely – great when you think you may have lost it.

image

 

Battery Life

I am disappointed with the battery life. My iPhone (when new) would be at about 70% at 5:30pm when I left work, with average use. The Desire S was at about 40%. It is doing a lot more however, and just proves how little battery technology has improved in the last few years.

Part 2 of review to come soon.

PhoneGap: The JavaScript files are different!

I have recently been developing with PhoneGap, the cross platform development kit for mobile devices (essentially a browser window that lets you run HTML 5 web sites as an App)

I started off developing for iPhone and Android, using the packages provided by their download to get up and running. Great stuff. You write an app using HTML 5, JavaScript and CSS3 and then deploy to each device. The PhoneGap package contains a directory for each platform, with a number of files – the important one being phonegap.0.9.4.js.

So I developed the app on my Windows PC, copying the files across to my trusty Mac to deploy to iPhone. There are some subtle differences in the way Safari and Chrome render, so it was important to test across both devices. I kept coming across intermittent problems on the iPhone however, with the deviceready event not firing. What was going on?

phonegap.0.9.4.js

Due to the negligible amount of documentation available on PhoneGap’s site (Hey – I am used to having MSDN at my disposal!) I found myself digging through the sourcecode to work out how on earth I could do things. I noticed a lot of Android specific code, but no iPhone code. How odd. I then checked in my BlackBerry project folder and noticed the file was much bigger.

Yes, folks – the various phonegap.0.9.4.js files – despite having the same filename are totally different for each OS implementation. Not once in the many hours spent reading PhoneGap’s web site did I see anything that told me that. Turned out my iPhone problems were because I was deploying an Android version of PhoneGap to the iPhone. Having the same filename is confusing and they seem destined to get used in place of one and other. I suspect many others will have tried to deploy the wrong file to the wrong device.

I would really like to see the folks at PhoneGap have a more sensible naming convention. e.g.  phonegap_android.0.9.4.js? It would be apparent straight away the it was specific to that OS, and avoid what amounts to DLL hell issues for mobile apps.

Of course a file is a file, and I can rename it to whatever I like (and probably will) – but it’s nice not to have to (who renames jQuery?) and would certainly make learning the platform easier.