A private, offline Android alarm clock for building mornings around meaningful goals. Paper Clock stores everything on the device and bundles its alarm sounds in the app.
Requirements: Android SDK platform 36, JDK 21 or newer, and an Android device/emulator running API 26+.
export ANDROID_HOME=/path/to/Android/sdk
./gradlew assembleDebugThe debug APK is written to app/build/outputs/apk/debug/app-debug.apk.
GitHub Actions builds an installable debug APK for every pull request targeting main and publishes it as a workflow artifact. Every push to main also creates a GitHub Release, tags it as v<versionName>-build.<runNumber>, and attaches the APK. These builds use the standard Android debug signing key; they are intended for personal device installation rather than Play Store distribution.
- Tap ADD ALARM to set a time, repeat days, label, optional linked goal, chosen sound, and vibration.
- Tap GOALS then NEW GOAL for the four-stage flow: title and note, target date, morning alarm, then sound.
- Give exact-alarm access when Paper Clock presents its settings card. Android 13+ also requests notification access at launch.
- When an alarm rings, Paper Clock opens a lock-screen-safe full-screen view and loops its selected sound until the large DISMISS button is pressed.
- Kotlin, Jetpack Compose Material 3,
ViewModel, andStateFlow - Room database and repository under
app/src/main/java/com/paperclock/data - Exact
AlarmManagerscheduling, broadcast delivery, boot/package replacement recovery, full-screen activity, and foregroundSTREAM_ALARMplayback underapp/src/main/java/com/paperclock/alarm - Manual application-scoped dependency container in
PaperClockApp - Room schema snapshots:
app/schemas/com.paperclock.data.ClockDatabase/
The source audio files were inspected before integration: all are MP3 at 44.1 kHz / 192 kbps, with durations from about 10.5 to 19.4 seconds. Their sanitized Android raw resources and display names are mapped in SoundCatalog.kt.
| Resource | Display name |
|---|---|
beep_beep_beep |
Beep Beep Beep |
good_morning_sunshine |
Good Morning Sunshine |
harp_smash |
Harp Smash |
iron_paradise |
Iron Paradise |
lovely_flute_wakey_wakey |
Lovely Flute (Wakey Wakey) |
old_school |
Old School |
ring_ring |
Ring Ring |
the_roar |
The Roar |
The reference images informed the near-black, charcoal, and restrained gold visual direction, oversized uppercase typography, generous spacing, and geometric hero panels. No reference imagery is packaged in the Android application.