Heroes Blood is a Blood donation Android application π± built using Modern Android development tools.
- Kotlin - First class and official programming language for Android development.
- Coroutines - For asynchronous and more.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- DataBinding - Binds data directly into XML layouts
- Backend - Google Firebase
- Firebase Auth - To support email based authentication
- Firebase Firestore - A NoSQL database to store all data
- Firebase Storage - A cloud storage to store all images
- Retrofit - A type-safe HTTP client for Android and Java.
- Google Map SDk - The Google Maps Api helps us to lay down the map into our Android App. It can have different types of map like satellite, terrain and many more. Adding these features on the map helps us to add cool features to our app and make our app able to guide to places to which the user wants.
- GSON - A modern JSON library for Kotlin and Java.
- GSON Converter - A Converter which uses GSON for serialization to and from JSON.
- Coil - An image loading library for Android backed by Kotlin Coroutines.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
- Facebook Shimmer Effect - It is useful as an unobtrusive loading indicator that was originally developed for Facebook Home, that used as a placeholder for data when data is loading from remote source(Firebase) for Android.
com.nishant.heorsblood # Root Package
.
βββ model # For holding data for views.
|
βββ repositories # Repository to interct with firebase
β βββ AuthRepository # To interct with Firebase Authentication
| βββ DataRepository # To interct with Firebase Firestore and Firebase Storage
|
βββ ui # UI/View layer
β βββ fragments # Contain fragments
βββ signup # Contain fragments used in signup navgraph
β βββ DonorListActivity # Show list of specific donors
| βββ DonorLocationMapActivity # Show Live location of donor on google map
| βββ DonorProfileActivity # Show donor profile
β βββ EditUserProfileActivity # Logged in user can change their profile
β βββ IntroScreenActivity # on boarding screen
| βββ LoginActivity # User can login
| βββ SignUpActivity # Sign up activity that contain navHostFragment
β βββ UserDashboardActivity # Dashboard activity
| βββ UserProfileActivity # user profile activity
| βββ UserRegistrationActivity # User can register for donation
|
βββ utils # Utility Classes / Kotlin extensions
|
βββ viewmodels # viewmodels to provide model to views
βββ AuthViewModel # To handle authenticated related things
βββ DataViewModel # To handle data
This app uses MVVM (Model View View-Model) architecture.
If you need any help, you can connect with me.
Visit:- Nishant Sharma | LinkedIn | Instagram | Facebook