@christopher there's AAT and BRouter on FDroid. I don't know how it works. Check for more info there.
I used one in the past that uploaded to Strava and other services, but i can't find it anymore.
For my part, I wanted to get rid of Endomondo to keep my data on my own server. So I'm working on this personal project (to learn Python and React):
There is still a lot to do (see the issues 🙂) and for now I'm using an existing mobile app that stores the data locally, but it's a start.
And federation would be an great feature.