CLGeocoder is not an Opera fan

on April 15, 2013, 6:22 am

I realise that Reverse Geocoding is a pretty tricky problem and probably will always be a work in progress, but the CLGeocoder bug I found today was so amusing I had to post. Things like this make this API less useful than it otherwise could be.

One of these is not the Sydney Opera House:

I built a quick test app demonstrating that CLGeocoder thinks "Opera House, New South Wales" is a suburban bungalow.

Permalink - Comments - Tags: Development,iPhone,iPad

Four months later and I still suck at this game

on April 14, 2013, 12:52 am

Four months of indie game development in under three minutes.

Permalink - Comments - Tags: Development,iPhone,iPad


on April 14, 2013, 12:07 am

The Classic 'find a word' game reinvented. Compete with your friends and the world.

Free to play with no advertising. Upgrade for more challenging games and word lists.

Permalink - Comments - Tags: Development,iPhone,iPad,App

iOS 6.0 in Sydney? No suburb for you!

on September 27, 2012, 4:08 am

Just discovered an interesting bug in the iOS CLGeocoder object.

At goCatch we use the reverse geocoder to get a good estimate of the passenger's pickup location, so having the passenger appear in the correct suburb is pretty important. When you get a response from the CLGeocoder you get the following fields:

@property (nonatomic, readonly) NSString *name; // eg. Apple Inc. @property (nonatomic, readonly) NSString *thoroughfare; // street address, eg. 1 Infinite Loop @property (nonatomic, readonly) NSString *subThoroughfare; // eg. 1 @property (nonatomic, readonly) NSString *locality; // city, eg. Cupertino @property (nonatomic, readonly) NSString *subLocality; // neighborhood, common name, eg. Mission District @property (nonatomic, readonly) NSString *administrativeArea; // state, eg. CA @property (nonatomic, readonly) NSString *subAdministrativeArea; // county, eg. Santa Clara @property (nonatomic, readonly) NSString *postalCode; // zip code, eg. 95014 @property (nonatomic, readonly) NSString *ISOcountryCode; // eg. US @property (nonatomic, readonly) NSString *country; // eg. United States @property (nonatomic, readonly) NSString *inlandWater; // eg. Lake Tahoe @property (nonatomic, readonly) NSString *ocean; // eg. Pacific Ocean

The two that I am particularly interested in this case is locality and subLocality. Because we want to show the most relevant neighborhood to the taxi driver, we prefer subLocality over locality. This has worked fine right up until iOS 6. Unfortunately with the iOS 6 release, the API has started returning the two values reversed. So for Ultimo (suburb or neighborhood) in Sydney (city), we get back:

[locality Ultimo] [subLocality Sydney] [administrativeArea New South Wales]

I checked the same results for the mission district in San Francisco] and it is working fine. I guess Apple would have noticed if that area was similarly broken:

[locality San Francisco] [subLocality Mission] [administrativeArea California]

With the iOS 6 release we stated getting a lot of taxi drivers complaining about jobs coming up in "Sydney" as opposed to a specific suburb. Ouch!!

We have added an iOS 6 specific hack which swaps the values until Apple gets around to fixing the issue.

Permalink - Comments - Tags: Development,iPhone,iPad

48 hours of coding FTW! Literally

on September 23, 2012, 10:13 pm

Last week Vodafone Australia held a 48 hour hackathon where developers team up with a charity to build an app to fix a pain point in their organisation. The winning charity receives a 30,000 prize decided by a panel of judges including Guy Kawasaki.

The dev team at goCatch decided to leverage our experience tracking taxis in realtime to help St John Ambulance with managing volunteer first aid workers in the field at events like New Years Eve in Sydney.

We built an app that we think will help save lives at these events and the judges agreed.

We won! Here are some photos from the 48 hours of lunacy.

Permalink - Comments - Tags: Development,iPhone,iPad