JahidHasanCO / Android-MVVM-Architecture-Firebase-Dagger-Hilt-Coroutines-Flow

MVVM with Clean Architecture is pretty good in such cases. It goes one step further in separating the responsibilities of your code base. It clearly abstracts the logic of the actions that can be performed in your app.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Android MVVM Architecture - Firebase, DaggerHilt, Coroutines Flow

MVVM with Clean Architecture is pretty good in such cases. It goes one step further in separating the responsibilities of your code base. It clearly abstracts the logic of the actions that can be performed in your app.

Architecture πŸ—Ό

This app uses MVVM (Model View View-Model) architecture.

Built With πŸ› 

  • Kotlin - First class and official programming language for Android development.
  • FireBase - Auth, Storage, FireStore - Firebase is an app development platform that helps you build and grow apps and games users love. Backed by Google and trusted by millions of businesses around the world.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • ViewModel - The ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
    • LiveData - LiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services. This awareness ensures LiveData only updates app component observers that are in an active lifecycle state.
    • Lifecycle - ifecycle-aware components perform actions in response to a change in the lifecycle status of another component, such as activities and fragments. These components help you produce better-organized, and often lighter-weight code, that is easier to maintain.
  • Dagger-Hilt - Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project. Doing manual dependency injection requires you to construct every class and its dependencies by hand, and to use containers to reuse and manage dependencies.
  • Coroutines Android - A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously. Coroutines were added to Kotlin in version 1.3 and are based on established concepts from other languages.
  • Kotlin flows - In coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value. For example, you can use a flow to receive live updates from a database.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.

App Screen

Auth Page Home Page

Contact πŸ“©

Have an project? DM us at πŸ‘‡

Drop a mail to:- vdjsovaj@gmail.com

Contributing πŸ’‘

If you want to contribute to this project and make it better with new ideas, your pull request is very welcomed. If you find any issue just put it in the repository issue section, thank you.

About

MVVM with Clean Architecture is pretty good in such cases. It goes one step further in separating the responsibilities of your code base. It clearly abstracts the logic of the actions that can be performed in your app.

License:MIT License


Languages

Language:Kotlin 100.0%