Reader Widget Pro V1.5 Out

Get it while its fresh. Here’s the change log:

  • Friend’s starred items support added. This is for when a friend has shared their starred items with you.
  • Handling of no network connectivity improved.
  • Rotation handling on configuration screens improved
  • Blank headlines handled in large widget.
  • Bug fix: Sometimes the large widget would Force close when updating. This was because the retrieval of headlines timed out. This is now handled properly.
  • Bug fix: Timestamp default value for small widget added.
  • Bug fix: adding two widgets in quick succession would sometimes cause the tags and feeds unread count to get zeroed.

Benchmarking JSON vs XML Parsing in Android

I finally found a JSON version of the Google Reader Atom reading list so I decided to see which is faster for Android. The JSON responses are about 25% smaller so they should be faster to download and process overall. For benchmarking I used my G1 as it has the least memory out of my two Android phones.

In Android SAX is supposed to be the fastest way to parse XML and so in Reader Widget Pro 1.4 I started using it (instead of XML Pull parsing) to handle the Atom reading list. Downloading and processing the reading list over Wifi, SAX takes about 85 milliseconds per item. For large lists of 1000 items plus, this actually goes down to 41 milliseconds.

The JSON parsing built into Android does not have streaming functionality yet. Using it would mean downloading the whole reading list into memory which would cause OutOfMemory errors for large lists. To get around this limitation I used json-simple which has streaming built in. Downloading and processing the reading list over Wifi, json-simple takes about 267 milliseconds per item.

So despite having smaller response sizes, overall JSON is 3 times slower! For the foreseeable future I’ll stick with the Atom reading list and SAX. Hopefully a future version of Android will have JSON streaming support built in.

Disclaimer: the benchmarks did not follow a rigorous scientific method and results might differ for other APIs, Android versions, networks and phones.


Reader Widget Pro 1.4 out on the Market

This is a fairly big update. Here’s the change log:

  • Manual login option for users with Google Reader accounts separate from their Android account. Automatic login is still there for everyone else (and selected by default).
  • Switching orientation now supported in configuration screens.
  • XML parser changed from XML Pull to SAX which should improve speed of headline processing. Some people complained of slow updates when they had hundreds of unread items. This should help.
  • Icon next to timestamp in small widget.
  • Bug fix: Some headlines when clicked on in the list would not spawn a browser window.
  • Bug fix: Untagged feeds not visible in tag list pop-up.
  • Other efficiency improvements.

I’m going to take a break from the Pro version and restart work on the free one. There’s some things I’ve been meaning to update in it for a while now.


Reader Widget Pro: upcoming version

I’ve been working hard on the next version of Reader Widget Pro and barring any unknown bugs here’s what’s going to be in it:

  • Manual login option for users with Google Reader accounts separate from their Android account. Automatic login is still there for everyone else.
  • XML parser changed from XML Pull to SAX which should improve speed of headline processing.
  • Bug fix: Some headlines when clicked on in the list would not spawn a browser window.
  • Other minor efficiency improvements.

The manual login option took longer than expected because of having to deal with rotation and virtual keyboards. This is the first version that will actually need keyboard input!


Reader Widget Pro V1.3

Just a quick bug fix in this one. Sometimes the large widget would force close when launching the headlines list.


Reader Widget Pro V1.2

Reader Widget Pro V1.2 is up on the market. Here’s the changelog:

  • Headline list pops-up when tapping the headline section of the large widget. Tapping on a headline spawns a browser window for that story.
  • Both last refresh and unread item times shown on medium and large widgets. This means people won’t have to choose between them on these widgets.
  • Slightly enlarged tag list button on large widget to make it easier to tap on.
  • “People you follow” tag now in list.

Soon I will start work on a more major update to add a manual login option. This will allow users with Google Reader accounts that are separate from their phone to use the widgets.


Touch screen implementations and browser size

I have noticed something not mentioned much elsewhere when testing the PubCrawler on various devices. It is how much screen space is devoted to a web page. This is not a simply dependent on screen size as these screenshots show:

iPod Touch/iPhone 3.0 HTC Dream/T-mobile G1 Android 1.5 HTC Hero
iPhone Dream Hero

All the devices have the same resolution at 320×480 but the iPhone has the larger screen at 3.5 inches. The other two have 3.2 inch screens. It is obvious that the iPhone is showing less of the page, chopping off the bottom of the map. This is an important thing to remember for a single page web app like PubCrawler. The map should resize dynamically for each device which is something I might look into. Luckily the iPhone does not need the controls at the bottom thanks to multitouch pinch and zoom. The reason for the lack of browser room is the absence of physical buttons on the iPhone. This means it has to show more buttons on the screen which take up valuable space. Some people have wandered why there are so many physical buttons on Android devices but they are there for a reason: freeing up screen space and providing more options.
As mentioned before the Hero turns the entire screen over to the browser window forsaking even the notification bar. This leaves a big gap between the map and the controls at the bottom. Space for an ad perhaps? Maybe but you wouldn’t see that ad on the other devices!


HTC Hero mini-review

Here’s a quick write up on my thoughts after two days with my unlocked white Hero. The device itself is very good looking but it is not without its shortcomings:


  • Hardware looks and feels very good in the flesh. Matte teflon backing is unique.
  • Virtual keyboard is excellent. Really fast especially in landscape mode. I find its best to just blast out text and let the auto correct take care of things.
  • Facebook integration. I like the way it aggregates contacts and shows profile photos next to them.
  • The infamous chin. I like it. It keeps the screen and buttons off of a flat surface when face down which you might do to hear the speaker better. It also angles the buttons nicely and curves the mic towards your mouth.
  • Speaker seems to be much louder than the G1.
  • Headphone socket. About time!
  • It’s still an Android phone so all the Google stuff works as usual. All my apps have been working so far.
  • When calling someone it vibrates when the other person picks up. Its a minor thing but a nice touch.
  • The multi-touch browser is full screen. Not everyone might like this as it means the notification bar is hidden.
  • HTC’s clock app. It lets you add several clocks for different time zones, set alarms and incluides a stopwatch and countdown timer
  • Oleophobic screen nicely minimises fingerprints and smudges. It also looks better than the G1’s screen somehow.


  • Lag. Yes it is there, even with a Class 6 microSD. Certain things like the manage applications list are much slower than on my clunky old G1. Sometimes it seems like its just the animations are holding things up. The rotate animation is way too slow and the home screen swipe has a pretty but weird bounce back effect.
  • The camera is almost as bad as on the G1. Just throwing more megapixels at it has not improved things much. It’s still slow and as there is no physical camera button (the trackball is used) you can’t half press to focus. Roll on Sony Ericsson X3.
  • Flash in the browser isn’t great. Its not a big deal as there is an app for it but the BBC iPlayer site does not work. Stuff like Yeti Sports works but it’s slow. I haven’t had much time to test Flash out but it seems like it makes loading web pages slower and there doesn’t look like there’s an option to disable it.

Overall I’m glad I bought it. Hopefully HTC will come out with a firmware update to fix the lag. I’ll still use my G1 for development and testing but the Hero is going to be my day-to-day phone.

By the way the Hero has already been rooted. Click here for instructions. I have tried it on mine and it works.


Reader Widget Pro V1.1 Out

I have just uploaded the first update to Reader Widget Pro. It contains a bug fix for occasional force closes in the large widget. Also the much hyped special feature is there! Basically it is tighter integration with the excellent Google Reader client Greed. If you have the latest full version installed (1.1.9), then you have the option of tapping on a feed name in the pop-up list and viewing the feed in Greed! The option is displayed in the second configuration screen (only if you have Greed (full) though). The browser option is still there if you prefer. Also in the large widget, tapping on a headline shows the feed in Greed. If you do use Greed like me, then you will probably prefer this behaviour to launching a new browser window. Unfortunately, Android only allows new browser windows to be launched by other applications (rather than re-using an existing one).