Monday, August 1, 2011

Next iPhone app

After my first iPhone app was published, I contacted a client whether I could build a iPhone app for them. This client does in discounts for consumers. This new iPhone app lets you search on a map nearby gasstations by which you can get a discount when you're a member of this client. It's also possible to search by city or get the same info in a list. Selecting a gasstation displays a detail view with a closeup map. Finally the app also displays the current fuelprices.

Here are some screenshots:


Development
Development of the app was quite straightforward. It was mostly learning how to use the MapKit and designing the views since I had to create them self this time. Because the clients infrastructure would not be sufficient to serve data to many mobile clients, a separate backend app was created.


Backend
Daily data is downloaded from the customer and uploaded to a backend app from where it's distributed to the mobile clients. The backend app is build for Google App Engine. The data is persisted in the key-value datastore. Since the data structure is simple enough and using a key-value store is not that hard, the data is stored using the lowlevel API.

The data is process as XML but send to the mobile clients as JSON. A small comparison between GSON and FlexJSON showed that the latter was a bit faster, so that one is used. With FlexJSON it's easy to customize which properties to include in the JSON using a transformer or include or exclude clauses. This also gives good control over the object structure depth that must be put in JSON.

Status (update 1/12/2011)
Even though the app is more or less finished it is unfortunately not available in the AppStore yet. Beforehand was agreed with the client they would supply all needed graphics. Until now however the client has not delivered all images necessary to create a beautiful, high quality app. So for now I am the only and happy user of this app. Hopefully I will be able to submit this app next year.