Skip to content

A modern, offline-first, multi-platform app built with Kotlin Multiplatform and Compose Multiplatform, designed to track the age of important life events.

License

Notifications You must be signed in to change notification settings

kotlang-dev/AgeCalculator-TrackDates

Repository files navigation

Banner

Age Calculator - Track Dates

A modern, offline-first app designed to track the age of important life events. This project showcases modern, multi-platform development best practices - including a clean, shared architecture, a reactive and adaptive UI, and a fully automated CI/CD pipeline for desktop releases—all built with Kotlin Multiplatform and Compose Multiplatform.

Download

Get it on Google Play       Latest Release

✨ Features

  • 💻 Multiplatform Support: A single, shared codebase for Android, Windows, macOS, and Linux.
  • 📱 Adaptive UI: The interface intelligently adapts to different screen sizes, providing a great experience on phones, tablets, and desktops.
  • 📅 Track Key Life Events: Add and manage multiple occasions like birthdays, anniversaries, and milestones.
  • ⏱️ Detailed Age Breakdown: Instantly see the elapsed time in years, months, days, and even down to the second.
  • 🎨 Dynamic Theming: Personalize your experience by switching between Light, Dark, or System themes.
  • 🔄 Seamless In-App Updates (Android): The app checks for new versions and allows you to update directly from the Play Store.
  • 🔒 100% Offline & Private: All your data is stored securely on your device and is never collected or transmitted.

📸 Screenshots

Android

       

Desktop


🏗️ Architecture & Tech Stack

This project follows the principles of Clean Architecture, separating concerns into distinct layers (Data, Domain, and Presentation) to create a scalable and maintainable codebase. The shared module contains all business logic and UI, which is then consumed by platform-specific application modules.

Category Technologies & Libraries
Core Kotlin Multiplatform, Kotlin Coroutines, Flow
UI (Shared) Compose Multiplatform, Material 3, Compose Navigation, Adaptive Layouts
Architecture MVVM with a Coordinator ViewModel, MVI-like UDF, Use Cases
Dependency Injection Koin
Data Persistence Room (Multiplatform), Preference DataStore
Date & Time Kotlinx DateTime
CI/CD GitHub Actions (for automated desktop releases)

Connect with the Author

Mohammad Arif

Buy Me A Coffee