Repeating reminders

2 minute read Published:

Rethinking stop reminders

The latest version of Transporter includes a big change to reminders. This is a new take on how repeating server-side reminders could help public transit travellers.

Reminder redesign

Previously, reminders in the app continuously monitored for specific lines and informed the user when the vehicle was approaching a stop, and got deleted after being triggered. This was useful for individual alerts, but was cumbersome for any frequent use. However, it did lay the groundwork for something nicer.

The new repeating reminder takes some of its functionality from the existing route tracking feature, which monitors chosen lines for delays and disruptions. All of this is now bundled into reminders, and the user is in full control over what notifications to receive and when.

For example, it is easy to create a reminder that only notifies you when a chosen departure of a bus line is more than 5 minutes late.

Currently, the server-side monitoring queries Digitransit for stoptimes and follows the realtime MQTT feed to find out when there are delays. While this data is available for most transit lines in the Helsinki area and in other large Finnish cities, some data is still inaccurate and will hopefully get better in the near future.

User interface

While transit data monitoring was a large part of building the repeating reminders feature, another challenge was coming up with a user interface for creating, editing and controlling these reminders.

I wanted to offer the user a lot of technical control, but the interface still needed to be clear and intuitive. As you would expect, it took several rounds of trial and error before reaching the current implementation. It may still look like it was designed by an engineer, but hey, that’s me.

Finally, using the mobile client to edit and control something that mainly lives on the server was one more part that needed special consideration. For example, repeating reminders have to contain a mechanism to automatically expire unless periodically refreshed by the client, as it is possible for the user to uninstall the app at any point, without the server knowing about it.

Repeating reminders should be a nice addition to Transporter app’s feature set. I hope you find them useful.

Check out the new Transporter update here.