OneBusAway / onebusaway-ios

OneBusAway for iOS, written in Swift.
Other
81 stars 33 forks source link

Select what arrival/departures to show: either scheduled, estimated or both #597

Open ghotik opened 2 years ago

ghotik commented 2 years ago

For white-label projects, the service owner may dislike to visualization of (possibly unreliable) scheduled arrivals that may highlight a bad service performance. I was asked to omit the visualization of scheduled arrivals unless there are particular conditions (e.g. there are no estimated arrivals). So I would need options to enable/disable the visualization of scheduled arrivals or (even better) a callback function that could allow the selection of what to add to the list vs. to ignore it.

aaronbrethorst commented 2 years ago

@ghotik sounds like a sensible addition. I don't have a lot of time to work on new OBA features right now (need to focus on work that pays my bills), but maybe someone else can tackle this.

ualch9 commented 2 years ago

Should this be a white-label configuration or an in-app user setting?

barbeau commented 2 years ago

On OBA Android we have a user setting for the sorting of arrival times - by ETA or grouped by route. Then, we also have a configuration option in the build flavor to control the default setting for each brand: https://github.com/OneBusAway/onebusaway-android/blob/master/REBRANDING.md#configuration-options

This allowed York to default to sorted by route while the other flavors are sorted by ETA by default. But in all brands the user can still change the setting.

We could do something similar here.

For white-label projects, the service owner may dislike to visualization of (possibly unreliable) scheduled arrivals that may highlight a bad service performance.

@ghotik Here in Tampa HART management originally had a similar concern (i.e., they didn't want to show "delay of X minutes"), but I pushed back on this because riders have clearly indicated that knowing whether or not a vehicle is running close to the schedule is valuable to them. This is assuming that the scheduled times are published to the end user and that's the general expectation of when the vehicle is arriving. If the schedule isn't reliable or isn't published to the end user, and the agency just says "the bus arrives every X minutes", then the agency should probably be representing their data in GTFS format as frequency-based service (in frequency.txt with exact_times=0). In this case, the delay value isn't shown because there isn't a scheduled arrival/departure time (just an expectation of general frequency of service).

Should this be a white-label configuration or an in-app user setting?

I guess it's a question if hiding the scheduled times by default is enough, or if the business rule required by the brand is to hide scheduled times completely from the user (without an option to view them). Because of the above reasons I'd prefer the former (allow brand to hide schedule arrivals by default).

aaronbrethorst commented 2 years ago

Sounds like a white label configuration option to me.