Today is a special day for me since I managed to submit my first iOS application to the App store. This marks as done one of the items of my todo list for this year and brings me one step closer to a recent desire, to master iOS development. Furthermore, This particular project was really fun because I designed from scratch the whole thing, including the UI, allowing myself to express the (still limited) design skills I own.
Coming from a Java background, I have been playing with Android the last 2-3 years. Because of this, now I can clearly see the differences between the two platforms along with the pros/cons of each one. One day I plan to write something describing my experience on this. For now, I can say with confidence that iOS dev is not any easier from Android but for some reason it is more fun. I guess it is the business potential of the App store that makes you feel this way.
Shuttler is not a broad audience application. It was inspired by a very specific problem. As a big enterprise, Inria (where I work), has its campus outside of the city where it is almost impossible to reach by public transport from Paris. This is why Inria decided to add a few shuttle buses to make the trip to Rocquencourt (the place where the campus is) less miserable. There is one shuttle line from Paris that has 3 stops and one line from Versailles that also has 3 stops. The problem with the shuttle services is that they do not offer any location tracking of the buses. So sometimes the bus is late and the people waiting at the stops do not know if the bus is coming and when it is going to come, which is kind of frustrating. Imagine that you are waiting for the metro at the platform but there is no sign saying when it is going to arrive. #nightmare
So it is obvious where the inspiration came from. I wanted a solution to allow us (the passengers) track the location of the bus but without requiring anything from the bus company (GPS, smartphones, etc.). And how I am going to get the location of the bus if the bus does not have a GPS? And the answer was crowdsourcing. Crowdsourcing implies that instead of tracking the location of the bus itself, you track the location of the passengers that are already inside the bus. This way other passengers waiting at the next stops will know exactly where their shuttle bus is and when it is going to arrive.
One of the targets of this project was to get myself dirty by playing with iOS so the final product is an iPhone app. In the following months I plan to port it on Android as well. The key features of the app lie in:
- Live tracking of buses
- Expected arrival time of the bus at a stop
- Ranking system as a rewarding mechanism
- Statistics about the trips of the user
- Authentication via Google services
Github project: https://github.com/gmathiou/shuttler