https://github.com/czesctuklap/countdown-timer
This Android app allows users to set, start, pause, stop, and dynamically adjust a countdown timer. It utilizes a modular architecture with multiple fragments and an object-oriented approach with a dedicated class for timer logic. Features include time input in minutes and seconds, timer controls, dynamic adjustments and sound notification.
https://github.com/czesctuklap/countdown-timer
android countdown-timer fragments fragments-layout oop timer
Last synced: 2 months ago
JSON representation
This Android app allows users to set, start, pause, stop, and dynamically adjust a countdown timer. It utilizes a modular architecture with multiple fragments and an object-oriented approach with a dedicated class for timer logic. Features include time input in minutes and seconds, timer controls, dynamic adjustments and sound notification.
- Host: GitHub
- URL: https://github.com/czesctuklap/countdown-timer
- Owner: czesctuklap
- Created: 2024-11-24T18:36:46.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-24T19:16:03.000Z (6 months ago)
- Last Synced: 2025-02-03T14:40:02.379Z (4 months ago)
- Topics: android, countdown-timer, fragments, fragments-layout, oop, timer
- Language: Kotlin
- Homepage:
- Size: 104 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Countdown Timer
A simple Android Timer app in Kotlin, which allows users to set a countdown timer, start/pause/stop it, and adjust the timer dynamically.
### Design Principles and Architecture
- **Fragments**: The app uses multiple fragments (`FragmentForm` for input and `FragmentMain` for displaying and controlling the countdown) to promote a modular design, which allows for better reuse and maintainability.
- **Object-Oriented Design**: The app follows object-oriented principles like encapsulation, where the `CountdownTimerManager` class encapsulates all the timer-related logic. It also employs separation of concerns by keeping the UI logic separate from the business logic, ensuring the app is modular and easier to extend or maintain.### Components
- **`MainActivity`**: Initializes the app and displays the `FragmentForm`.
- **`FragmentForm`**: UI to set timer duration in minutes and seconds.
- **`FragmentMain`**: Displays the timer and allows controls for starting, pausing, stopping, and adjusting time.
- **`CountdownTimerManager`**: Handles all the timer logic - start, pause, stop, adjust time.### Key Features
- **Set Timer**: Input minutes and seconds.
- **Start/Pause/Stop**: Control the countdown.
- **Dynamically Adjust Time**: Add or subtract time in predefined increments.
- **Notifications**: Alarm and toast when time is up.### Preview
