This App will build on
Android Views
(XML).
Room
database for local db.
Preference Datastore
for storing user preference.
Dagger Hilt
for Dependency Injection.
Navigation Component
to navigate between fragments.
Reactive Ui using Kotlin Flows and Coroutines.
Implemented Settings using the PreferenceSettingCompat
library.
About this Project
This project aims to showcase the modern android architecture to build clean, maintainable and scalable android app
-
Layered Architecture
-
Structuring Package's for Clean Architecture
-
Per Screen ViewModel for Ui related logic
Kotlin Coroutines & Flows for Reactive UI, and Asynchronous Programming.
Differences
In this project you will find two more branches named Improvement
, and a features
features branch is used to add new features to this project. The improvement branch is used to improve the existing features.
The main features of this app
-
CRUD for notes.
-
Archive and Delete notes.
-
Search note through Room FTS.
-
Dynamic theme Android 12+.
-
The dark theme and light theme control through settings.
-
Edge to Edge.
And other Miscellaneous features...
This app is currently in development. New features and improvements might be added. Some important features you can expect include 🚧
-
Reminder's with Notification.
-
Sorting and filtering the notes and some others.
-
Probably i can switch views to compose (Migrating toward to compose Visit: Diary in Compose).
If you would like to contribute to this project, you can do it. As I already mentioned, this project primarily focuses on architecture use Layered Architecture and SOLID principles. All features and improvements should be committed to respective branches, not directly to the main.