Nexus S after one week

Many of the reviews for the Nexus S say that it is not as big a leap forward as the Nexus One. So why buy one if you already have a Nexus One? Whilst it will get Gingerbread eventually the Nexus One still has issues that can’t be fixed in software, namely:

  • The screen is not a proper multitouch one. For example the rotate gesture doesn’t work in Google Maps 5.0.
  • It has a tiny amount of app storage (187Mb once upgraded to stock FRG83D build). Whilst Froyo enabled app installation on SD cards, many apps have not been updated to support it. Also copy protected apps can’t be moved from internal storage.
  • The battery is only 1400mAh.
  • The screen is not very readable in direct sunlight.
  • Wi-fi reconnection after sleep sometimes fails (I have to disable and re-enable Wi-fi to reconnect).
  • Poor alignment of capacitive buttons.

The Nexus S doesn’t have these issues. It’s also blisteringly fast. How much of this is down to Gingerbread and how much is down to the Samsung Hummingbird CPU is hard to tell. Games seem to be slightly smoother with less intermittent stuttering. The concurrent garbage collection in Gingerbread probably helps with this.

Where it falls down slightly is in the industrial design. Whilst it is much better than it looks in pictures it’s still 100% plastic. Despite this it does feel solid and fits nicely in the hand. I think it is easier to hold onto the Nexus One which was sometimes akin to a bar of soap. The glossy, all black exterior is nice to look at, especially when the screen is off. The capacitive buttons switch off too which means the front looks like a homogeneous black surface. It fits nicely with darker theme of Gingerbread. The curve of the screen is subtle but handy for keeping screen off a flat surface when face down or for holding against your head during phone.

The cons are:

  • Lack of a trackball. It’s not that much of an issue thanks to the new Gingerbread text selection features.
  • Lack of an SD card slot. This is not a massive problem for me as I only had an 8Gb one in my Nexus One so the 15Gb “USB storage” is plenty.
  • No HD video. Hopefully this will be fixed in a hack or ROM update. I don’t shoot a huge amount of video anyway.
  • No notification or charging LEDs. This actually might be a pro because the trackball light on my Nexus One would sometimes wake me up at night.

I have had no GPS lock issues that some people have reported. I have not had the opportunity to test the NFC capabilities as there is nothing to test it with yet.

Altogether I am very happy with the phone. As an Android developer it is helpful to have the latest software and hardware to test with. It has already meant that I could fix some bugs in my widget apps.

The general consensus seems to be that it is the best Android phone available and I would agree with that. However, it leaves me wandering whether the pace of innovation is slowing in Android and mobile devices. 2010 was an amazing year in mobile. Perhaps 2011 will be more evolutionary rather than revolutionary.


SMS Bot Widget V1.7 in the Market

I have just uploaded SMS Bot Widget V1.7 to the Android Market. Here is the full change log:

  • Reboot fix for Nexus S.
  • Install location set to phone as all widgets should be.
  • Dialogue title text explicitly set to white for Gingerbread to make it more visible.

Reader Widgets V2.18 in the Market

As a Christmas present for everyone I have uploaded Reader Widgets Pro and Free version 2.18 to the Android Market. The full change log is:

  • New option to launch a Reader app. This supports Greed, Newsrob and the official Google Reader client. If the app isn’t installed then it gives you the option to go to the Market and download it.
  • New icon
  • Bug fix: Nexus S now updates widget on reboot.
  • Bug fix: going back to the time configuration screen no longer disables the next button
war stories webapps

Mobile phone networks can break your website

Sometimes my day job throws up some weird problems. Recently during development of a web app iPhones suddenly stopped loading the JavaScript file. No matter how far we rolled back the code it would not load. Other phones were fine and it had worked on the iPhone in the past. Eventually we found that the problem, of all things, was the mobile network! We only found this out because the JavaScript worked on Wi-fi but not on 3G and all the iPhones we tried were on the same carrier (I won’t say which but it begins with an ‘O’ and ends with a ‘2’). Certain carriers “optimise” web pages before sending them to phones as I found in this blog post. This is supposed to speed up sites on phones but can actually slow them down by introducing latency. We worked around this by putting the JavaScript in line. Luckily the mobile network I personally use doesn’t seem to do this (hint: it’s name is a single digit more than 2 and less than 4, 5 is right out). Next time your contract is up be careful which network you choose!
Fortunately, PubCrawler doesn’t seem to suffer from the issue.
A good way to test and validate a web app post carrier fiddling is to tether a handset to a computer. Then using Firefox with the User Agent Switcher add-on mimic the desired mobile phone. Viewing source will display just how much the mark-up, CSS and JavaScript has been altered. Images are usually transcoded (unless the Cache-Control response header is set to “no-transform”) and linked CSS can sometimes be brought in-line for example.
I think this issue highlights the complexity that mobile developers face when trying to troubleshoot a problem. Dealing with differences between handsets and software is the norm but add carriers to the mix and it makes things even harder.