ulTrain for Android Is Here

After months of building it properly, ulTrain is now a native Android app on Google Play. Same plans, same numbers, same privacy as the iPhone version.

A runner in a park checking her phone in one hand and her watch on the other wrist.

I have been an Apple person for years. I know, I know.

But most of the runners I train with are on Android, and telling them “sorry, iPhone only” got old fast. So we built it. Properly.

This is not a wrapper. It is not the iPhone app in a different shell. It is a native Android app, written in Kotlin and Jetpack Compose, built around Material 3, using Health Connect and Android widgets like an Android app should.

What is in it

The whole thing, more or less. The four plan types. Strength routines and live workouts with rest timers. Health Connect import with duplicate detection. The community race directory. Analytics, training load, streaks. Home screen widgets.

If you have used ulTrain on an iPhone it will feel familiar. If you are coming to it fresh on Android, it will feel like an Android app, because it is one.

A runner walking a tree-lined park path, looking at her phone.

Where Android is still catching up

I would rather be honest about this than have you find out the hard way. A few things are on iPhone and not yet on Android:

  • Pounds display is not everywhere in the strength screens yet, some still show kilograms only
  • The live workout does not yet show your last session’s numbers in the PREVIOUS column
  • Personal Coach, the on device training summaries, is iPhone only for now

All three are in active development and near the top of the roadmap.

Your data moves with you

The two apps share the same backend. Log a run on Android and it is there when you sign in on an iPhone, and the other way round. Same calculations, same units, same private by default setup. If you switch phones, your training comes with you.

Get it

It is on Google Play now, free, with the same 7 day Pro trial as iPhone.

If you have been waiting for this, thank you for being patient. Now go and tell me what is missing.