I have been intrigued by mobile application development ever since working on my thesis in 2006. Lots of time has passed and so much has changed since then. 5 years back, I had to revert to J2ME to get an application working on a Nokia Series 60 phone. These days, I can use HTML5 (in conjunction with PhoneGap) to deploy a native-like application to the Apple App Store to offer it on the iPhone market. However, it was important to me to pick an application that I would use personally and so I came up with BikeNav, the route planner for your next bike ride to work, to shop for groceries or to visit a friend.
What is it?
I really like to use my bike as a clean way of transportation but when going from A to B by bike, it is especially vital in car-dominated USA to pick a route that preferably has some sort of bike lane in order for the cars to give you some space or where the speed limit is at a reasonable level (i.e. residential streets). The native map application on the iPhone already has routing functionality built in for public transport, walking and when driving with your car, but not for biking. Interestingly though, the desktop version of Google Maps has this functionality (launched in March 2010 for several cities in the US and Canada). So in order to fill this gap, I had the idea for BikeNav, which uses this Google Maps functionality to give the user the most bicycle friendly route from A to B.
Further details about the features of the application as well as screenshots can be found on the App Store as well as on my support page. Below I will focus more on an overview of the technical implementation of the application.
After looking into Objective-C and native iPhone development, it became clear to me rather quickly that I should stay with what I am good at, meaning web development technologies. Objective-C as well as how all the different pieces fit together in XCode was just hugely confusing, which made me decide that if I can somehow use web technologies to achieve what I want then I am certainly going to go for that :-).
Lessons learned and “What’s next?”
Adopting early has its downsides
As I mentioned earlier, the slight downside to using jQuery Mobile was (and still is) that it was in an early Alpha release. I actually started developing with Alpha 1, meanwhile it is in Alpha 4.1. I only tried to upgrade once, about half-way through development, and noticed that lots of things had been broken by the update. So I reverted back to Alpha 1, and worked my way around the bugs and the missing features that just weren’t there at the time. Since I would like to also offer the application on Android phones at some point, I need to upgrade eventually, but I think I will wait until the framework is at least out of its Alpha state.
Bridging the gap