Announcing Tracks2Miles

OK, so the last 3* posts have been about the development of this so I guess you all knew it was coming, but now after some kind folk (Thanks @davidgeorgeuk, @bodonovan, @TheMightyAl & @ragtag) beta tested it for me it’s time to release it to the world.

A Friday afternoon chat between myself, Karl Roche, Brian O’Donovan and Dale Lane about tracking exercise habits with the website dailymile led to wondering why there was no Android app for it yet. A quick look at the API suggested it shouldn’t be too hard run something up. A short weekend of hacking later the majority of Tracks2Miles was done.
Tracks2Miles Icon
Tracks2Miles is an Android application to take workouts recorded with My Tracks and uploads them dailymile.

Rather than reinvent the wheel and write a full GPS tracking app I decided to see how easy it would be to extend one of the existing apps. My Tracks was one of the first training apps released for Android so it seamed like a good place to start. My Tracks have released a library to allow embedding the GPS tracking into new apps, but even this looked like a lot of work, but My Tracks also has a feature to “Share with friends…” which uses the android.intent.action.SEND intent action to allow other apps to forward on the data in a number of formats, one of which is GPX. This made writing the Tracks2Miles very easy.

Current Features:

  • Export routes from My Tracks – use the “Share with friends…” menu option to share the current track
  • Post workouts without using My Tracks – Tracks2Miles can be launched directly to upload a workout without uploading a new track e.g. treadmill seasons
  • Existing route reuse – start Tracks2Miles from the launcher and hit the “Use existing route” button and you can use routes already uploaded to dailymile

Possible Upcoming Features:

  • Support other apps – add support for exporting from apps like Endomondo or Runkeeper if they can export GPX files
  • Export any GPX – search the file system and upload any GPX found
  • dailymile timeline – a way to see what everybody else has been up to and add comments and motivation
  • Offline caching – save on bandwidth and API calls
  • User preferences – store defaults for Rating and workout type type
  • Contact syncing – add your running buddies to your phones contact list
  • Retry on network loss – uploading long routes can take a while over slow networks so a bit more fault tolerance would be good
  • Widget – because every app needs a widget

Known issues:

  • Facebook login not working – When authorising Tracks2Miles using an account created using your Facebook account it says password is wrong. This looks like either a problem on the dailymile or Facebook side of things, I have reported it
  • Time and distance not filled in when exporting from My Tracks – a patch to make this happen have been submitted to My Tracks, hopefully it will make it into the next release.
  • Reused routes have zero length – Some routes returned by dailymile are shown to have zero length so the distance is not filled in when using them. I have reported this to dailymile.

I’ve tested this on a HTC Desire, a ZTE Blade (Orange San Francisco) (updated to 2.2), a Samsung Galaxy and a Motorola Defy devices along with in the emulator running 2.1, 2.2 and 2.3. It should run on Android 2.1 or newer.

The Android Market URL is https://market.android.com/details?id=uk.me.hardill.dailymile or us the following QR code:

*

  1. My Tracks to dailymile GPX route exporter – part 1
  2. My Tracks to dailymile GPX route exporter – part 2
  3. My Tracks to dailymile GPX route exporter – part 3

13 thoughts on “Announcing Tracks2Miles”

  1. Good work – Very nice.

    Question tho – Why not add this code to the open source MyTracks Source?

    I’ve had a feature request open for ages there asking for a webservice which can render my recorded tracks – This could be it? 🙂

    1. I don’t think the My Tracks guys would take all of this a direct addition since it would tie them to one site (well a none google site :-)).

      I’m hoping they will take the patch I’ve submitted as this will allow others to write similar add-ons which can support many other sites without needing to change the base code.

  2. Awesome work! I’ve been using DailyMiler for a while but it’s annoying having to enter all the info.

    This, though, is exactly what Android needs – a small app/share.with to bring some proper use to a Google app 🙂

    Thanks so much for developing this – I was looking at trying something like this but really am only able to read and tweak others’ code, too new to Android.

    Final note – would it be possible to rather than upload a tracklog choose a pre-run/mapped route as the reoute, else I’ll have 360 6mi routes all for the same route each year.

    1. Hi Dan

      Glad you like it

      If you launch Tracks2Miles from the program list rather than via My Tracks you can pick previously used routes and it should fill in the distance for you (assuming the dailymile bug about routes uploaded by the API having no distance is fixed). You’ll have to manually fill in the time.

      I’ll have a look at look adding some way to match existing routes via the My Tracks route as well, it will probably have to be based on name, as I don’t fancy writing a bunch of goe-matching code.

  3. Brilliant, thanks – again!
    Name matching is the only realistic way I think, too. Personally that’s all I want in my DM app 🙂

  4. Thanks so much for creating this! I’ve been hoping someone would do something like this forever. I downloaded it as soon as I saw it and have been using it for a couple of days now. I hope they take your patch because it would be even more handy with the time and miles filled in.
    Thanks again.

  5. I’ve tried all the running apps, and have landed on Endomondo due to stability and simplicity. I’d love to be able to copy data from them to DailyMile. Thanks for the work.

  6. Hello Ben, I would like to try this app. However, I was in China and I can not download this app. Is there any policy that forbid I to use it? Thank you.

    1. I’ve updated the marketplace options now. China is hidden under an option I had not seen before.

  7. I loaded T2M (Tracks2Miles) and MT (My Tracks) onto my Android 2.2.1. This year I primarily use Jog Tracker because … well it uploads my info somewhere online where I can read and minimally track my progress. Last year I used DM (Daily Mile) exclusively by typing my info into my page. I miss not having my info on DM.

    I was hoping that these Android apps would let me do 2 things:
    1. log a newly saved route using MT that is NOT on my DM list of routes.
    2. Load my MT activity route onto my DM page using T2M as if I typed it in manually.

    I find no way to accomplish this. Am I dreaming or is this real and perhaps there is something I am misunderstanding?

    Thanks in advance.

    1. @Nick

      If you look at this video (

      ) It should show how to upload new routes to DailyMile. You need to use the “Share with Friends” option to export the GPX file. The one thing to note is that you need to give your workouts simple names in My Tracks in order for Tracks2Miles to be able to find the distance and time information when exporting the GPX file. I am working on a new patch for My Tracks to make this work with any name.

      Launching Tracks2Miles directly and hit the “Post new workout” button it will allow you to type in the data as if you used the web page and reuses existing routes, unfortunately the API does not support all of the features of the website so you can not set things like effort and weather, but the important bits are there.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.