Update, Jan 6, 2011: Sadly, iBusVan has now been discontinued! However if you want to take over the project instead, please check out this post.
Update Jan 26, 2011: The app is now open source—find out more about grabbing the code here!
The app is available for $0.99 and it’s the work of Zhenwang Yao, an independent app developer from SFU.
I e-mailed Zhen and did an interview so we could all learn about him and his transit tool — check it out below.
(Also, if you don’t know, TransLink offers its own official iPhone app for free in the App Store. But we do welcome development of tools like iBusVan to provide more info options and features for customers!)
I started iPhone app development in August 2008. Looking for some interesting projects to start with, I came across the emerging open Google Transit Feed Specification (GTFS), which is dedicated to standardizing public transit information, and making it publicly accessible. I think this is a great step. I am a regular public transit rider, so I know how bad it feels when you are standing at a bus stop wondering when the bus will arrive.
So I started with Portland, OR, as Trimet (TransLink counterpart in Portland) is the pioneer to make their transit data public. More importantly, they have provided web-based API for transit application developers, which made development of the app much easier. Right after release of iBus-Portland, I started working on extending the app for more cities. That’s UniBus, iBus-Universal.
For UniBus, I created my own transit information server, hosting transit data server for multiple cities (currently 36 cities, 48 agencies), and unified the iPhone app to allow users dynamically switch between cities. For example, one user I know use UniBus regularly in Vancouver, and when he traveled to Toronto, he simply switched the app to Toronto and got the local TTC bus/subway schedule.
While keeping UniBus, recently I decided to make simplified iBus apps for specific cities, and iBusVan for Vancouver is the first in the line. iBusVan (and other iBus apps to follow) shares the same core as UniBus, but has a simpler user interface. For example, switching and updating for different cities have caused confusions for some UniBus users, so iBusVan is only for Translink in Vancouver, and has a more concise data update interface. Another reason to make more iBus apps
is because a recent change in Apple’s App Store has limited the keyword of an app to 100 characters, which has far from enough for UniBus to include city names as keywords and hence has excluded UniBus from search result by most cities.
Can you talk a bit about the features in the app?
As a transit app, iBusVan (and UniBus) includes basic functions like: display upcoming bus arrivals, stop search, route search, maps, etc. In addition, there are some unique features:
- Whole day schedule. Besides a couple of upcoming arrival times, users can also look into the whole-day schedule of a route for any day of the week and for any stop on the way.
- Location-aware search. Not only can users search stops near their current location, but they can also ask for stops for a certain bus. For example, if you are going to take 97 or C24, you can easily find stops nearby for these two buses.
- Supports both on-line and off-line viewing. Users can set the app to automatic switch between online and offline modes based on network condition. When an offline user goes back online, it will notify the user if there is a schedule update available.
Did these apps take a lot of time to put together? How long have you been working on them?
These apps have taken most of my spare time.
The first app (iBus-Portland) was relatively simple, since it used Trimet’s web server, and took me about two weeks. UniBus took me about one month to make the initial version (including the transit information server and the iPhone app), then two updates of UniBus in another two months. After that I barely had time to work on the apps, except some regular supports and data maintenance. Recently, I resumed the development on the apps again, and spent about one month in the latest UniBus update, and the release of iBusVan.
In total, it has been more than a year on and off.
Can you tell us a bit about yourself? Where are you from? What’s your programming background?
I am originally from China, and currently an SFU Engineering graduate student about to graduate. I study robotics, and worked with the Robotic Algorithms and Motion Planning Lab. I have strong interest in developing mobile applications particularly for navigation. Some part of my research is to study how to navigate rescue robots (or human fire-fighters) with mobile devices in the case of emergency.
Besides robotics, my experiences are mostly in programming and software development. In my current research I develop my own software/simulations for robots and distributed network systems. In my previous work experience, I developed software in many different fields, including mobile devices and related applications (with Motorola), human computer interface, and GPS devices.
Are you a regular transit rider?
I take buses every day! That was my motivation to make the iBus series, and to add iBusVan to the series.
What’s your favourite seat when you ride transit?
Last row beside the windows.
What’s next for iBusVan?
I really would like to see how people like the app, get more feedback from users, and to improve the app in the next version.
A known issue is iBusVan cannot differentiate between buses of same route but to different destinations, for example 130 Hastings/Kootenay Loop/ Phibbs Exchange/Capilano University. This is due to the quality of dumped translink.ca data, and I am hoping the official release of Translink data will solve this problem.
Another function I am thinking is a trip planner, particularly for offline users. This can be challenging due to limited resources on the iPhone/iPodTouch.
How can people reach you if they have feedback?