⚠️ RETIRED: This native Android implementation has been retired. Please use the Flutter app instead, which provides the same features with cross-platform support.
Native Android implementation of the Mr. Pomodoro timer app built with Jetpack Compose and modern Android development practices.
This native Android app is no longer actively maintained.
The project has transitioned to a Flutter-based cross-platform implementation which provides:
- Single codebase for iOS and Android
- Consistent UI/UX across platforms
- Easier maintenance and updates
- 200+ comprehensive tests
➡️ Please use the Flutter app for all new development and contributions.
- Full Pomodoro Timer - Complete timer functionality with circular progress indicator
- Session Management - Focus, short break, and long break sessions
- Statistics Tracking - View productivity metrics by day, week, month, or all time
- 5 Themes - Classic Red, Ocean Blue, Forest Green, Midnight Dark, Sunset Orange
- Background Service - Timer continues running when app is backgrounded
- Notifications - Progress updates and completion alerts
- App Shortcuts - Quick actions from launcher (Start Focus, Short Break, View Stats)
- Privacy First - All data stored locally with Room database
![]() |
![]() |
![]() |
| Focus Mode | Break Time | Your Progress |
- Android Studio: Hedgehog (2023.1.1) or newer
- JDK: 17 or higher
- Android SDK: API 35 (Android 15)
- Minimum Android Version: API 33 (Android 13.0)
# Clone the repository
git clone https://github.com/avtansh-code/pomodoro_timer.git
cd pomodoro_timer/native_apps/android
# Build the project
./gradlew build
# Run unit tests
./gradlew test
# Install on connected device/emulator
./gradlew installDebug- Open the
/native_apps/androiddirectory in Android Studio - Wait for Gradle sync to complete
- Select a device or emulator
- Click Run (
▶️ ) or pressShift + F10
The app follows Clean Architecture principles with MVVM pattern:
├── domain/ # Business logic and models
│ ├── model/ # Data models
│ ├── repository/ # Repository interfaces
│ └── usecase/ # Business use cases
│
├── data/ # Data layer
│ ├── local/ # Room database & DataStore
│ └── repository/ # Repository implementations
│
├── presentation/ # Presentation layer
│ └── viewmodel/ # ViewModels with StateFlow
│
├── ui/ # UI layer
│ ├── screens/ # Compose screens
│ ├── components/ # Reusable UI components
│ ├── navigation/ # Navigation setup
│ └── theme/ # Material3 theming
│
├── service/ # Background services
│ ├── TimerService.kt
│ └── NotificationHelper.kt
│
└── di/ # Dependency injection (Hilt)
- UI: Jetpack Compose with Material3
- Architecture: MVVM + Clean Architecture
- Database: Room (SQLite)
- Preferences: DataStore (Preferences)
- Async: Kotlin Coroutines + Flow
- DI: Hilt
- Testing: JUnit, MockK, Turbine
native_apps/android/
├── app/
│ ├── src/main/
│ │ ├── java/com/pomodoro/timer/ # Source code
│ │ ├── res/ # Resources
│ │ └── AndroidManifest.xml
│ ├── build.gradle.kts
│ └── proguard-rules.pro
├── gradle/
│ └── libs.versions.toml # Dependency versions
├── build.gradle.kts
├── settings.gradle.kts
└── README.md
Key configurations in build.gradle.kts:
android {
compileSdk = 35
defaultConfig {
minSdk = 33
targetSdk = 35
versionCode = 4
versionName = "1.1.1"
}
}Major dependencies (see gradle/libs.versions.toml):
- Compose BOM 2024.12.01
- Room 2.6.1
- Hilt 2.54
- Kotlin 2.0.21
- Coroutines 1.9.0
- Main README - Project overview
- Flutter App - Active development (recommended)
- Legacy iOS App - Legacy iOS implementation
See LICENSE for details.
For the actively maintained Flutter version:
- Issues: GitHub Issues
- Email: support@pomodorotimer.in
Status: Retired (Legacy)
Version: 1.1.1
Min SDK: 33 (Android 13.0)
Target SDK: 35
Built with: Kotlin 2.0.21 + Jetpack Compose
Successor: Flutter App


