diff --git a/README.md b/README.md index 213a61f87..b85a964e5 100644 --- a/README.md +++ b/README.md @@ -30,10 +30,10 @@ _OpenTracks_ is a sport tracking application that completely respects your priva ## Features: * __Tracking:__ track your sport and outdoor activities * __Photos and Markers:__ mark interesting locations while tracking (also with photos) -* __Heart rate:__ supports bluetooth LE sensors +* __Heart rate:__ supports Bluetooth LE sensors * __Export data:__ export tracks either as KMZ (incl. photos), KML or GPX * __No Internet access:__ Internet is not used -* __Voice annoucements__ +* __Voice announcements__ * __No advertising__ * __Privacy:__ * _does not contain any in-app analytics_ @@ -47,6 +47,9 @@ _Please note:_ _Tracks_ does not contain a _map_ (as this would required Internet access). To show your tracks on a map, a 3rd party application (e.g., [OsmAnd](https://play.google.com/store/apps/details?id=net.osmand) or [MAPS.ME](https://play.google.com/store/apps/details?id=com.mapswithme.maps.pro)) needs to be installed. +## Custom Dashboards +As of v3.3.1 OpenTracks enables to use custom dashboards. +The reference implementation is [OSMDashboard](https://github.com/OpenTracksApp/OSMDashboard), which presents an OpenStreetMap map (showing the current track, incl. updates). ## Screenshots
diff --git a/README_DEVELOPER.md b/README_DEVELOPER.md new file mode 100644 index 000000000..ef90b04b3 --- /dev/null +++ b/README_DEVELOPER.md @@ -0,0 +1,30 @@ +# OpenTracks Data API + +## Reason +OpenTracks by itself only provides basic features for data visualization and also lacks functionality for analytics. +By itself OpenTracks provides a basic dashboard that can show summary of a track (while recording as well as afterwards). +Although this might be (mostly) sufficient, it has some limitations. +This include limited configurability (e.g., ordering of shown elements) and the lack of Internet access. +In fact, the later is considered a feature but severely limits the implementation presenting a map (at least in an easy way). + +_NOTE:_ for showing a track on a map a workaround was implemented in OpenTracks. +Data could be exported as KMZ and presented in 3rd-party application (e.g., [OsmAnd](https://play.google.com/store/apps/details?id=net.osmand) or [MAPS.ME](https://play.google.com/store/apps/details?id=com.mapswithme.maps.pro)). + +For the time being, the OpenTracks Data API can be used to implement mainly custom dashboards. + +## Implementation +OpenTracks by default does not expose any data to 3rd-party applications. +On the request of the user (i.e., pressing a button), an Intent is created that exposes the `Track` data (it's summary) as well as the `TrackPoint`s. +For each, one URI is provided. +These URIs notify observers if on content changes (e.g., a new `TrackPoint` was added). + +Limitations: +* only tracks selected by the user is exposed, +* `Waypoints` are not exposed, +* access is only granted temporarily and automatically revoked (see `FLAG_GRANT_READ_URI_PERMISSION`), +* no write access is impossible, and +* neither track recordings can be started, paused, or stopped. + +All required information can be found in `IntentDashboardUtils.java`. + +A _reference implementation_ is the [OSMDashboard](https://github.com/OpenTracksApp/OSMDashboard). \ No newline at end of file