Giter Club home page Giter Club logo

azkeepit's Introduction

AZKeepIt

Jetpack Compose Note Keeping app

Preview

AZKeepItVideo1.mp4
AZKeepItVideo2.mp4
AZKeepItVideo3.mp4

Features:

  • 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

Tech stack & Open-source libraries

  • 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.

azkeepit's People

Contributors

omarzer0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

dmc0001

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.