replica(uhr): recon map, feature matrix, reference screenshots
Co-Authored-By: Claude Opus 5.5 <[email protected]>
@@ -0,0 +1,57 @@
|
|||||||
|
feature,area,priority,original,clone,notes
|
||||||
|
Alarm list with on/off switch and next-ring text,alarm,must,yes,no,
|
||||||
|
Add alarm with time picker (dial and keyboard),alarm,must,yes,no,
|
||||||
|
Expandable alarm card (edit in place),alarm,must,yes,no,
|
||||||
|
Repeat days chips,alarm,must,yes,no,
|
||||||
|
Alarm label,alarm,must,yes,no,
|
||||||
|
Delete alarm with undo,alarm,must,yes,no,
|
||||||
|
Vibrate toggle,alarm,must,yes,no,
|
||||||
|
Alarm sound picker with preview (system ringtones),alarm,must,yes,no,
|
||||||
|
Own audio file as alarm sound,alarm,should,yes,no,
|
||||||
|
Pause alarm until date,alarm,should,yes,no,
|
||||||
|
Skip next occurrence (dismiss early),alarm,should,yes,no,from notification
|
||||||
|
Exact scheduling that survives reboot time change and Doze,alarm,must,yes,no,AlarmManager.setAlarmClock
|
||||||
|
Full-screen ringing screen over lock screen,ringing,must,yes,no,
|
||||||
|
Slide control snooze/stop,ringing,must,yes,no,
|
||||||
|
Snooze length setting,settings,must,yes,no,
|
||||||
|
Silence after setting,settings,must,yes,no,
|
||||||
|
Gradually increase volume,settings,should,yes,no,
|
||||||
|
Alarm volume setting,settings,should,yes,no,
|
||||||
|
Volume buttons behaviour (snooze/stop/volume/none),settings,should,yes,no,
|
||||||
|
Start week on,settings,could,yes,no,
|
||||||
|
Upcoming alarm notification with dismiss now,notifications,should,yes,no,
|
||||||
|
Missed alarm notification,notifications,should,yes,no,
|
||||||
|
Snoozed notification with dismiss,notifications,must,yes,no,
|
||||||
|
World clock: local time and date,clock,must,yes,no,
|
||||||
|
World clock: add city via search,clock,must,yes,no,
|
||||||
|
World clock: reorder and swipe to delete,clock,should,yes,no,
|
||||||
|
Analog or digital clock style,clock,should,yes,no,
|
||||||
|
Show seconds,clock,could,yes,no,
|
||||||
|
Automatic home clock when travelling,clock,could,yes,no,
|
||||||
|
Timer keypad h m s,timer,must,yes,no,
|
||||||
|
Run several timers at once,timer,must,yes,no,
|
||||||
|
Timer ring progress +1:00 pause reset delete,timer,must,yes,no,
|
||||||
|
Timer labels,timer,could,yes,no,
|
||||||
|
Timer runs in background with notification,timer,must,yes,no,
|
||||||
|
Timer ringing screen,timer,must,yes,no,
|
||||||
|
Timer sound and vibrate settings,settings,should,yes,no,
|
||||||
|
Stopwatch start stop reset,stopwatch,must,yes,no,
|
||||||
|
Stopwatch laps,stopwatch,must,yes,no,
|
||||||
|
Stopwatch running notification,stopwatch,should,yes,no,
|
||||||
|
Bedtime schedule with wake-up alarm,bedtime,should,yes,no,
|
||||||
|
Bedtime reminder notification,bedtime,should,yes,no,
|
||||||
|
Sunrise alarm (brightening screen),bedtime,could,yes,no,
|
||||||
|
Sleep sounds with timer,bedtime,could,yes,no,own CC0 sounds
|
||||||
|
Screensaver / bedside clock with night mode,display,could,yes,no,DreamService
|
||||||
|
Digital clock widget,widgets,must,yes,no,
|
||||||
|
Analog clock widget,widgets,should,yes,no,
|
||||||
|
World clock widget,widgets,could,yes,no,
|
||||||
|
Next alarm widget,widgets,should,yes,no,
|
||||||
|
Widget style options (theme colours opacity),widgets,should,yes,no,like Wetter
|
||||||
|
Theme system/light/dark and dynamic colour,display,must,yes,no,
|
||||||
|
Expressive design (bottom bar pill cards shapes),display,must,yes,no,
|
||||||
|
Streaming alarm sounds (YouTube Music Spotify Calm),alarm,could,yes,skip,partner accounts
|
||||||
|
Google Assistant Routine,alarm,could,yes,skip,Google service
|
||||||
|
Bedtime mode greyscale and DND,bedtime,could,yes,skip,Digital Wellbeing privileges
|
||||||
|
Sleep tracking cough and snore,bedtime,could,yes,skip,system privileges + Pixel hardware
|
||||||
|
Calendar upcoming events card,bedtime,could,yes,skip,Google Calendar
|
||||||
|
@@ -0,0 +1,141 @@
|
|||||||
|
# Recon map: Google Clock / Pixel Clock (Android)
|
||||||
|
|
||||||
|
Scope: the whole app: alarms, world clock, timer, stopwatch, bedtime, alarm ringing screen, settings, screensaver, home-screen widgets
|
||||||
|
For: personal use, a clock and alarm app without Google services (project NoGooleApps)
|
||||||
|
Date: 2026-10-17
|
||||||
|
|
||||||
|
## Sources
|
||||||
|
|
||||||
|
| # | source | URL | notes |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 1 | help center | https://support.google.com/clock/?hl=en | full settings list (alarms, time and date, display), world clock, timer, widget |
|
||||||
|
| 2 | help center | https://support.google.com/clock/answer/9887159?hl=en | bedtime schedule, reminder, bedtime mode, sunrise alarm, sleep sounds |
|
||||||
|
| 3 | review | https://www.slashgear.com/1540180/android-clock-app-features-you-dont-know | sounds, pause alarm, volume buttons, snooze range, alarm duration, screensaver |
|
||||||
|
| 4 | app store listing | https://play.google.com/store/apps/details?id=com.google.android.deskclock | pitch only, no screenshots saved |
|
||||||
|
| 5 | screenshots | replica/uhr/screens/ref-01..07.png | supplied by user: alarm list (dark), world clock + settings, timer/alarm expanded/alarm sound, missed-alarm notification, ringing screen, launcher icon, stopwatch. Reference only, never shipped |
|
||||||
|
|
||||||
|
## Core loop
|
||||||
|
|
||||||
|
Set an alarm in a few taps and be woken reliably at that time, every time, even with battery saver and Do Not Disturb.
|
||||||
|
|
||||||
|
## Screens
|
||||||
|
|
||||||
|
| ID | screen | route / how to reach | purpose | key components | states seen |
|
||||||
|
| --- | --- | --- | --- | --- | --- |
|
||||||
|
| S01 | Alarm list | tab "Alarm" (default) | all alarms, on/off | top bar + overflow, alarm cards (label, big time + AM/PM, next-ring text, switch, expand chevron), FAB "+" | empty, filled, alarm off (dimmed time), section headers ("Wake up" = bedtime alarm, "Other") (ref-01, ref-03) |
|
||||||
|
| S02 | Alarm expanded | tap a card | edit one alarm in place | label field, time, day chips S M T W T F S, switch, rows: pause alarm, sound, vibrate, delete | expanded (ref-03) |
|
||||||
|
| S03 | Time picker | tap time / FAB | pick hour and minute | M3 clock dial / keyboard input toggle | dial, input |
|
||||||
|
| S04 | Alarm sound | S02 → sound row | choose ringtone | tabs (sounds; streaming partners in original), list with play preview, "add new" (own file) | playing, selected (ref-03) |
|
||||||
|
| S05 | Pause alarm | S02 → pause row | skip until a date | date picker | |
|
||||||
|
| S06 | Clock (world clock) | tab "Clock" | local time + cities | big time with seconds option, date, next alarm, weather line, city cards (name, day offset, time) , FAB add | one city, many (ref-02) |
|
||||||
|
| S07 | Add city | S06 FAB | search a city | search field, result list | empty, results |
|
||||||
|
| S08 | Timer | tab "Timer" | set and run timers | keypad (h m s) + start; running cards: label, ring progress, remaining, +1:00, pause/play, reset, delete; FAB add | idle keypad, running, paused, ringing, several timers (ref-03) |
|
||||||
|
| S09 | Stopwatch | tab "Stopwatch" | measure time, laps | big 00:00.00, buttons start/stop, reset, lap (large pill buttons), lap list | idle, running, stopped, laps (ref-07) |
|
||||||
|
| S10 | Bedtime | tab "Bedtime" | sleep schedule | first-run "get started", bedtime + wake-up times, days, sleep duration, reminder, sunrise alarm, sleep sounds | empty, set |
|
||||||
|
| S11 | Alarm ringing | full screen when an alarm fires | snooze or stop | big time, label, swipe/slide control "Snooze ← ⏰ → Stop", optional weather after stop | ringing, snoozed (ref-05) |
|
||||||
|
| S12 | Timer ringing | full screen / notification | stop or +1:00 | | |
|
||||||
|
| S13 | Settings | overflow → Settings | alarm, time, display settings | rows (silence after, snooze length, alarm volume, gradually increase volume, volume buttons, start week on, home time zone, automatic home clock, style analog/digital, seconds, night mode, timer sound/vibrate) | (ref-02) |
|
||||||
|
| S14 | Screensaver / bedside | overflow → Screensaver; system dream | dim clock on dark screen | analog/digital clock, night mode (red, dim) | day, night |
|
||||||
|
| S15 | Notifications | system | upcoming alarm (dismiss early), snoozed, missed alarm, running timer/stopwatch | notification actions | missed (ref-04) |
|
||||||
|
| S16 | Widgets | launcher | time on home screen | digital, analog, world clock list, next alarm | sizes |
|
||||||
|
| S17 | Lock-screen / quick settings tile | system | next alarm, start timer | | guess |
|
||||||
|
|
||||||
|
## Flows
|
||||||
|
|
||||||
|
```
|
||||||
|
F01 Set a new alarm
|
||||||
|
S01 -> FAB -> S03 pick time -> OK -> S01 (new card, "in 7 h 12 min" toast)
|
||||||
|
happy path clicks: 3 (FAB, dial hour+minute, OK)
|
||||||
|
edge: same time exists, exact-alarm permission revoked, notifications off, battery saver
|
||||||
|
|
||||||
|
F02 Make an alarm repeat on weekdays and name it
|
||||||
|
S01 -> tap card -> S02 -> tap 5 day chips -> label -> collapse
|
||||||
|
happy path clicks: 8
|
||||||
|
|
||||||
|
F03 Wake up
|
||||||
|
S11 rings -> snooze (slide left) -> rings again after 10 min -> stop (slide right)
|
||||||
|
edge: volume buttons set to snooze/stop, phone locked, DND, silent mode, reboot before alarm
|
||||||
|
|
||||||
|
F04 Skip tomorrow's alarm
|
||||||
|
S15 "upcoming alarm" notification -> "Dismiss now" or S02 -> pause until date (S05)
|
||||||
|
|
||||||
|
F05 Run a timer
|
||||||
|
S08 keypad 5 0 0 -> start -> running card -> +1:00 -> rings (S12) -> stop
|
||||||
|
happy path clicks: 4
|
||||||
|
edge: app closed, several timers at once, timer ends while screen off
|
||||||
|
|
||||||
|
F06 Measure laps
|
||||||
|
S09 start -> lap ×n -> stop -> reset
|
||||||
|
|
||||||
|
F07 Add a world clock
|
||||||
|
S06 -> FAB -> S07 search -> tap city -> S06
|
||||||
|
edge: reorder by long press, delete by swipe
|
||||||
|
|
||||||
|
F08 Set a bedtime schedule
|
||||||
|
S10 get started -> wake-up time + days -> bedtime -> reminder -> done (creates the "Wake up" alarm in S01)
|
||||||
|
|
||||||
|
F09 Change alarm sound
|
||||||
|
S02 -> sound -> S04 -> preview -> select / add own file
|
||||||
|
```
|
||||||
|
|
||||||
|
## Components
|
||||||
|
|
||||||
|
| component | variants | states | used on |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| Bottom navigation bar | 5 destinations with pill indicator | selected, unselected | all tabs |
|
||||||
|
| Top app bar | title + overflow menu | | all tabs |
|
||||||
|
| Alarm card | collapsed, expanded | on, off (dim), ringing soon, snoozed | S01, S02 |
|
||||||
|
| Big time text | alarm (56sp bold + small AM/PM), clock (very large), stopwatch (mono digits), ringing (huge) | | S01, S06, S09, S11 |
|
||||||
|
| Switch | M3 with thumb | on, off | S01, S02, S13 |
|
||||||
|
| Day chips | 7 round chips | selected (filled), unselected (outline) | S02, S10 |
|
||||||
|
| Settings row | icon + text + trailing (plus, check, chevron) | | S02 |
|
||||||
|
| FAB | large round "+" | | S01, S06, S08 |
|
||||||
|
| Timer card | ring progress, time, +1:00 pill, play/pause big pill, close | running, paused, ringing | S08 |
|
||||||
|
| Keypad | 0-9, 00, backspace, display h m s | empty, typing | S08 |
|
||||||
|
| Big pill buttons | primary (start/stop), secondary (reset, lap) | | S09, S08 |
|
||||||
|
| City card | name, offset text, time | dragging, swiping | S06 |
|
||||||
|
| Slide-to-act control | snooze ← → stop | idle, dragging | S11 |
|
||||||
|
| Time picker | dial, input | | S03, S10 |
|
||||||
|
| Notification | upcoming, snoozed, missed, timer running, stopwatch running | | S15 |
|
||||||
|
| Analog clock face | own design | | S06, S14, S16 |
|
||||||
|
|
||||||
|
## Inferred data model
|
||||||
|
|
||||||
|
```
|
||||||
|
Alarm id, hour, minute, enabled, days (bitmask Mon..Sun), label, ringtone_uri, vibrate,
|
||||||
|
snooze_until (nullable), skip_until_date (pause), is_bedtime_wake, created_at
|
||||||
|
evidence: S01, S02, help "Set, cancel, or snooze alarms" confidence: high
|
||||||
|
AlarmInstance alarm_id, fire_at (UTC instant), state (scheduled | snoozed | ringing | missed | dismissed)
|
||||||
|
evidence: S11, S15 notifications confidence: medium (needed for snooze/missed)
|
||||||
|
Timer id, label, duration_ms, remaining_ms, state (idle | running | paused | ringing), end_at, created_at
|
||||||
|
evidence: S08 cards confidence: high
|
||||||
|
Stopwatch state, started_at, accumulated_ms, laps[] (lap_ms, total_ms)
|
||||||
|
evidence: S09 confidence: high (single instance)
|
||||||
|
City id, name, country, timezone, sort_order
|
||||||
|
evidence: S06, S07 confidence: high
|
||||||
|
Bedtime enabled, bed_hour, bed_minute, wake_alarm_id, days, reminder_minutes, sunrise (bool), sleep_sound
|
||||||
|
evidence: S10, help "Set a bedtime schedule" confidence: high
|
||||||
|
Settings silence_after_min, snooze_min, alarm_volume, gradual_volume_s, volume_buttons (snooze|stop|volume|none),
|
||||||
|
week_start, home_timezone, auto_home_clock, clock_style (analog|digital), show_seconds,
|
||||||
|
timer_sound, timer_vibrate, night_mode, theme
|
||||||
|
evidence: S13 confidence: high
|
||||||
|
```
|
||||||
|
|
||||||
|
Relationships: Alarm 1-n AlarmInstance, Bedtime 1-1 Alarm (wake-up). No accounts.
|
||||||
|
|
||||||
|
## Feature matrix
|
||||||
|
|
||||||
|
See `features.csv`. Must: 26, should: 17, could: 8, skip: 5.
|
||||||
|
|
||||||
|
## Out of scope (cannot or should not be cloned)
|
||||||
|
|
||||||
|
- Streaming alarm sounds (YouTube Music, Spotify, Pandora, Calm): partner deals and accounts. Own audio files from the device replace them.
|
||||||
|
- Google Assistant Routines: Google service.
|
||||||
|
- Bedtime mode (silence + greyscale), sleep tracking, cough/snore detection, recent bedtime activity: Digital Wellbeing and system privileges, not available to normal apps.
|
||||||
|
- Calendar "upcoming events" card: needs Google Calendar; could later read the local calendar provider.
|
||||||
|
- Weather after the alarm: possible later via the Wetter app's data, not part of the first build.
|
||||||
|
- Google's clock face, ringtones and icons: own designs and own/CC0 sounds.
|
||||||
|
|
||||||
|
## Size
|
||||||
|
|
||||||
|
Screens 17, flows 9, entities 7. Hard parts: (1) reliable alarms (exact alarms, full-screen intent, Doze, reboot, time zone and DST changes), (2) timer and stopwatch running correctly in the background with live notifications, (3) the expressive UI (expanding cards, ring progress, slide-to-act) and widgets. Size: M.
|
||||||
|
After Width: | Height: | Size: 158 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 442 KiB |
|
After Width: | Height: | Size: 206 KiB |
|
After Width: | Height: | Size: 293 KiB |
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 509 KiB |