All Projects → QArtur99 → ChatApp

QArtur99 / ChatApp

Licence: Apache-2.0 license
Chat app based on Firebase tools.

Programming Languages

kotlin
9241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to ChatApp

WanAndroidJetpack
🔥 WanAndroid 客户端,Kotlin + MVVM + Jetpack + Retrofit + Glide。基于 MVVM 架构,用 Jetpack 实现,网络采用 Kotlin 的协程和 Retrofit 配合使用!精美的 UI,便捷突出的功能实现,欢迎下载体验!
Stars: ✭ 124 (+40.91%)
Mutual labels:  room, coroutines, jetpack, mvvm-architecture, databinding, livedata
Simple-Notes-Kotlin-App
✍️ Simple Note Making App use mvvm architecture , dagger , coroutines and navigation component. Features includes 🗒️ create , edit and ❌ delete notes
Stars: ✭ 40 (-54.55%)
Mutual labels:  room, coroutines, jetpack, dagger2, mvvm-architecture, livedata
catchflicks
🎬 Kitchen sink project for learning android concepts 🎬
Stars: ✭ 12 (-86.36%)
Mutual labels:  room, jetpack, dagger2, mvvm-architecture, databinding
DeezerClone
This Application using Dagger Hilt, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData),Navigation based on MVVM architecture.
Stars: ✭ 81 (-7.95%)
Mutual labels:  room, navigation, coroutines, jetpack, livedata
MockAppMVVM
A sample app structure using the MVVM architecture using Retrofit, Dagger2, LiveData, RxJava, ViewModel and Room.
Stars: ✭ 14 (-84.09%)
Mutual labels:  room, navigation, jetpack, mvvm-architecture, livedata
Movieapp Clean Architecture
Learning Project (Movie App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin
Stars: ✭ 123 (+39.77%)
Mutual labels:  coroutines, dagger2, mvvm-architecture, databinding, livedata
Jetpack Mvvm Best Practice
是 难得一见 的 Jetpack MVVM 最佳实践!在 以简驭繁 的代码中,对 视图控制器 乃至 标准化开发模式 形成正确、深入的理解!
Stars: ✭ 6,950 (+7797.73%)
Mutual labels:  navigation, jetpack, mvvm-architecture, databinding, livedata
Simple-Note-App-with-Online-Storage
✍️ Simple Note Making App use Sqllite Room 🧰 for caching the notes and 📥 Firebase Database for online storage
Stars: ✭ 42 (-52.27%)
Mutual labels:  room, coroutines, dagger2, mvvm-architecture, livedata
Mvvmframe
🏰 MVVMFrame for Android 是一个基于Google官方推出的Architecture Components dependencies(现在叫JetPack){ Lifecycle,LiveData,ViewModel,Room } 构建的快速开发框架。有了MVVMFrame的加持,从此构建一个MVVM模式的项目变得快捷简单。
Stars: ✭ 218 (+147.73%)
Mutual labels:  room, dagger2, mvvm-architecture, databinding, livedata
modern-android
Modern Android Project Skeleton
Stars: ✭ 17 (-80.68%)
Mutual labels:  room, coroutines, jetpack, databinding
News Sample App
A sample news app which demonstrates clean architecture and best practices for developing android app
Stars: ✭ 334 (+279.55%)
Mutual labels:  room, dagger2, mvvm-architecture, livedata
Dagger-Hilt-MVVM
Sample app that demonstrates the usage of Dagger Hilt with Kotlin & MVVM
Stars: ✭ 62 (-29.55%)
Mutual labels:  room, coroutines, mvvm-architecture, livedata
app
Source code of intencje.pl website and mobile/desktop apps based on Angular, Firebase, and Capacitor.
Stars: ✭ 12 (-86.36%)
Mutual labels:  notifications, firebase-auth, firestore, cloud-firestore
Mvvmsmart
基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合ViewModel+Lifecycles+Navigation+DataBinding+LiveData+Okhttp+Retrofit+RxJava+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发高质量、易维护的Android应用。 项目组会持续维护,请放心使用.欢迎Start并Fork交流.
Stars: ✭ 382 (+334.09%)
Mutual labels:  room, navigation, databinding, livedata
Pursuit-Core-Android
Pursuit Core Android
Stars: ✭ 45 (-48.86%)
Mutual labels:  room, jetpack, dagger2, livedata
Android Jetpack Demo
🔥 快速入门Android Jetpack以及相关Kotlin、RxJava、MVVM等主流技术,独立构架App的基础技能
Stars: ✭ 335 (+280.68%)
Mutual labels:  room, navigation, databinding, livedata
Wanandroid
🏄 基于Architecture Components dependencies (Lifecycles,LiveData,ViewModel,Room)构建的WanAndroid开源项目。 你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Stars: ✭ 410 (+365.91%)
Mutual labels:  room, dagger2, databinding, livedata
Marvelheroes
❤️ A sample Marvel heroes application based on MVVM (ViewModel, Coroutines, LiveData, Room, Repository, Koin) architecture.
Stars: ✭ 826 (+838.64%)
Mutual labels:  room, coroutines, mvvm-architecture, databinding
Archapp
Simple Android app to show how to design a multi-modules MVVM Android app (fully tested)
Stars: ✭ 551 (+526.14%)
Mutual labels:  room, coroutines, mvvm-architecture, databinding
Android Clean Architecture Mvvm Dagger Rx
Implemented by Clean Architecture, Dagger2, MVVM, LiveData, RX, Retrofit2, Room, Anko
Stars: ✭ 138 (+56.82%)
Mutual labels:  room, dagger2, mvvm-architecture, livedata

ChatApp

ChatApp is a free messaging app inspired by messaging & social media apps. Written in Kotlin implements the Jetpack libraries, Firebase services.

Screenshots

image

Used Tech

  • Kotlin
  • MVVM
  • Coroutines - Asynchronous programming
  • Data Binding - Declaratively bind observable data to UI elements.
  • Lifecycles - Create a UI that automatically responds to lifecycle events.
  • LiveData - Build data objects that notify views when the underlying database changes.
  • Navigation - Handle everything needed for in-app navigation.
  • Paging - Load and display small chunks of data at a time.
  • Room - Access your app's SQLite database with in-app objects and compile-time checks.
  • ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks.
  • WorkManager - Schedule deferrable, asynchronous tasks even if the app exits or device restarts.
  • Firebase - Tools to develop high-quality apps.
    • Authentication - Allows an app to securely save user data in the cloud.
    • Cloud Firestore - Flexible, scalable NoSQL cloud database to store and sync data.
    • Cloud Functions - Automatically run backend code in response to events triggered by Firebase
    • Cloud Messaging - Notify a client app.
    • Cloud Storage - Store and serve user-generated content.
    • Remote Config - Change the settings of app without requiring users to download an app update.
  • Dagger 2 - Compile-time framework for dependency injection.
  • Hilt - Compile-time framework for dependency injection.
  • Glide - Load and cache images by URL.
  • Moshi - Serialize Kotlin objects and deserialize JSON objects.
  • Retrofit 2 - Handle REST api communication.
  • Test - An Android testing framework for unit and runtime UI tests.
  • ktlint - Enforce Kotlin coding styles.

Features

  • Firebase:
    • Authentication (Email, Facebook, Google, Phone)
    • Cloud Firestore
    • Cloud Messaging
    • Functions
    • Remote Config
    • Storage
  • Create user profile (Username).
  • Search users by Username
  • Send text, graphic, audio messages.
  • Take a picture from camera or gallery.
  • Record/play audio.
  • Display graphics in full screen view, zoom in/out, drag and rotate.
  • Check user online status.
  • Check message read/delivery status.
  • Get notifications about new messages.

Report issues

Something not working quite as expected? Do you need a feature that has not been implemented yet? Check the issue tracker and add a new one if your problem is not already listed. Please try to provide a detailed description of your problem, including the steps to reproduce it.

Contribute

Awesome! If you would like to contribute with a new feature or submit a bugfix, fork this repo and send a pull request. Please, make sure all the unit tests, integration tests & ./gradlew spotlessApply are passing before submitting and add new ones in case you introduced new features.

How to run the project in development mode

  • Clone or download repository as a zip file.
  • Open project in Android Studio.
  • Set Facebook API key in build.gradle.
  • Run 'app' SHIFT+F10.

Getting Started

  • Create Firebase project.
  • In Firebase console enable all Firebase services listed in section Features.
  • To turn on notifications deploy following function to Firebase functions service.

Android Studio IDE setup

ChatApp uses ktlint to enforce Kotlin coding styles. Here's how to configure it for use with Android Studio (instructions adapted from the ktlint README):

  • Close Android Studio if it's open
  • Download ktlint using these installation instructions
  • Inside the project root directory run: ./ktlint --apply-to-idea-project --android
  • Remove ktlint if desired: rm ktlint
  • Start Android Studio

License

Copyright 2019 Artur Gniewowski

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].