A modern, feature-rich To-Do & Routine Manager built with the latest Android technologies.
Manage your tasks, set alarms, and organize your day with a beautiful Material 3 UI.
Yadino is a powerful productivity application designed to help you stay organized. Built with a focus on Clean Architecture and Modern Android Development (MAD) practices, it leverages the full power of Jetpack Compose for the UI and Decompose for robust navigation.
Whether you need to jot down a quick note, set a recurring routine, or schedule a critical reminder, Yadino handles it with efficiency and style.
- 📅 Routine Management: Create, update, and track your daily routines effortlessly.
- 📝 Quick Notes: Capture thoughts on the go with a simple note-taking interface.
- ⏰ Smart Alarms: Reliable notifications powered by
AlarmManagerto ensure you never miss a task. - 🎨 Material 3 Design: A stunning, adaptive UI that supports both Light and Dark themes.
- 💾 Offline Capable: All data is persisted locally using Room Database.
Yadino is built with a strictly modern technology stack, focusing on scalability and performance.
| Category | Library | Description |
|---|---|---|
| Language | Kotlin | First-class and official programming language for Android development. |
| UI Toolkit | Jetpack Compose | Android’s modern toolkit for building native UI using Material 3. |
| Navigation | Decompose | A Kotlin Multiplatform library for breaking down your code into lifecycle-aware components. |
| Dependency Injection | Koin | A pragmatic lightweight dependency injection framework for Kotlin. |
| Local Database | Room | The SQLite object mapping library that provides an abstraction layer over SQLite. |
| Concurrency | Coroutines | For managing background threads and asynchronous tasks. |
| Scheduling | Alarm Manager | Used to schedule precise alerts and notifications for user routines. |
This project follows Clean Architecture principles to separate concerns and ensure testability:
- UI Layer: Built with Jetpack Compose, driven by ViewModels/Components.
- Domain Layer: Contains business logic and UseCases.
- Data Layer: Handles data sources (Room DB) and repositories.
Navigation is handled by Decompose, treating screens as components with their own lifecycles, making the app highly modular.
To run this project locally, follow these steps:
- Clone the repository:
git clone [https://github.com/RahimMahmoudzadeh/Yadino.git](https://github.com/RahimMahmoudzadeh/Yadino.git)
- Open in Android Studio: Open the project in the latest version of Android Studio (Koala or later recommended).
- Sync Gradle: Allow the project to sync dependencies.
- Run: Select your emulator or physical device and click Run.
Contributions are highly welcome! If you have ideas for improvements or bug fixes:
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m '#300 Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.








