Skip to content

An offline chat app to showcase usage of RoomDB along with JetPack Compose UI

Notifications You must be signed in to change notification settings

avishekdas128/offline-chat-app

Repository files navigation

Offline Chat App

An Android application that showcases offline chat through the usage of RoomDB along with Jetpack Compose UI.

Features

The Android app lets you:

  • User Authentication - Register & Login using username and password.
  • Chat History, where you can see all your conversations with other registered users.
  • Messaging, where you can chat with the other registered users along with media (video & image) support.
  • Echo Last Message, where the last message sent by the user will be echoed from the recipient end.
  • Offline Support

DB Schema

dbSchema.png

Screenshots

Tech stack

  • Minimum SDK level 24
  • Kotlin based + Coroutines for asynchronous.
  • Dagger-Hilt for dependency injection.
  • JetPack
    • State - Notify domain layer data to views.
    • SharedFlows - Notify one-time events to the UI layer.
    • Lifecycle - Dispose of observing data when the lifecycle state changes.
    • ViewModel - UI-related data holder, lifecycle aware.
    • Compose - Render UI.
  • Architecture
    • MVVM Architecture (Model - View - ViewModel)
    • Repository pattern
    • data ~ domain ~ presentation
  • Glide - Compose - Loading Images for Jetpack Compose.
  • ExoPlayer - Loading Video Playback
  • DataStore - For handling shared preferences
  • Room Database - For offline caching of data

About

An offline chat app to showcase usage of RoomDB along with JetPack Compose UI

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages