Skip to content

NoteApp is a note taking application with Mongodb, Jetpack Compose, Hilt, Coroutines, Flow, Jetpack based on Multi-Module architecture.

Notifications You must be signed in to change notification settings

arfinhosainn/NoteApp

Repository files navigation

NoteAPp

NoteApp is a note taking application with Mongodb, Jetpack Compose, Hilt, Coroutines, Flow, Jetpack (Room, ViewModel) based on Multi-Module architecture.

Demo

Tech stack & Open-source libraries

  • Minimum SDK level 21
  • Kotlin - First class and official programming language for Android development.
  • Jetpack
    • Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
    • ViewModel: Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
    • DataBinding: Binds UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
    • Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
  • Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
  • Dependency Injection -
    • Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
    • Hilt-ViewModel - DI for injecting ViewModel. Firebase Authentication - Firebase Authentication provides backend services, easy-to-use SDKs.
  • Coil - An image loading library for Android backed by Kotlin Coroutines.
  • Mongodb - Realm is a mobile-first database designed for modern, data-driven applications. You can use Realm to build mobile, web, desktop, and IoT apps.

Modularization

NoteApp adopted modularization strategies below:

  • Reusability: Modulizing reusable codes properly enable opportunities for code sharing and limits code accessibility in other modules at the same time.
  • Parallel Building: Each module can be run in parallel and it reduces the build time.
  • Strict visibility control: Modules restrict to expose dedicated components and access to other layers, so it prevents they're being used outside the module
  • Decentralized focusing: Each developer team can assign their dedicated module and they can focus on their own modules.

For more information, check out the Guide to Android app modularization.

About

NoteApp is a note taking application with Mongodb, Jetpack Compose, Hilt, Coroutines, Flow, Jetpack based on Multi-Module architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages