Files

9.3 KiB
Raw Permalink Blame History

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.