Go to file
Matt Bruce 01931244e0 Fix overlay opacity setting not being applied
The overlayOpacity setting was being saved but not used. The TopOverlayView
was incorrectly using clockOpacity instead of overlayOpacity, causing the
"Overlay Opacity" slider in settings to have no effect.

Changed ClockOverlayContainer to pass style.overlayOpacity to TopOverlayView,
enabling independent control of overlay opacity separate from clock digit opacity.

Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 20:54:38 -06:00
AudioPlaybackKit Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2025-09-09 09:57:27 -05:00
TheNoiseClock Fix overlay opacity setting not being applied 2026-02-01 20:54:38 -06:00
TheNoiseClock.xcodeproj Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-02-01 18:12:56 -06:00
TheNoiseClock.xcworkspace Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-31 09:43:40 -06:00
TheNoiseClockTests Initial Commit 2025-09-07 20:39:46 -05:00
TheNoiseClockUITests Initial Commit 2025-09-07 20:39:46 -05:00
.gitignore Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2025-09-08 16:29:47 -05:00
AGENTS.md Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-02-01 12:39:50 -06:00
AUDIO_MANAGEMENT_GUIDE.md Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2025-09-08 08:22:20 -05:00
PRD.md Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-02-01 13:54:52 -06:00
README.md Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-02-01 13:54:52 -06:00

TheNoiseClock

TheNoiseClock is a SwiftUI iOS app that blends a bold, full-screen digital clock with white noise playback and a rich alarm system. It is optimized for iOS 18+ with Swift 6, built on a modular architecture, and styled with the Bedrock design system.


App Store Information

App Name

TheNoiseClock

Subtitle (30 chars max)

Clock, noise, and alarms

Promotional Text (170 chars max)

A clean, full-screen clock with ambient soundscapes and a powerful alarm editor. Customize colors, fonts, and glow for a distraction-free display.

Keywords (100 chars max)

clock,alarm,white noise,ambient,sleep,timer,focus,night mode,bedside

Description

TheNoiseClock is a distraction-free digital clock with built-in white noise and a fully featured alarm system. Designed for late-night focus, bedside use, and calm environments, it fills the screen with bold, stable digits and lets you tune the look and sound to your space.

Clock

  • Full-screen, orientation-aware clock with optional seconds and AM/PM
  • Fixed-width digits prevent layout "jumping"
  • Auto-fit sizing and manual scale control
  • Custom fonts, weights, and designs with live preview
  • Glow and opacity controls for low-light comfort
  • Clock tab hides the status bar for a distraction-free display
  • Selectable animation styles: None, Spring, Bounce, and Glitch
  • Modern iOS 18+ animations: numeric transitions, phase-based bounces, glitch effects, and breathing colons

White Noise

  • Multiple ambient categories and curated sound packs
  • Seamless looping with background audio support
  • Quick preview on long-press, instant play/stop controls

Alarms

  • Unlimited alarms with labels, repeat schedules, and snooze options
  • Alarm sound library with preview
  • Vibration and volume controls per alarm
  • Focus-mode aware scheduling

Display Mode

  • Long-press to enter immersive display mode
  • Auto-hides navigation and status bar
  • Optional wake-lock to keep the screen on

What's New

  • Branded launch experience with Bedrock theming
  • Redesigned settings interface with cards, toggles, and sliders
  • Centralized build identifiers via xcconfig

Features

  • Real-time digital clock with full customization
  • Full-screen display mode and Dynamic Island awareness
  • White noise playback with categories and previews
  • Rich alarm editor with scheduling and snooze controls
  • Bedrock-based theming and branded launch
  • iPhone and iPad support with adaptive layouts

Requirements

  • iOS 18.0+
  • Xcode 16+
  • Swift 6

Build & Run

Open TheNoiseClock.xcodeproj and run the TheNoiseClock scheme.

Terminal Build

cd /Users/mattbruce/Documents/Projects/iPhone/TheNoiseClock
xcodebuild -project TheNoiseClock/TheNoiseClock.xcodeproj -scheme TheNoiseClock -destination 'platform=iOS Simulator,name=iPad mini (A17 Pro),OS=18.1' build

Branding & Theming

The app uses Bedrock for theme tokens, settings UI, and the launch experience.

  • Theme: TheNoiseClock/Shared/Design/NoiseClockTheme.swift
  • Branding config: TheNoiseClock/Shared/Design/BrandingConfig.swift
  • Launch screen: TheNoiseClock/Resources/LaunchScreen.storyboard

To generate an app icon in DEBUG:

  1. Open Clock Settings -> Debug
  2. Tap Icon Generator
  3. Export AppIcon.png and drop it into Assets.xcassets/AppIcon

Build Configuration (xcconfig)

Identifiers are centralized in xcconfig files:

  • TheNoiseClock/Configuration/Base.xcconfig
  • TheNoiseClock/Configuration/Debug.xcconfig
  • TheNoiseClock/Configuration/Release.xcconfig

Update COMPANY_IDENTIFIER and DEVELOPMENT_TEAM in Base.xcconfig to migrate to a new account.

Swift access is provided via: TheNoiseClock/Configuration/AppIdentifiers.swift


Architecture

TheNoiseClock follows a clean, modular structure:

TheNoiseClock/
├── AudioPlaybackKit/            # Reusable audio package
├── TheNoiseClock/               # Main app target
│   ├── App/                     # App entry, TabView
│   ├── Configuration/           # xcconfig + AppIdentifiers
│   ├── Features/                # Clock, Alarms, Noise
│   ├── Shared/                  # Theme, branding, utilities
│   └── Resources/               # Bundles, JSON, assets
└── TheNoiseClock.xcodeproj/

Support & Contact

For feedback, feature requests, or support: support@thenoiseclock.app