Social features for Endomondo Sports Tracker
By
Jesper Majland, Endomondo Android
DeveloperThis post is part of Who's at
Google I/O, a series of guest blog posts written by developers who are appearing in
the Developer
Sandbox at Google
I/O.Endomondo is a sports community focused on
making exercising more fun, more social and more motivating. Android includes great APIs to
support adding a social community to an existing application.
Our
Android app,
Endomondo
Sports Tracker, uses the device’s GPS to measure distance and speed while you are
doing your favorite distance-based sport. The result can be shared, commented upon and
analysed online within the social
Endomondo
community.
Until recently, the Endomondo community has only
been accessible from a desktop web browser. Now we are bringing this community to your
pocket.
So far, we have implemented these three feature areas:
1. Find and connect friends.
We use the
ContactsContract
API to scan the device for local contacts. We then hash-encode the names and email
addresses and send them to our servers to see if they match existing members of the community.
The result is a list of possible friends already using Endomondo. The user can then send a
friend request by clicking on the relevant person.
2. Sync with a cloud service to
get updates.
Once the user has added some friends, we can add some
content from our cloud service.
The
Sample
Sync Adaptor API was exactly what we were looking for. First, we created a new
Endomondo account using the
AccountManager
.
Our next step was to write our own synchronization manager by extending
AbstractAccountAuthenticator
.
When the user logs in or signs up, our app automatically creates a new account. The new
account can be controlled using Android’s built in “Accounts & sync settings”
service.
You can find a very good “how to implement” description here:
part
1,
part
2.
3. Extend the app to access Contact info.
Our in-app friend list now shows a list of all friends in the community, with
a short description of the latest activity and a nice profile picture for each.
We use
QuickContactBadges
to show friends' profile pictures and to quickly pivot to other ways to contact them; perfect
for planning a run together!
When our users and their friends add new
accounts, the Android
ContactsContract
framework will automatically merge contacts, adding a very handy feature to our app without us
having to do anything!
For implementation inspirations, take a look here:
QuickContactsDemo
.
We’re just getting started with adding social dimensions to Endomondo. There
are plenty more exciting developments in the works. One of them is the ability to send pep
talk messages to friends out exercising, directly from the app. You can
download
our app from the Android Market and try it out for yourself.
Any input or good ideas are more than welcome. Please post your feedback in the
comments.
Come see Endomondo in the Developer Sandbox at
Google I/O on May
10-11.Jesper Majland is involved with all parts
of app developing from idea, design and implementation to test/release and bug fixing. In his
spare time, he tries to get outside to bike, ski or go for a short run.Posted by Scott Knaster,
Editor