Wayfinder
Wayfinder is a SwiftUI navigation app that turns natural-language travel preferences into routes.
Setup
- Open
Wayfinder.xcodeprojin Xcode. - Copy
Config.xcconfig.exampletoConfig.xcconfig. - Fill in the services you want to use in
Config.xcconfig. The Xcode target automatically loads this gitignored file throughWayfinder.xcconfig. - The supported settings are:
VALHALLA_BASE_URL(defaults to the live public Valhalla endpoint)VALHALLA_API_KEY(optional; for hosted Valhalla providers)GRAPHHOPPER_API_KEYOPENROUTESERVICE_API_KEYOPENROUTER_API_KEY
Secrets are loaded at runtime from environment variables or Info.plist substitutions and are never committed.
Architecture
- SwiftUI + MVVM
- SwiftData for profile and saved-route persistence
- Protocol-based repositories with dependency injection
- MapLibre Native 6.28 with bundled OpenStreetMap/terrain/satellite/hybrid styles
- OpenStreetMap raster tiles and Nominatim search
- Valhalla routing for driving, cycling, and walking, with GraphHopper and OpenRouteService failover
- Route time, distance, and Valhalla-reported toll, highway, ferry, and access warnings
- Native transit directions when transit is selected
- AI-requested waypoint stops and GraphHopper custom-model preferences
- OpenRouter structured preference interpretation with a deterministic offline parser
- Account-free launch with a one-time, locally persisted feature tour
The map rendering boundary is isolated in OpenStreetMapView, while all route, place, and prompt logic stays independent of the renderer.
Log in or sign up for Devpost to join the conversation.