Tide

Twenty-four hours of tide, sun and moon in one glance.

Android home-screen widget · Bremerton, WA · dozenal or hourly · computed on the phone

Download APK

Android 8+ · arm64 · no Google account needed · source on GitHub

The same chart as the inksurf e-ink tide panel, as a widget you can stretch to any size. Now is the line down the middle: twelve hours behind on the left, twelve ahead on the right. It comes in two editions — pick either from the widget list, or place one of each.

The Tide widget, dozenal edition: cyan tide fill, sky coloured by sun and moon, sun and moon altitude curves, dozenal times

Dozenal edition

The Tide widget, hourly edition: the same chart with times in HH:MM

Hourly edition

Reading it

No network

The tide is predicted on the phone from NOAA's harmonic constants for station 9445958, the same prediction method NOAA uses. Across a full year of hourly samples it matches NOAA's published predictions to 0.07 ft RMS, 0.25 ft at worst. Sun and moon positions are computed the same way, so the app doesn't ask for network access at all.

How it's drawn

A Rust renderer draws the chart at the widget's exact pixel size, so every line stays one pixel wide whether the widget is a sliver or half the screen. It composites front to back: the labels go down first, coloured as the solid fill beneath them with their own colour XOR'd in, so they contrast with whatever they sit on — and since anything drawn later lands behind them, no line or curve ever runs thru a digit.

Updates

The widget redraws every ten minutes, on the minute the dozenal time ticks over. Android only schedules that exactly if you allow it: open the app and tap Allow exact :X5 updates (Alarms & reminders). Without it, Android may run each update up to ten minutes late. A sleeping phone isn't woken; the chart catches up when the screen comes on.

It's Bremerton only, in Pacific time, for now.

Get it

Download APK

Signed, arm64, installs directly — no store account. Then long-press your home screen → Widgets → Tide, and pick dozenal or hourly. Source at github.com/nickspiker/inksurf.