AZKeepItVideo1.mp4 |
AZKeepItVideo2.mp4 |
AZKeepItVideo3.mp4 |
-
Note:
- Create notes and Save them locally
- Add Title and Content
- Select note color
- Lock note with a password
- Add Images to note
- Delete Note
- Add or Remove Note from Folder (Note has 0 or 1 Folder "One to one relation")
- Save changes when the back button pressed
- Doesn't save empty note
-
Folder:
- Create Folders to group notes
- Delete Folder
- Rename Folder
- Delete all folder notes
- Add Multiple notes to Folder (Folder has 0 to many Notes "One-to-many relation")
-
Search:
- Search Notes by either title or content
-
Minimum SDK level 21
-
Kotlin based, Coroutines together with Flow for asynchronous streams and one side viewModel communication.
-
Dagger Hilt for dependency injection.
-
DateTimeFormatter for parsing date-time objects.
-
Compose:
- Jetpack Compose for the UI.
- Compose Destination KSP library that hides the complex, non-type-safe and boilerplate code you would have to write otherwise.
- Compose Pager Provides paging layouts for Jetpack Compose.
- Accompanist: A group of libraries that aim to supplement Jetpack Compose with features that are commonly required by developers
- Coil Compose: An image loading library for Android backed by Kotlin Coroutines for loading async images for compose.
- System UI controller Provides easy-to-use utilities for updating the System UI bar colors within Jetpack Compose.
- Extended Icons Provides a full set of Material icons to be used with Compose.
-
JetPack:
- Lifecycle - Dispose of observing data when the lifecycle state changes.
- ViewModel - UI-related data holder, lifecycle aware.
- Room: Persistence library that provides an abstraction layer over SQLite database.
- SaveStateHandler to handle process death and pass data between composables.
-
Architecture:
- Clean Architecture divided into three layers (Data, Domain and UI).
- MVI Architecture (Model-View-Intent).
- Repository pattern.
- Use ViewModels to handle Non-UI actions and Expose only one UI state for each screen to have single source of truth.
- UI passes actions to ViewModels and observe on single UI state.