Porsche Shuttle Tracker: A Cross-Platform Vehicle Tracking App

March 2019 M. Golombeck Technical Report University of Applied Sciences and Arts Dortmund English

A shuttle service is only useful if people know where the shuttle is. Without that, the timetable becomes a suggestion and the waiting becomes guesswork.

This report documents a cross-platform vehicle tracking application built to solve that problem directly, giving riders live vehicle positions rather than a printed schedule. The work sits alongside the factory commuting application later deployed to more than 35,000 Porsche employees, which modernised commuting logistics on the same premise.

Implementation

The application was built with the Ionic framework, from a single codebase targeting both Android and iOS. Rather than instrumenting the fleet afresh, it draws on tracking data that was already being collected, passed through a middleware layer that reshapes it to satisfy data protection law before anything reaches a device.

The map, the stops and the vehicles themselves are drawn using the Google Maps framework. That framework offers no offline caching, so a caching layer was written for the purpose, which turns out to matter more than it sounds: a rider checking the same route several times a day is otherwise paying for the same map tiles repeatedly, and the saving in mobile data usage over a commute is substantial.

Two iPhone screens side by side. The first is the launch screen, black with the Porsche wordmark above the words Racing System Shuttle Tracker and a photograph of a Le Mans prototype. The second is the main map view, titled Shuttle Tracker, showing green stop markers across a site plan with a vehicle marker among them and the rider's own position in blue.
Figure 1. Launch screen and the main map view, with stops, live vehicle positions and the rider's own location.
Two further iPhone screens. The first shows a Choose Bus Line dialog over the map, listing several numbered lines with one selected. The second is an information screen for that line, listing the selected stop along with the distance to it, the walking time, and how many minutes remain until the next bus.
Figure 2. Line selection, and the detail view answering the question the application exists to answer: how far the stop is, how long the walk takes, and when the next vehicle arrives.

Testing and release

Beta testing with a selected group of users covered functionality, stability and performance. Release was planned in two stages, and this report covers the first: an internal rollout within Porsche Motorsport.

Outcome

By the time the report was completed the application was in the hands of more than six hundred users, split fairly evenly between Android and iOS. Development ran to roughly five months, a figure that covers considerably more than writing code, since coordination with the IT and legal departments was a substantial part of the work.

On cross-platform development

The report closes with an assessment worth reproducing, because it runs against the usual marketing.

Ionic proved comparatively straightforward to adopt with no prior experience, and the resulting application ran correctly across operating systems. What recurred throughout development, however, were platform-specific problems that the cross-platform abstraction did not catch, dependency matching among them. Each one had to be solved individually, so the effort a cross-platform framework is meant to remove reappeared elsewhere, and solving it demanded exactly the platform-specific knowledge the approach promises to make unnecessary.

The conclusion drawn is therefore a qualified one. Routine eventually absorbed the friction, but a cross-platform framework is better understood as a rough guide to implementation than as a general solution, and it does not remove the need for grounded development knowledge. What made the project work was the cooperation across departments, which is what allowed a relatively simple application to deliver something useful to everyone it touched.

No full text is available for this entry.

Cite this work

@techreport{golombeck2019shuttletracker,
  author      = {Golombeck, Marius},
  title       = {{Porsche Shuttle Tracker: A Cross-Platform Vehicle Tracking
                 App}},
  institution = {University of Applied Sciences and Arts Dortmund},
  address     = {Dortmund, Germany},
  year        = {2019},
  month       = mar,
  language    = {english},
  url         = {https://www.researchgate.net/publication/331633857}
}