A modern note-taking application built with a standard Android architecture and best development practices.
##✨ Features
Fully built with Jetpack Compose
Clean MVVM architecture
Dependency Injection using Dagger Hilt
Local database powered by Room
Settings storage using DataStore (Preferences)
Navigation handled by Navigation Compose
Fast and reliable offline storage
Modern, clean, and scalable UI
Dark & Light theme support
- Kotlin
- Jetpack Compose
- MVVM
- Room Database
- DataStore Preferences
- Dagger Hilt
- Navigation Compose
- Coroutines & Flow
##🎯 Project Goal
This project was designed and implemented to:
Practice standard Android architecture
Build a real-world note-taking application
Serve as a portfolio project.
mynote/
├── base/
│ └── NoteApp.kt
├── core/
│ └── util/
├── HighlightText.kt
│ └── PersianDate.kt
├── data/
│ └── local/
│ ├── datastore/
│ │ ├── AppSettings.kt
│ │ ├── DataStoreExt.kt
│ │ ├── ThemeDataStore.kt
│ │ └── ThemeManager.kt
│ └── db/
│ ├── AppDatabase.kt
│ ├── dao/
│ │ └── NoteDao.kt
│ └── entity/
│ └── NoteEntity.kt
├── di/
│ ├── DatabaseModule.kt
│ └── DataModule.kt
├── MainActivity.kt
├── navigation/
│ ├── navGraph.kt
│ └── Screens.kt
├── repository/
│ └── NotesRepository.kt
├── ui/
│ ├── event/
│ │ └── UiEvent.kt
│ ├── model/
│ │ └── NoteUiModel.kt
│ ├── screen/
│ │ ├── add_edit/
│ │ │ ├── AddEditNoteScreen.kt
│ │ │ └── components/
│ │ │ ├── AddEditTopAppBar.kt
│ │ │ ├── ColorPalette.kt
│ │ │ ├── ContentTextField.kt
│ │ │ ├── PinCheckbox.kt
│ │ │ └── TitleTextField.kt
│ │ └── notes/
│ │ ├── components/
│ │ │ ├── AppAlertDialog.kt
│ │ │ ├── EmptyState.kt
│ │ │ ├── MessageHandler.kt
│ │ │ ├── MyCustomSnackbar.kt
│ │ │ ├── NoteCard.kt
│ │ │ ├── NotesList.kt
│ │ │ └── SearchBar.kt
│ │ ├── NoteListScreen.kt
│ │ └── NotesTopBar.kt
│ └── theme/
│ ├── Color.kt
│ ├── Theme.kt
│ └── Type.kt
└── viewModel/
│ └── NotesViewModel.kt
- Clone the repository:
git clone https://github.com/sadegh-it/My-Note.git
-
Open the project in Android Studio
-
Build and run on an emulator or physical device