Developer Network

SportTracks 3 Plugin API Overview

The SportTracks Plugin API allows developers using .NET languages (C# or VB) to extend the SportTracks application in a variety of ways: to support new GPS and sensor devices that come to market, to customize the existing built-in views and actions, or to extend the application with completely new views and capabilities. The functionality is broken out into two broad areas based on the differing goals of the expected audiences: (1) Device & data integration, and (2) Feature customization.

NOTE: If you are a device vendor/retailer and want a customized solution branded to your product contact us directly.

Ready to get started? Sign up to start using the SportTracks 3 Plugin API

Device & Data Integration

A software application that deals with data coming from 3rd party GPS watches and sensors would be obsolete the moment it shipped if there was no way to extend which devices and data formats it can understand. The device & data extensions in the SportTracks Plugin API were designed to address this issue.

When the user choses to import from a device or file, the list of devices and possible file extensions are populated from installed plugins. Each plugin can present the user with a single device, or a list of devices, along with an image of the device. When the user has selected the device or file to import from and starts the import, control is handed off to the plugin code which performs the low-level communication with the actual device.

To complete the data import, the plugin is handed a reference to the import wizard which it can add the imported workout activities to. All interaction in the plugin occurs at the data level and there is no need to understand how the SportTracks user interface works. The users benefit with a consistent import process, regardless of the device or data being imported.

It is important to also note that architecturally none of the device communication is packaged with the core application software. Solutions for different devices can be bundled together easily, supporting branding of the software to a specific device or vendor product line.

Using view export actions, data transfer to devices is also supported. For example your plugin can support sending user-created routes, athlete heart-rate zone info, or other useful fitness data to the watch.

Finally, it is not strictly required that the location data is imported to or exported from be a device – your plugin can import from local data files, or even synch with remote data at a web service.

See the device import sample project in the code gallery

Feature Customization

The second area which plugins can customize is the user interface views and actions within the SportTracks application. Each primary view: daily activity, activity reports, athlete history, and equipment, allows extension of view actions and detail pages via plugins.

View actions can be categorized as edit, export or analyze and interact with the currently selected items in the view. Some examples of actions plugin authors have written are: merge workouts, clean heart-rate data, discover common routes, or upload a route to a website.

Detail pages are user control panels which are placed inside the view and show the detail for a selected item (workout, equipment, route, etc). Here a plugin developer is only limited by their imagination. There are currently several plugins that are providing extremely sophisticated analysis views as detail pages.

Beyond the main views, several of the secondary views can also be extended, such as: settings, category, or zone details. And if a developer demands even more control over customization entirely new views can be created and will show up in the main view navigation menu.

Similar to the device & data extensions, all the existing standard views and detail pages are provided internally as plugin extensions, supporting quick customization to a rebranded solution by rearranging views, removing, adding or customizing detail pages.

Visit the tutorial section and learn how to extend detail pages in the activity view

Implementation Support

Data Access & Statistical Algorithm

A large part of the SportTracks 3 Plugin API is dedicated to allowing plugin developers to access user's fitness data including the ability to modify the data. All the data a user sees in the SportTracks application: activities, routes, equipment, athlete history, and more is accessible via the API. The data access API is designed around the requirements of analyzing fitness & GPS data with the appropriate objects for GPS tracks, detailed time-data tracks, and workout summary and categorization properties.

In addition to data access, a plugin developer can utilize a variety of supporting classes to perform analytical operations on the data such as smoothing or accumulating data into data ranges, calculating min/max or weighted average, performing analysis on specific time ranges, etc.

Visual Controls & Theming

The last component to the SportTracks 3 Plugin API is a powerful library of controls, forms, images and localized text which can help a plugin developer quickly put together a customized analytical feature that integrates well with the existing layout and visual theme. A small sample of the available controls is shown below:

View the complete list of classes in the API reference area