MapMyFitness Mobile: Android Challenge README
Overview
The MapMyFitness suite of Web sites --MapMyRun.com, MapMyRide.com, MapMyWalk.com, MapMyTri.com, MapMyHike.com and MapMyFitness.com-- is the premier source of community-based mapping technology and fitness content on the Internet today. MapMyFitness members are able to visualize their health and fitness training progress through the use of maps, training logs, fitness calculators/tools, and user-led community groups.
MapMyFitness Mobile is an extension of the Web-based MapMyFitness community.
Features
- Workout Route Finder -- Search and view routes from the largest public fitness route database available on the Internet (over 1.5 million routes)
- Synchronized Content -- Synchronize MapMyFitness profiles, including "My Routes" section, between the phone and the Web automatically
- Training Logs -- View training logs, scheduled workouts, and add new workouts to MapMyFitness profiles in real-time
- Real-Time GPS Tracking -- Use phone as a fitness "GPS watch" to track workouts in real-time, displaying workout distance, calories burned, speed and pace
- Save Data -- Save routes directly from phone to MapMyFitness profile on the Web
- Elevation profiles -- Elevation profiles for saved routes are viewable from the phone.
Tutorial
Application Notes and Emmulator Workarounds
- MapMyFitness Account -- The submitted application defaults to a demo user account, pre-populated with workouts and routes in the Mountain View, CA area. You may also use a different MapMyFitness profile by changing the login information in the settings.
- Network Connectivity -- Most functionality relies on client/server communications with MapMyFitness.com, so the application should be run from a computer with Internet access to MapMyFitness.com.
- GPS Data -- Since the emulator uses GPS data from a simulated car driving route, the data saved from GPS workouts will reflect the simulated route. As such, the average paces and speeds will not be representative of the "real life" scenarios for a runner. The GPS feature in the "My Training" section does give a good general idea of how the application will work. Additionally, the GPS simulator often stops moving, resulting in speed and pace during workouts of "0."
- Reverse Geocoding -- Since the Android reverse geocoding solution is incomplete, we are using hardcoded location strings to populate some forms. When a mature reverse geocoding solution is available, the forms will be populated with information from the current reverse geocoded GPS location.
- Calorie Calculations -- Calorie calculations are made with algorithms tuned for cycling. MapMyFitness supports calorie calculations for multiple activity types, but since the GPS data feed in the emmulator most closely represents cycling speeds, this is what we have used for the prototype. On future versions on real hardware, the algorithm will be tuned based on the activity being performed.
Future Plans
- Additional Visualizations -- Future versions will include additional visualizations of workout data. For example, speed charts over time and weekly and monthly calendars that track training activity.
- Calendar Integration -- We plan on integrating our training log data into Android calendering solutions.
- Driving Directions -- We currently display basic driving directions to the start of the route based on data returned from the Android API. We plan on further enhancing this feature by partnering with a real-time driving directions application provider, or by further developing this feature ourselves.
- Multi-Phone Features -- We plan on adding features that allow friends running the MapMyFitness mobile application to communicate with each other. For example, friends will be able to notify each other when they are participating in a fitness activity within a certain distance of each other.
- Enhanced Media Features -- We plan on allowing the user to stop and take pictures or videos along the route. When the route is saved, the photos will then be geo-tagged and uploaded to an enhanced version of MapMyFitness.