Logging at the helm#
Three big hold-to-confirm buttons at the bottom of the Helm tab log the six boat events: voyage start and end, engine on and off, sails up and down. Each hold is saved on the phone at once, with or without signal. The boat’s position is added afterwards, whenever GPS has one.
How to use it#
Open the Helm tab and glance at the GPS line near the top. “Good fix” means a position is ready.
Press and hold “Start Voyage” for 0.7 seconds, until the ring around the button completes and you feel a tap.
Hold the Engine or Sails button to log the next state. The label shows what the hold will log: “Engine On” or “Engine Off”, “Hoist Sails” or “Douse Sails”. A small chip in the corner shows the current state (ON/OFF, UP/DOWN).
If no voyage is running, holding Engine or Sails starts one for you. The buttons look dimmed then, but they still work.
Hold “End Voyage” to finish. If the engine is still on or the sails are still up, they are logged as off and down first.
Use the “Log” / “Map” switch to see the event list or the live map.
Check the status line near the top any time. It reads “No active voyage”, or “Active”, the voyage name, “Engine ON” and “Sails UP” when true, then distance and elapsed time. It refreshes every minute.
While a voyage runs, the Voyage button shows the distance so far. When idle it says “press & hold”.
What happens behind the scenes#
One hold is one save on the phone, made before any GPS work starts. That is why logging works with no signal at all.
The position is added afterwards. A GPS fix from within 60 seconds of your tap is used. If there is none, the next point recorded on the voyage fills it in. End Voyage cannot wait for later points, so it takes a recent fix or asks for a one-shot fix.
When Engine or Sails starts a voyage, the app first logs “Start Voyage” a moment earlier, so the timeline begins correctly (WAK-38).
End Voyage logs “Engine Off” and “Sails Down” first when needed, then the end event, all in one save. Tracking stops and the distance is finalized (WAK-39).
Wake asks for location permission on your first tap, and only for “While Using”, never “Always”. Background location runs only while a voyage is being tracked.
Known limits#
An event can be saved without coordinates, for example when GPS has no fix yet. The log marks it with an amber warning triangle in place of the distance. While GPS is unavailable, a banner says “GPS unavailable — next event will save without coordinates”, and it goes away when GPS recovers.
If you deny location access, nothing is blocked: every event still saves, just without coordinates, and the GPS line reads “Location off” with “Enable in Settings”.
End Voyage can only use a recent fix, because tracking has already stopped by then.
Voyages are named by their date until custom names arrive (WAK-8).
On the iPhone (iOS 26) the first tap on Apple’s own switches was sometimes ignored. All switches are now custom-built, and the fix works on the device. The cause was never found, so it is re-checked on a real iPhone before each release.
Where it lives#
ios/Wake/Views/ (HelmView.swift, ActionDeck.swift, HoldToConfirmButton.swift, HelmStatusReadout.swift, GPSStatusRow.swift, MissingCoordsBanner.swift, HelmEventLog.swift, EventRow.swift, WakeSegmentedControl.swift), ios/Wake/Services/ (LocationService.swift, VoyageTracker.swift)