Sailing Racing App


Mobile App with Gelocation, Mapping and Playback.


Aim:

Allow sailors to record and replay practice sessions, time-trials and organised racing events. Sessions can last up to 30 minutes and feature bouys, start gates and finish gate course markers. Course markers must be traversed in a specific order and splits should be gained from successful navigation of the marker. Sessions should be re-playable and comparable for league tables. Weather conditions, especially wind should be captured alongside the session along with vessel class to aid with training and comparison.

Solution:

I developed a hybrid app that used background tasks and geolocation to record a user’s movement through a session. Geospatial analysis was used to determine successful or unsuccessful navigation of a course with a high-visibility real-time augmented view to aid in location of virtual markers (where no physical twin). Mapping views and replay were implemented on Mapbox with a heatmap feature to highlight/compare section speeds. Weather data was brought in using OpenWeather. A real-time database (where internet connection available) offered the ability to compare and rank multiple live sessions e.g. watch a race live and see who’s in the lead.

Features:

  • Android and IOS Support – phones and tablets
  • Geolocation
  • Geospatial Analysis – traversing round markers and through geo-fences
  • Background tasks (long-running) – to execute even when device screen is off
  • App Notifications – for real-time communication of splits and progress
  • Mapping – rendering sessions on maps with heatmaps and bearing data
  • Authentication – keeping stuff secure and private
  • Real-time database – for continuous session persistence and comparison

Technologies:

  • Capacitor / Cordova – hybrid app
  • Stencil JS – Web component library
  • TurfJS – Geospatial analysis
  • DayJS – Lightweight datetime lib
  • Firebase – Real-time db
  • Mapbox – mapping sdk
  • Typescript
  • JsonPack – JSON compression