A Pebble watchface to tell when the next streetcar/bus/subway will arrive in Toronto
Ruby C JavaScript HTML Python Objective-C
Latest commit d85068b Feb 13, 2017 @chesterbr committed on GitHub Link to the blog post
Permalink
Failed to load latest commit information.
app
screenshots
server
LICENSE.md
README.md

README.md

Toronto Transit Time

A Pebble application that shows bus/streetcar arrival time predictions for nearby stops in Toronto.

aplite   routes   predictions

It supports all Pebble models - including Pebble Time Round:

routes   predictions

Download

Click here if you are on your mobile phone to install the watchapp (or just to get more info).

Alternatively, you can search for "Toronto Transit App" on the Pebble Time app.

In any case, there is no need to install any companion app, or preload/configure anything. Just install and run.

Rationale and Development Process

This blog post is a deep dive on how the initial idea ended in this app, and on why things were done in this particular way.

Structure

The /app directory contains:

  • The C code of the main application that runs on Pebble (with separate files for the routes and predictions windows and layers, plus a splash screen layer that is shared among them).
  • The JavaScript code that runs on the phone and provides location and internet API request/parsing services to the C app.

The /server directory contains a Rails app that:

  • Pre-fetches the stops from the TTC system.
  • Exposes an endpoint that receives a pair of coordinates and returns the closest stops and the routes served by each of those stops.

That back-end is used only to get the routes/stops list. Predictions and service messages are gathered directly from the TTC back-end.

Credits / Acknowledgements

  • @cabello for the JavaScript tips and contributions.
  • @bwinton for the color icons.

Also thank you...

  • @bani for help with images, app name and Pebble development resources (not to mention having a physical Pebble Time Round, which forced me to support it 😭).
  • People on the pebbledev Slack for general guidance on my first Pebble app.
  • Toronto Transit Comission (TTC), for offering a service I am pleased to use, and for publishing the APIs that made this application possible.

Legal

The stop locations and predictions come from the TTC Real-Time Next Arrival service. The app or its authors do not have or claim to have any affiliation with the Toronto Transit Commission (TTC).