Skip to content

kreggscode/chess-clock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

♟️ Chess Clock - Professional Android Chess Timer

Chess Clock Kotlin Material Design 3 Min API

🎯 A stunning, professional-grade chess clock for Android with Material Design 3

📱 Download APK📖 Features🚀 Getting Started📸 Screenshots


✨ Features

🎮 Core Chess Clock Functionality

Feature Description
🎯 Dual Timers Separate countdown timers for White & Black players
🔄 Smart Switching Tap your side to stop your timer and start opponent's
⏱️ Time Controls 1, 3, 5, 10, 15, 30, 45, 60, 90 min presets + custom (1-1440 min)
📊 Precision 100ms accuracy with MM:SS display

🎨 Beautiful Design & UX

Design Element Implementation
🌙 Nordic Theme Elegant dark theme with carefully curated colors
📱 Full Screen Immersive, distraction-free chess experience
Animations Smooth card transitions and visual feedback
🎭 Material 3 Modern UI with cards, elevation, and micro-interactions

🔊 Audio & Haptics

Audio Feature Experience
🔊 Smart Sounds Different tones for warnings, critical time, game end
📳 Haptic Feedback Vibration for turn switches and important events
⚙️ Customizable Toggle sounds, vibrations, and low-time warnings

⚙️ Advanced Settings

  • 🎛️ Time Management: Preset selection + custom time picker
  • 🔊 Audio Controls: Individual toggles for all sound types
  • 🎨 Theme Options: Dark/Light theme support
  • 🔋 Power Management: Smart wake lock for uninterrupted play

🚀 Getting Started

Prerequisites

  • Android Studio Arctic Fox or later
  • Android SDK API 24+ (Android 7.0)
  • Kotlin 1.9.10+

Installation

  1. Clone the repository

    git clone https://github.com/kreggscode/chess-clock.git
    cd chess-clock
  2. Open in Android Studio

    • Launch Android Studio
    • Select "Open an existing Android Studio project"
    • Navigate to the cloned directory
  3. Build & Run

    • Wait for Gradle sync to complete
    • Connect an Android device or start an emulator
    • Click the "Run" button (green play icon)

📱 How to Use

Quick Start Guide

Step Action Description
1️⃣ Set Time Choose preset (5min, 10min, etc.) or custom time
2️⃣ Start Game Tap "Start Game" or tap either player area
3️⃣ Play Chess Complete your move → tap your timer to switch turns
4️⃣ Game Over Winner announced when time expires

Advanced Features

  • ⏸️ Pause/Resume: Use the pause button for breaks
  • 🔄 Reset: Confirmation dialog prevents accidental resets
  • ⚙️ Settings: Access via gear icon in top-left corner
  • 🎵 Audio: Customize all sound and vibration preferences

🏗️ Technical Architecture

📁 Project Structure
chess-clock/
├── 📱 app/src/main/
│   ├── 📋 AndroidManifest.xml      # Permissions & app config
│   ├── 🏗️ java/com/kreggscode/chessclock/
│   │   ├── 🎮 MainActivity.kt       # Core game logic & UI
│   │   ├── ⚙️ SettingsActivity.kt   # Settings management
│   │   └── 🔊 SoundManager.kt       # Audio system
│   └── 🎨 res/                      # Resources
│       ├── 📱 layout/               # XML layouts
│       ├── 🎨 values/               # Colors, strings, themes
│       └── 📸 drawable/             # Icons & graphics
├── 📋 build.gradle                  # App dependencies
├── ⚙️ settings.gradle               # Project settings
└── 🚫 .gitignore                    # Git ignore rules

🛠️ Technology Stack

Component Technology Purpose
Language Kotlin 1.9.10+ Modern Android development
Architecture MVVM Pattern Clean code structure
UI Framework Material Design 3 Beautiful, consistent UI
Audio System SoundPool + ToneGenerator Reliable cross-device audio
Persistence SharedPreferences Settings storage
Threading CountDownTimer Precise timing
Build System Gradle 8.2+ Dependency management

🔐 Permissions

Permission Purpose Android Version
WAKE_LOCK Keep screen on during games All versions
VIBRATE Haptic feedback Auto-granted 6.0+

📸 Screenshots

Coming soon - Add beautiful screenshots of your app here


🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

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


🙏 Acknowledgments

  • Material Design 3 for the beautiful design system
  • Nordic Color Palette inspiration
  • Android Developer Community for best practices
  • Chess Community for the inspiration

Made with ❤️ for chess players worldwide

⭐ Star this repo if you find it useful! ⭐

🐛 Report Issues💡 Request Features

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages