DK Timer
KotlinJetpack ComposeHiltAndroid
Role
Solo Developer
Timeline
2026–Present
Links
Repository · Release
Status
ACTIVELY MAINTAINED
Context
Built for reliability during physical exercise: a minimal, single-purpose workout interval timer for EMOM and Tabata sessions, rather than a general-purpose fitness app with a timer bolted on.
What I delivered
- Kotlin + Jetpack Compose UI on Material 3, with Hilt for dependency injection and a clean-architecture split across
domain,data, anduilayers. - A drift-free timer engine: every interval boundary is anchored to
startTime + N × intervalMillisand recalculated on each tick, instead of accumulating error through a naivesleeploop. Pause/resume works the same way, accumulating total paused duration and subtracting it from elapsed time (effectiveElapsed = now - startTime - totalPausedMs), so accuracy holds across any number of pauses. - DataStore-backed presets for both timer types, sound feedback on the alarm stream (so it ignores silent mode) and vibration feedback, each independently toggleable.
- Static analysis (detekt) and unit tests running in CI.
Outcome
Shipped and actively maintained, with four tagged releases from v1.0.0 through v2.2.0.