Skip to content

ikrishanaa/Yeardots

Year Dots - Your Year in 365 Dots

Year Dots Icon

A minimalist Android wallpaper that visualizes your year's progress, one day at a time

Platform Language Min SDK License Release


📖 About Yeardots

Yeardots is a minimalist life calendar and productivity wallpaper for Android that visualizes your year as a 365-dot grid. It transforms your home screen into a daily reminder of time's passage (Memento Mori), helping you beat procrastination and live more intentionally.

"We have two lives, and the second begins when we realize we only have one." — Confucius

Designed for fans of Stoicism, digital minimalism, and quantifiable self-improvement, Yeardots offers a quiet, offline, and battery-friendly way to stay visualized on your long-term goals. Every midnight, one more dot fills in—nudging you to make today count.


✨ Features

Core Functionality

  • 🗓️ 365-Dot Calendar Grid - Visual representation of the entire year
  • 🔄 Automatic Daily Updates - Wallpaper refreshes at midnight using WorkManager
  • 🎨 Fully Customizable Colors - Choose colors for past, present, future, and background
  • 🔲 Four Dot Shapes - Circle, Rounded Square, Square, and Pill
  • 📏 Four Size Options - Tiny, Small, Medium, and Large dot densities
  • 👁️ Live Preview - See changes in real-time before applying

Privacy & Performance

  • 🔒 100% Offline - No internet permission, no tracking, zero ads
  • 🔋 Battery Efficient - Optimized background tasks with minimal battery impact
  • 🌙 AMOLED-Friendly - Dark backgrounds conserve battery on modern displays
  • 🚫 No Data Collection - Your privacy is guaranteed

📱 Screenshots


📥 Installation

Option 1: Download APK (Recommended)

  1. Go to Releases
  2. Download the latest YearDots-v*.apk
  3. Install on your Android device (you may need to enable "Install from Unknown Sources")

Option 2: F-Droid (Coming Soon)

Year Dots will be available on F-Droid repository soon. See our Publishing Guide for details on F-Droid submission.

Option 3: Build from Source

git clone https://github.com/ikrishanaa/Yeardots.git
cd year-dots
./gradlew assembleDebug

🚀 Quick Start

  1. Install the app using one of the methods above
  2. Open Year Dots and configure your preferred colors
  3. Tap "Set Wallpaper" to apply
  4. That's it! Your wallpaper will auto-update daily at midnight

Customization Options

  • Colors: Customize past days, today, future days, and background
  • Shapes: Choose from Dot, Rounded, Square, or Pill
  • Size: Select Tiny, Small, Medium, or Large density
  • Preview: See all changes in real-time before applying

🛠️ Technical Stack

Component Technology
Language Kotlin
UI Framework Jetpack Compose (Material 3)
Background Tasks WorkManager
Data Persistence DataStore (Preferences)
Graphics Engine Android Canvas API
Architecture MVVM-inspired, Repository pattern

Key Dependencies

  • androidx.work:work-runtime-ktx - Daily wallpaper updates
  • androidx.datastore:datastore-preferences - Settings storage
  • androidx.compose.material3:material3 - Modern UI components

📁 Project Structure

app/
├── core/
│   └── WallpaperGenerator.kt      # Canvas rendering logic
├── data/
│   └── SettingsRepository.kt      # DataStore wrapper
├── worker/
│   └── WallpaperWorker.kt         # Background update worker
├── util/
│   └── WorkScheduler.kt           # Task scheduling
├── receiver/
│   └── BootReceiver.kt            # Reschedule after reboot
├── ui/
│   ├── components/                # Reusable Compose components
│   └── theme/                     # Material 3 theme
└── MainActivity.kt                # Main UI and ViewModel logic

🎯 How It Works

graph TD
    A[User Opens App] --> B[Configure Settings]
    B --> C[Tap 'Set Wallpaper']
    C --> D[Generate Initial Wallpaper]
    D --> E[Schedule Daily WorkManager Task]
    E --> F[Midnight Arrives]
    F --> G[WorkManager Triggers WallpaperWorker]
    G --> H[Fetch Settings from DataStore]
    H --> I[Calculate Current Day of Year]
    I --> J[Draw 365 Dots on Canvas]
    J --> K[Apply as Wallpaper via WallpaperManager]
    K --> F
Loading

Wallpaper Generation Algorithm

  1. Calculate current day of year (1-365/366)
  2. Create bitmap sized to screen dimensions
  3. Calculate 20-column grid layout
  4. For each of 365 positions:
    • Determine color (past/today/future)
    • Apply selected shape (circle, rounded, square, pill)
    • Draw with specified size density
  5. Apply subtle glow effect for visual depth
  6. Set as system wallpaper

🤝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md for details on:

  • Reporting bugs
  • Suggesting features
  • Submitting pull requests
  • Code style guidelines

🐛 Found a Bug?

Please check existing issues first. If your bug hasn't been reported:

  1. Open a new issue
  2. Use the bug report template
  3. Include your Android version and device model
  4. Attach screenshots if possible

📋 Roadmap

v1.1 (Planned)

  • Widget support for home screen
  • Export wallpaper as image
  • Multiple calendar systems (lunar, ISO week-based)
  • Animations on wallpaper change

v1.2 (Planned)

  • Milestone markers for important dates
  • Weekly/monthly view modes
  • Tile/pattern backgrounds

See open issues for feature discussions.


📜 License

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

TL;DR: You can freely use, modify, and distribute this code. Attribution appreciated but not required.


🙏 Acknowledgments

Inspiration:

Special Thanks:

  • The Jetpack Compose community
  • F-Droid for championing open-source Android apps
  • Everyone who values intentional living

👨‍💻 Author

Krishana
Year Dots v1.0 - January 2026


📊 Stats

Stars Forks Watchers


Made with ❤️ and ⏰ awareness

"The trouble is, you think you have time." - Buddha

About

A minimalist life calendar wallpaper for Android. Visualize your year in 365 dots to beat procrastination. Memento Mori. ⏳

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages