# 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

**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
```bash
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
