Skip to content

arkaceananda/NewYearCountdown

Repository files navigation

New Year Countdown App 🎇

A modern and high-performance Android application built with Kotlin and Jetpack Compose for the UI. This app features a real-time countdown to the New Year with smooth transitions and a custom particle-based firework celebration.

✨ Features

  1. Real-Time Countdown: Accurate calculation of days, hours, minutes, and seconds using the java.time API.
  2. Theme Toggle: Seamless transition between Light and Dark mode with a single tap.
  3. Fireworks: Fireworks automatically appear when the countdown is done. All particle animations are built using Compose Canvas and withFrameNanos.

🛠 Tech Stack

  • Language: Kotlin
  • IDE: Android Studio
  • UI: Jetpack Compose (Material 3)
  • Build System: Gradle (Kotlin DSL)
  • Concurrency: Kotlin Coroutines for the timer loop
  • Animation: Compose Animation API & Custom Canvas Drawing

📂 Project Structure

com.example.newyear  
├── logic  
│   └── CountdownCalculator.kt      # Business logic & time formatting  
├── state  
│   └── CountdownState.kt           # UI State data class  
├── theme  
│   ├── Color.kt                    # Definition for the colors  
│   ├── Theme.kt                    # Custom theme wrapper  
│   └── Type.kt                     # Custom Typography  
├── ui  
│   ├── components  
│   │   ├── AbstractShapes.kt       # Canvas-based background shapes  
│   │   ├── CountdownTimer.kt       # Timer UI components  
│   │   └── FireworksAnimation.kt   # Fireworks particle system  
│   └── screens  
│       └── CountdownScreen.kt      # Main UI layout  
└── MainActivity.kt                 # Entry point & theme state management

Screenshots

Dark Mode Light Mode New Year (Dark) New Year (Light)

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.


activity-graph graph

Built by Arka Aceananda

Releases

No releases published

Packages

 
 
 

Contributors

Languages