PubCrawler updated to Google Maps API V3

Good old PubCrawler. I have somewhat neglected my duties in maintaining this web app. However, I recently completed the migration to Google Maps API V3 for it. Advantages of this include:

  • Automatic display of controls based on device. For example zoom buttons are displayed on Android devices but not on the iPhone (because it has multitouch built in). This means that I have done away with the buttons below the map.
  • Built in map type buttons (Map, Hybrid, Satellite, Terrain) so I got rid of the button to do this at the top
  • Speed: it uses less data and therefore loads maps faster. They built it with mobile devices in mind.

There’s more but Google themselves can explain it better than I can. PubCrawler running on Maps API V2 (or PubCrawler Classic as it might become known) is still available here. I actually started this process of migration to V3 not long after it was announced. However, at first the full feature set wasn’t there so I parked it for a while. I’m not sure when the API became complete enough for PubCrawler’s needs but everything is there now.

Revisiting PubCrawler after such a long break means that the iPhone-esque look and feel is starting to look a little dated to me. At some point its going to need revising to something more unique and suited to the application’s purpose.


SMS Bot Widget V1.2 in the Market

The latest version of SMS Bot Widget is in the market. Get it while its hot. Here’s the changelog:

  • Option to hide message in widget for privacy (shows “#####” instead)
  • Call button added in send message dialogue to dial the number configured
  • Settings button added to send message dialogue to reconfigure the widget
  • Bug fix: aligned ad to bottom of configuration screen

Reader Widgets V2.4 in the Market

It’s been a busy day here at I have just uploaded Reader Widget Free and Pro version 2.4 to the Android Market. Here’s the change log:

  • Speed improved by requesting gzip compression from the Google Reader API. I have tried to get this working before and the solution turned out to be using a real User Agent string in the requests to the API.
  • Icon moved to title bar in configuration screens
  • Ads aligned to bottom of screen properly in free version. This was a problem on higher resolution devices like the Droid and Nexus One.
  • Icon added to title bar in WebView
  • WebView made full screen. This means scrolling is smoother on the Nexus One as it doesn’t have to animate the live wallpaper in the background

SMS Bot Widget 1.11 in the Market

I have just uploaded an update for the SMS Bot Widget to the Android Market. It fixes two issues with the HTC Tattoo. The first one would show a “Force close” error message upon sending a message (the message would still be sent though). The second was a more serious as it meant that two messages were sent instead of one. This was not a bug in my code but in the Tattoo’s ROM. I used the workaround suggested here.


On Android Fragmentation

During development of the SMS Bot Widget I encountered some issues with running it on the different versions of Android. The SMS API changed in Android 1.6 and the contacts one changed in Android 2.0. Coding for 1.6 and then attempting to run it on 2.1 meant that some nasty bugs cropped up such as not all contacts appearing in the configuration screen. In order to make the code run on everything from 1.5 up I had to use reflection.

Catering for multiple OS versions is part of the problem with fragmentation of Android but at least it can be worked around. If APIs change or new features get added, applications can still be written to run on old versions whilst utilising the latest functionality. It takes more effort but its worth it in order to have such a rapidly evolving platform. There have been 6 new versions since the T-mobile G1 was launched in the US in October 2007. As a developer I like getting my hands on new toys to play with.

However, as an Android phone buyer fragmentation is confusing and frustrating. New devices are being announced all the time running anything from Android 1.5 to 2.1 with different custom UIs. Customers can’t be sure when or if they will get updates for a device in the future. Also devices get released so quickly, that even a few months after release they’re outdated. I suppose these are the prices we pay for choice and rapid progress.


SMS Bot Widget in the Market

My next Android app is called “SMS Bot Widget” (the name “SMS Widget” was already taken). Like the Reader Widgets it is something that I myself wanted on my phone. I seem to keep sending the same SMS message to the same person a lot so I wanted a shortcut to send it for me with two taps. I found a widget in the Market for this but it force closed on me so I decided to create my own.

There’s actually two widgets: 1×1 and 2×1 depending on the size of the message needed (the text is cut off if it’s too long). Adding the widget launches the configuration screen which has one drop down box for name and another for number. Only contacts with phone numbers are displayed. There is a text box for entering the desired message up to 120 characters. Once the configuration is saved the widget displays the contact name at the top and the message underneath. Tapping on the widget launches the send message dialogue with OK and cancel buttons. It shows the full message and phone number so they can be checked before sending. Once the OK button is pressed, after a short delay, a text pop-up shows if the message was sent successfully. The message is also added to the sent messages in the SMS app so that there is a record of them.

Multiple widgets can be added and configured independently.

It took me longer than expected to develop this because of the differences between all the Android versions. More on this in another post.

SMS Bot Widget has been tested successfully on Android 1.5 (Hero), 1.6 (G1/Dream) and 2.1 (Nexus One).



Follow me on Twitter

I have finally joined Twitter (and the 21st century). Follow me here. It’s my personal account so there will be a fair amount of noise but I will be tweeting about mobile dev stuff too.


Nexus One Mini-review

I hold in my hands something that has ten times the CPU clock speed and 32 times the RAM of the first PC I bought 13 years ago. I think the time has come to stop calling these things mobile phones (and super phones – lets stop that right now) and start calling them what they are: mobile computers. The Nexus One is so much faster than anything else I’ve used (although I haven’t had much face time with the iPhone 3GS). I didn’t realise how sluggish the HTC Hero really was until using this. I won’t go into too much depth as there’s loads of stuff out there already. Here’s some things that I noticed which I haven’t seen mentioned anywhere else:

  • The 4Gb micro SD card it comes with is class 2 and comes with 13 MP3s from a variety of artists like Mos Def, Marcus Miller, White Denim and Amanda Black.
  • Spotify works but does not animate the music visualisation live wallpapers. Also they don’t seem to have upgraded the icons for higher resolution screens yet so they’re a bit fuzzy.
  • Despite ordered from the UK there is no multitouch anywhere. I’m sure hacked apps and ROMs will appear though.
  • The clock app is really nice
  • The voice button on the virtual keyboard isn’t always there. For example when typing in URLs it doesn’t appear
  • The camera app has no way to autofocus before taking a shot. This means that it feels a bit slow when taking a picture because it has to focus and then take it. However, it should be possible to write an app that has a proper autofocus function (if there isn’t already one).
  • The light grey part of the case seems to be a single piece of aluminium that wraps around the back. The hardware looks and feels great. It has an understated quality to it and is grippy to the touch.
  • The screen is set back slightly from the bezel to prevent scratches. I still wouldn’t put it face down on anything though!
  • It boots up really quickly.
  • Every app I have tried works so far
  • Video is recorded at 21fps 720×480
  • The HTC Hero keyboard (HTC_IME) works but the letters look fuzzy as they are upscaled. Also there’s no voice key to perform speech-to-text input. I might just stick with the default one until the Hero one gets upgraded/hacked.

I’m really excited to be developing applications on a device like this. Now Google where is my Android 2.1 SDK please? 🙂

Update: full track listing of files on the micro SD card here.


Nexus One has arrived

Despite the #uksnow my Nexus One has arrived. First impressions are very good. I’ll post a mini-review later.
PubCrawler and the Reader Widgets both work on it by the way.


Nexus One ordered

After watching the ustream feed of the Nexus One press conference I decided to order one from the web store. In fact as soon as the URL came up I hit it! I know it doesn’t fulfil all of the criteria that I laid down for Santa but I think the combination of 1GHz Snapdragon processor and Android 2.1 is too tempting. I had considered the Sony Ericsson X10 but it only has Android 1.6 and will probably not get 2.x for a while due to its custom UI.

By the way international shipping to the UK was $29.65 and a UK AC adaptor was another $19.99 for a grand total of $578.64. This should still make it about the same price I paid for my Hero when VAT gets added.