A fully functional offline Notes application built using Kotlin and the MVVM architecture pattern. This is my first Kotlin project where I implemented modern Android development practices including Dependency Injection with Kodein,MVVM patern and local data storage using Room Database.
The app provides a complete note management experience with rich text editing, searching, archiving,saving Notes, trash management, selection actions, and light/dark theme support.
-
Create notes with:
- Title
- Content
-
Rich text editing support:
- Bold text
- Italic text
- Underline text
- Highlight text using marker color
-
Displays:
- Last updated date below the title
- Character count below the title
-
Notes are saved automatically when:
- Pressing the back button
- Pressing the OK/save button from the editor screen
The main screen displays all active notes and provides note management features.
The navigation drawer contains:
- Light/Dark mode toggle
- Archived Notes section
- Trash Notes section
- Long press any note to enter selection mode.
- Available actions:
- Pin notes
- Archive notes
- Delete notes
- Dedicated search activity for finding notes quickly.
- Search notes using the search box.
- Open notes directly from search results.
- View or edit notes from search results.
-
Move notes from the main screen to archive.
-
View all archived notes separately.
-
Select multiple archived notes.
-
Available action:
- Remove from archive (move back to the main notes list)
-
Move notes from the main screen to Saved Notes Section.
-
View all Saved notes separately.
-
Select multiple Saved notes.
-
Available action:
- Remove from Saved Notes (move back to the main notes list)
- Deleted notes are moved to trash instead of being removed immediately.
- Manage deleted notes separately.
Features:
- Select one or multiple notes using checkbox.
- Available actions:
- Restore notes back to the main list
- Permanently delete notes
- Select all option for bulk actions
The app supports multi-selection actions across different screens.
- Pin notes
- Archive notes
- Delete notes
- Restore notes
- Permanently delete notes
- Remove notes from archive
selection Button on Top provides checkboxes to select multiple notes at once.
- Remove notes from Saved Notes
selection Button on Top provides checkboxes to select multiple notes at once.
- Kotlin
- MVVM Architecture
- Kodein Dependency Injection
- Room Database
- ViewModel
- LiveData
- RecyclerView
- Navigation Drawer
- Dark/Light Theme Support
The project follows the MVVM pattern:
UI Layer
|
ViewModel
|
Repository
|
Room Database
The architecture provides:
- Better code organization
- Separation of concerns
- Easier maintenance and scalability
This project demonstrates a complete offline note-taking application with:
- Rich text editing
- Local database storage
- MVVM architecture
- Dependency injection
- Search functionality
- Archive and trash management
- Multi-selection actions
- Theme customization
- Add more customization options
Developed my first Kotlin Android application while learning modern Android development practices, including MVVM architecture, LiveData, ViewModel, Room Database, and dependency injection with Kodein.





















