A modern Android notes application built with MVVM architecture and Room database, following Android best practices and Material Design guidelines.
- Create, read, update, and delete notes
- Rich text formatting support
- Categories and tags for better organization
- Search functionality
- Dark mode support
- Backup and restore capabilities
- Share notes functionality
This application follows the MVVM (Model-View-ViewModel) architecture pattern and incorporates Android Architecture Components:
- Model: Represents the data layer using Room database
- View: UI layer with Activities and Fragments
- ViewModel: Manages UI-related data and business logic
- Repository: Single source of truth for data operations
- Kotlin
- Android Architecture Components
- Room Database
- ViewModel
- LiveData
- Coroutines
- Material Design Components
- ViewBinding
- Dependency Injection with Hilt
- Unit Testing with JUnit and Mockito
- UI Testing with Espresso
app/
├── data/
│ ├── local/
│ │ ├── dao/
│ │ ├── entities/
│ │ └── database/
│ └── repository/
├── di/
├── domain/
│ └── model/
├── ui/
│ ├── notes/
│ │ ├── list/
│ │ └── detail/
│ └── common/
└── utils/
- Android Studio Arctic Fox or later
- Android SDK 21 or higher
- Kotlin 1.5 or higher
- Clone the repository:
git clone https://github.com/by1590/Notes_APP.git-
Open the project in Android Studio
-
Sync project with Gradle files
-
Run the app on an emulator or physical device
@Entity(tableName = "notes")
data class Note(
@PrimaryKey(autoGenerate = true)
val id: Long = 0,
val title: String,
val content: String,
l̥
)- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request