• Stars
    star
    144
  • Rank 255,590 (Top 6 %)
  • Language
    Kotlin
  • License
    MIT License
  • Created over 4 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Chat app based on the MVVM architecture using Kotlin, ViewModel, LiveData, DataBinding and more.

Chat App Android

HeaderImage

Introduction

This is a demo application built with the goal to create a fun and challenging application based on the MVVM architectural pattern.

See below for more information.

Technologies & Architecture

Technologies

Android, Kotlin

Architecture

Model-View-ViewModel (MVVM)

Firebase

  • Authentication
  • Realtime Database
  • Storage

Architecture Components

ViewModel, LiveData, DataBinding, Navigation

Features

Start: Login/create account

Chats: List of chats, online status, update on change

Notifications: Accept/decline friend requests, notifications symbol

Users: List of users

Settings: Change image, change status, logout

Chat: Send and show messages sorted by timestamp, online status, custom toolbar, update on change

Profile: Add/remove friend, accept/decline friend request

General: Auto login, bottom navigation, error messages with snackbar, progress bar

Screenshots

Start | Login | Create Account

Chats | Notifications | Users

Settings | Chat | Profile

Firebase

Setup

Requirements

  • Basic knowledge about Android Studio
  • Basic knowledge about Firebase

Firebase

  • Setup Authentication and use the Sign-in method 'Email/Password'
  • Setup Realtime Database
  • Setup Storage
  • Replace the file google-services.json
  • Note: Download the google-services.json file after the Firebase services are set up to automatically include the services in the json file.
  • Note: When updating the google-services.json file then make sure to invalidate the caches as well as doing a clean + rebuild.

Project

  1. Download and open the project in Android Studio
  2. Connect your Android phone or use the emulator to start the application