Skip to content

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.

Notifications You must be signed in to change notification settings

czesctuklap/countdown-timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

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

image

image

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages