A modern, offline-first Android app built with 100% Kotlin and Jetpack Compose, designed to track the age of important life events.
This project showcases modern Android development best practices, including a clean, multi-layered architecture, a reactive UI, and a focus on user experience. It serves as a portfolio piece demonstrating proficiency in building production-quality applications.
- 📅 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 a Light theme, a Dark theme, or have the app automatically match your system settings.
- 🔄 Seamless In-App Updates: The app checks for new versions and allows you to update directly, ensuring you always have the latest features.
- 🔒 100% Offline & Private: All your data is stored securely on your device and is never collected or transmitted.
- 🌐 Integrated WebView: View the privacy policy seamlessly within the app, with a theme that adapts to your chosen look.
![]() |
![]() |
![]() |
---|
This project follows the principles of Clean Architecture, separating concerns into distinct layers (Data, Domain, and Presentation) to create a scalable and maintainable codebase.
Category | Technologies & Libraries |
---|---|
UI | Jetpack Compose, Material 3, Compose Navigation, System UI Controller |
Architecture | MVVM with MVI-like Unidirectional Data Flow (State & Events) |
Asynchronicity | Kotlin Coroutines, Flow |
Dependency Injection | Koin |
Data Persistence | Room Database, Preference DataStore |
Date & Time | Kotlinx DateTime |
Networking | In-App Update API (Google Play Core) |
This project is licensed under the MIT License.
Mohammad Arif
- GitHub: @kotlang-dev
- YouTube: Mohammad Arif
- Udemy Courses: