A beautifully minimal and responsive timer app built in Kotlin for Android. Features a retro-style display with a real-time foreground dynamic notification that shows the timer even when the app is closed.
- Start, pause, and reset the timer with clean, circular buttons
- Millisecond-precision timer
- Retro pixel font for a nostalgic look
- Foreground notification service that:
- Displays the live timer
- Continues even when app is closed
- Reflects pause/reset states in real time
- Custom UI with purple-themed aesthetic
- Kotlin
- Android SDK
- Handler & Runnable for timekeeping
- Foreground Service for persistent notifications
- NotificationChannel (Android O+)
- Custom XML layout for styling and animation
- Uses
SystemClock.elapsedRealtime()to measure time accurately - Ticks every 10ms for smooth hundredths display
- Stops/resumes based on pause/play buttons
TimerServiceruns in the background- Updates notification text via a handler every 10ms
- Reacts to
START,PAUSE, andRESETintents from the app
| Button | Function |
|---|---|
| ◯ (Start) | Starts the timer and notification |
| ⏸️ (Pause) | Pauses both the timer and the notification |
| ❌ (Reset) | Resets time to 00:00:00 everywhere |
- Clone the repo or download the project
- Open in Android Studio
- Build & run the app on a physical/emulated device (Android 8.0+)
- Grant notification permissions if prompted
- AndroidX Core & AppCompat
NotificationCompatfor backwards-compatible notifications- Custom font and vector assets from
res/
- Add a flowing side menu (optional)
- Export timer sessions to file or share
- Dark mode support
This app is a personal learning project. Feel free to fork and modify it. Attribution appreciated!
Designed & developed with 💜 by Aoun Raza