Skip to content

Winter

An open-source app for iPhone and iPad that lets gliding club members log their maintenance hours in two taps, offline, and sends them to zweef.app.

AI-assisted

For

BZC

Stack

iOS · Swift · SwiftUI · Xcode Cloud

Role

Developer

Year

2026

State

Active
Winter

Every winter, the gliders trade the sky for the workshop. Club members owe the club a number of maintenance hours, on the aircraft and on the winch, and at my club those hours belong in zweef.app, where the board approves them. Getting them there meant signing in and typing start and end times afterwards, from memory.

Winter turns that into a shared iPad on the workshop wall. Members don't log in: they tap their name to start a timer and tap it again to stop. Picking what they worked on is optional and comes from the club's own material list in zweef.app. Internet in a hangar is unreliable, so everything stays on the iPad until someone taps Upload. Timers still running at closing time stop by themselves, and anyone can stop a timer someone else forgot.

Before writing much code, I wrote down the specification and the decisions behind it: twenty-one short decision records so far, each explaining why something works the way it does. I built the app with Claude Code, and those documents did the steering.

Testing the zweef.app API against a real club turned up behaviour the documentation doesn't mention. The endpoint for the club name returns a server error and the one for maintenance periods doesn't exist, so the club types its own name during setup and the app reads the period from existing registrations.

The hardest trade-off was the API key. zweef.app has no scoped keys, so the key on that iPad opens the club's entire account. I considered a proxy in between and decided against it. The key lives in the Keychain, and the setup says plainly what it unlocks and how to replace it when a device goes missing. For the same reason App Review can't be given a real key, so the app has a demo club anyone can open from the first screen.

It's a native SwiftUI app for iOS and iPadOS 26 with SwiftData and Swift 6 strict concurrency: one universal app for iPhone and iPad, in English, Dutch and French.

Outcome

Winter went from first commit to App Store submission in under a week. It is open source under the MIT licence and works for any club on zweef.app; setting it up takes an API key and about an hour. This winter is its first season in the workshop at my own club.

iPad

iPhone