A simple notes application built using Kotlin, following the MVVM pattern, and utilizing Hilt for dependency injection. The application uses Room for database persistence and Jetpack Compose for the UI.
- Create, update, and delete notes
- View notes in a list
- Search notes
- Store notes locally using Room
- Clean architecture with MVVM pattern
- Dependency injection with Hilt
- Modern UI with Jetpack Compose
- Android Studio 4.2 or higher
- Kotlin 1.5.0 or higher
- Gradle 7.0 or higher
- Clone the repository from GitHub.
- Open the project in Android Studio.
- Build the project using Gradle.
- Run the project on an Android emulator or device.
This project follows the MVVM (Model-View-ViewModel) architecture pattern:
- Model: Represents the data layer, including the Room database and repository.
- View: Composed of Jetpack Compose UI components.
- ViewModel: Provides data to the UI and handles user interactions.
The project uses Hilt for dependency injection. Hilt simplifies the process of providing dependencies in Android applications.
- Add the Hilt dependencies to your project-level and app-level build.gradle files.
- Annotate your Application class with @HiltAndroidApp.
Room is used for local data storage. It provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
- Add the Room dependencies to your build.gradle file.
- Create your Entity, Dao, and Database classes.
The UI is built using Jetpack Compose, Android's modern toolkit for building native UI.
- Add the Compose dependencies to your build.gradle file.
- Enable Jetpack Compose in your build.gradle file.
Contributions are welcome! Please open an issue or submit a pull request.
If you have any questions or feedback, feel free to reach out to:
- Shakya (GitHub: shakya1527)
- Email: sinhashakya15@gmail.com