Skip to content
/ Wav Public

iOS labor contraction timer with Live Activities, Dynamic Island, and real-time guidance. Built with Swift 6, SwiftUI, and SwiftData.

License

Notifications You must be signed in to change notification settings

eddmann/Wav

Repository files navigation

Wav icon

Wav

A labor contraction timer for iOS. Track waves, check guidance, know when to go.

Features

  • Simple timing - One-tap start/stop to record each contraction with duration and frequency
  • Intensity tracking - Rate contractions from slight to intense for pattern awareness
  • Labor rules - Built-in 5-1-1, 3-1-1, 3x1, and 2x1 rules plus custom thresholds
  • Live Activity - Monitor timing from your Lock Screen and Dynamic Island
  • Pattern guidance - Real-time assessment of labor progression with visual cues
  • Export summary - Share your session as PDF or text

Screenshots

Timing view Guidance view Settings view

Live Activity on Lock Screen

Installation

Open in Xcode and run on your device or simulator.

git clone https://github.com/eddmann/Wav
cd Wav
open Wav.xcodeproj

Usage

First Launch

  1. Accept the medical disclaimer
  2. Configure your preferred terminology and labor rule in Settings
  3. Tap Start when a contraction begins
  4. Tap Stop when it ends
  5. Rate the intensity
  6. Repeat - the app tracks duration, frequency, and pattern state

Labor Rules

Rule Description
5-1-1 Contractions 5 minutes apart, ~1 minute long, for 1 hour
3-1-1 Contractions 3 minutes apart, ~1 minute long, for 1 hour
3x1 in 10 3 contractions of at least 1 minute within 10 minutes
2x1 in 10 2 contractions of at least 1 minute within 10 minutes
Custom (interval) Configure your own interval, duration, and sustain thresholds
Custom (count) Configure count of contractions within a time window

Live Activity

When timing is active, a Live Activity appears on your Lock Screen showing:

  • Current contraction timer
  • Start/stop controls
  • Recent statistics (average duration, count, average frequency)

The Dynamic Island shows a compact view with the current timer.

Requirements

  • iOS 17.0+
  • iPhone

Tech Stack

Swift 6, SwiftUI, SwiftData, WidgetKit, ActivityKit, App Intents

Project Structure

Wav/
├── Models/          # SwiftData models (Session, Contraction, AppSettings)
├── Stores/          # @Observable state management
├── Views/           # SwiftUI views
├── Shared/          # Live Activity attributes and widget sync
└── Utilities/       # Formatters, haptics, constants

WavWidgets/          # Live Activity widget extension
WavTests/            # Swift Testing test suite

Disclaimer

Wav is a timing tool only. It does not provide medical advice. Always consult your healthcare provider or maternity unit for guidance on when to seek care during labor.

License

MIT

About

iOS labor contraction timer with Live Activities, Dynamic Island, and real-time guidance. Built with Swift 6, SwiftUI, and SwiftData.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published