Social Network is a social media app, where a user can publicly talk about any particular topic be it via text or voice chat.
It simply uses firebase as a backend and performs authentication and storage operations on firebase itself, a user simply authenticates his/her google account and gets inside the whole network. Further, the user can post about something in text format or image format. Also, a user has a profile and can view others people profile too can follow others etc.
This is a Beginner Friendly Repository made for Open Source Enthusiasts who can contribute to the App.
- Write About Anything - Convey your feelings, thoughts in form of a post
- Delete/Update Post - Delete/Update Posts easily.
- Camera Photos - You can open camera inside the application, click and upload the photo with a post.
- Add Image from gallery - Add Images in Post to keep it Awesome.
- Profiles - Visit any user profile and connect(follow) with them .
- Voice Channel [Beta] - Voice chat with anyone.
-
Fork it.
-
Clone your forked repo and move inside it:
git clone https://github.com/akshat-sahijpal/Social-Network.git && cd SocialNet
-
Checkout to a new branch to work on an issue:
`git checkout -b my-amazing-feature`
-
Running the project
open the project in Android Studio and run!
-
Once you're all done coding, it's time to open a PR :) Run the following commands from the root of the project directory:
`git add .` `git commit -m "A short description about the feature."` `git push origin <my-amazing-feature>` Ope n your forked repo in your browser and then raise a PR to the `master` branch of this repository!
- 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.
- Room - SQLite object mapping library.
- Dependency Injection -
- Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
- Hilt-ViewModel - DI for injecting
ViewModel
.
- Retrofit - A type-safe HTTP client for Android and Java.
- Moshi - A modern JSON library for Kotlin and Java.
- Moshi Converter - A Converter which uses Moshi for serialization to and from JSON.
- Coil-kt - An image loading library for Android backed by Kotlin Coroutines.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
- Gradle Kotlin DSL - For writing Gradle build scripts using Kotlin.
- Pager 3 - For Pagination of data
This app uses MVVM (Model View View-Model) architecture.
Demo Video |
---|