Back to work
Native macOS app · 2026

Clockio

A native macOS clock, screensaver, and to-do companion — multiple clock faces, a calm full-screen mode, and a build that ships with its own visual-QA pipeline.

Type Personal product
Role Product · Design · Swift engineering
Stack Swift · SwiftUI · AppKit
Year 2026
Clockio — the gallery view with a live clock face, style picker, and background presets

Brief

A clock app is a deceptively good test of native-app craft: it lives full-screen, it has to look right in every style, and small persistence or layout bugs are glaring. The brief — and the fun — was a genuinely native SwiftUI/AppKit clock that doubles as a screensaver and a lightweight to-do surface, built to a high visual bar.

Approach

Clockio is a Swift package built with SwiftUI and AppKit, migrated from an earlier Electron prototype to go fully native. It offers multiple clock styles, a screensaver mode, and an integrated to-do list with add, edit, complete, reorder, and persistence across restarts.

The interesting engineering is in how it's verified without a person watching. The app binary includes an offscreen SwiftUI snapshot mode that renders each clock style, the settings, and the screensaver to PNG with no screen-recording permission, plus a snapshot suite and a temp-directory smoke test for the full add/edit/complete/reorder/restart cycle. Core behaviour is also covered by an assertion-based executable that runs in Command Line Tools environments.

Clockio — full-screen screensaver mode
Clockio — digital clock with the integrated to-do list on a silk background
Clockio — settings and clock-style configuration

Outcome

The result is a small app that feels properly native rather than a wrapped web view, and a test setup that catches visual and persistence regressions automatically — a snapshot per style and a headless smoke test — so the high bar holds as new styles get added.

Build and documentation available on request.

The macOS app, the snapshot-QA approach, and the to-do persistence model can be shared for review.

Next project Audio Classification