what is this "internet" you speak of?

Jul 8 2013

Citi bike station information


I signed up for NYC Bike Share (Citi bike) a few weeks ago, and so far I have had mixed results, but when it works it is awesome.

One of the things that was driving me nuts is how slow their iPhone app is (especially on my ancient iPhone 4). So I decided to make my own simple mobile app.

about the app

All the app does is list the 10 stations closest to your location, tells you the cross streets, how many available bikes there are, how many available docks there are, and how far away the station is.

It is color coded so if there are less than 25% available the number will turn yellow and at 0 it will turn red. I also implemented pull to refresh to update the list.

user interface

screen shot

I put together the UI in a way that makes sense to me. I wanted to emphasize the locations and the numbers since that is what is important to me.

It was a conscious decision to not include a map view. To me, seeing the cross streets written out is actually more useful than seeing stations plotted on a map.

I think it provides faster access to the information you are looking for rather than having to find the points on a map and click each one individually.

speed optimizations

The app should be significantly faster than the official app. At most it will make 3 http requests (page, logo image, and font), but assuming the assets are in cache it will make a single http request.

On top of that the initial station data is cached on the backend so the only request it needs to make is to get the updated counts of bikes and docks at each station.

The location calculation logic all happens on the backend so we don’t have to wait for the client to loop over all the stations and calculate the distances and sort them.