We will be undergoing planned maintenance on Oct 7th 6:00AM UTC / Oct 7th 2:00AM ET

Inspiration

Slopes is one big inspiration for the app: It's a great package of remembering and reviewing my snowboarding days in the mountains. And I wonder if I can build something similar for my summer days, camping and hiking.

Flighty offered some inspiration on the value of having a complete history of things in one place. It also gave me the idea of providing one entry as a gift trial, so the user can see for themselves on how the app works.

What it does

  • Import your hiking history from Health directly. (Alternatively, import from Garmin or AllTrails or other apps via GPX or FIT files.)
  • See your stats one one place, including elevation gain, distance, duration, as well as calories burned and heart rate zones.
  • Review your hike with an interactive map, and charts that display your speed, elevation profile, hear rate zones, and photos, respectively.
  • Bookmark or rate your hikes. Search and find your past activities. Compare your runs on the same trail over time — are you doing faster or slower?
  • Group hikes into a trip, for multi-day backcountry camping trips.
  • Share your hike or trip with beautifully designed postcards, complete with the map or your photo, as well as brag-worthy stats and metrics.

How we built it

  • The app is poised to be a native-first iOS app, leveraging system features and design elements where possible. It uses Core Data and CloudKit for storage and data sync. SwiftUI is used throughout for a consistent yet polished look that feels at home on an iPhone.
  • RevenueCat is employed for membership and purchase history management/reading. We are sticking with subscriptions and a one-off purchase for the membership, but are using detailed user information to control how the app would behave when the user didn't convert from a free trial, or when the user's membership expired.
  • Claude Code was instrumental doing the heavy-lifting, and it ensured code quality with tests that guard against regressions. Claude Design was also very helpful especially at the early stage — we could explore different design directions simultaneously without slowing down.

Challenges we ran into

  • We are using more RevenueCat features than in our previous projects (where we only checked for a current entitlement). Testing and designing were thankfully made easy with mock products and entitlements with RevenueCat's SDK.
  • Apple deprecated CLGeocoder in favour of MapKit. But the replacement isn't nearly as good. We took a detour and continued our usage of CLGeocoder despite the deprecation warning.
  • Route-smoothing and rest period identification were both hard problems that required a dozen iterations. We also enlisted friends to provide us with AllTrails and Garmin export data for tests.
  • Claude Code and Claude Design, at their current stage, struggle with idiomatic iOS design. I often need to do hand polishing on a design element, set up a paradigm, before handing it back to Claude Code for implementation.

Accomplishments that we're proud of

  • Building and shipping the app in under a month, with high quality on code and design — this ought to be something. We also received great feedback from friends and strangers alike.
  • The app supports Accessibility (VoiceOver and Dynamic Text Size)
  • The app is localized to 17 locales. Localized measurements of distance (miles vs. kilometres), elevation (feet vs. metres), and workout energy (kilocalories vs. kilojoules) are also considered.

What's next for Waymark: Journal for days outdoors

The project started on July 13th, and the first version hit the App Store today, on August 5th. We will continue to improve it with features that were tabled during the course of Shipaton.

Built With

Share this project:

Updates

Submission history