Sociofy
Sociofy is a social media Android application π± built to demonstrate use of Modern Android development tools.
Setup
Clone the repository on your machine. Open the project on your IDE and connect it to firebase and everything will be setup
About
It uses firebase as its backend. It uses Firestore which is a NoSQL database to store all data. Firebase Storage to store images and Firebase Auth for the authentication
- Fully functionable.
- Clean and Simple Material UI.
- It supports dark theme too π.
πΈ Screenshots
Β | Β | Β |
---|---|---|
Built With π
- Kotlin - First class and official programming language for Android development.
- 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.
- 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
- Dependency Injection -
- Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
- Hilt-ViewModel - DI for injecting
ViewModel
.
- Backend - Google Firebase
- Firebase Auth - To support email based authentication
- Firebase Firestore - A NoSQL database to store all data
- Firebase Storage - A clous storage to store all images
- Retrofit - A type-safe HTTP client for Android and Java.
- GSON - A modern JSON library for Kotlin and Java.
- Timber - A simple logging library for android.
- GSON Converter - A Converter which uses Moshi for serialization to and from JSON.
- Glide - An image loading library for Android backed by Kotlin Coroutines.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
Package Structure
com.vaibhav.sociofy # Root Package
.
βββ data # For data handling.
β βββ model # Model data classes
β βββ repository # Single source of data.
|
βββ di # Dependency Injection
β βββ module # DI Modules
|
βββ ui # UI/View layer
β βββ authorization # Authorization Activity and its fragments
β βββ homescreen # Home Activity and its fragments
| βββ profilescreen # profile Activity and its fragments
| βββ splashscreen # Splash Activity
β βββ uploadscreen # Upload Activity
|
βββ utils # Utility Classes / Kotlin extensions
Architecture
This app uses MVVM (Model View View-Model) architecture.
If you like my projects and want to support me to build more cool open source projects
## Contact If you need any help, you can connect with me.
Visit:- VaibhavJaiswal.io