Mobile app to generate local walking routes

user profile photouser profile photouser profile photo215 developers have joined this project.

What you will practice

You’ll practice working with the Google Maps API in the context of a native iOS application, a common task for mobile developers working on production apps.

Introduction

This app will take your current location and generate a random walking route of the specified length - measured in either distance or time. It provides a quick and easy way to explore a new area, or get to know a familiar area even better.

Requirements

  • Users can input a desired length of time for the walk (e.g. 15 minutes).
  • The app generates loop walks that return the user to their starting location, avoiding repeated sections wherever possible.
  • The app uses location tracking to guide the user along the route.

The following image shows one way to implement the UI. Feel free to interpret the requirements however you'd like!
Mobile app to generate local walking routes project demo

For an extra challenge

  • Users can input multiple locations or streets to visit. The app will generate routes between them.
  • Users can share walks publicly.

Suggested Implementation

  • We suggest using the Google Maps API — it offers a generous allowance for free usage.
  • Looping routes consist of two sub-routes joined together - one ‘out’ route and one ‘back’ route. To generate interesting routes that don’t go out and back using identical roads, you can add a third waypoint to the generated route, e.g. A - B - C - A. Waypoints can be either randomly generated coordinates or random locations.
  • There are many possible approaches to generating routes that fit within the user’s requirements for time or distance.
    • One approach is to generate a finite set of random routes (waypoint coordinates) and select the one that best matches the user’s criteria.
    • Another approach is to have the algorithm improve on each round of route generation based on the previous route. For example, if the first route your algorithm generates is too long, you can have the algorithm set the coordinates of the previous route as the maximum distance for the next round of route generation, guaranteeing that the next route generated is shorter. If the route is too short, set the previous route’s coordinates as the minimum distance for the next route it generates.
    • Can you think of another route generation method that would work well and minimise generation of unsuitable routes?

References

Hit a programming wall?
Get help from our mentors

  • Post request free
  • First 15 mins free

Suggested languages and frameworks

Swift

Difficulty

hard

Interested in this project?

Shorten your learning curve with on-demand programming help

The awesome set of verified mentors will provide guidance and mentoring help when you are stuck.

Suresh Atta

  • Post request free
  • First 15 mins free
Shorten your learning curve with on-demand programming help

Browse more projects

More coming soon...