Skip to content

A Chat App based on the MQTT Protocol implemented using Clean Architecture, MVVM pattern

Notifications You must be signed in to change notification settings

mayorJAY/ChatPadi

Repository files navigation

ChatPadi

ChatPadi is a chat application that connects two Users. It is based on the MQTT Protocol and Publish/Subscribe pattern; it takes two user IDs and parses them as the topic to subscribe to and it publishes to one of the topics (the main user). It is implemented using Clean Architecture, Model-View-ViewModel pattern (MVVM) and uses Modern Android Development pattern and libraries.

Project Characteristics

This project makes use of the following tools and solutions:

  • 100% Kotlin
  • Modern architecture (Clean Architecture, Model-View-ViewModel)
  • Android Jetpack
  • A single-activity architecture (using the Navigation component to manage Fragment operations)
  • Dependency Injection
  • Material design

Tech Stack

Min API level is set to 21, so the presented approach is suitable for over 94.1% of devices running Android as at the time of writing this

  • Eclipse Paho Android Service used for implementing the MQTT Protocol
  • HiveMQ: the Broker used used for establishing connection with the Service
  • ViewModel used to store and manage UI-related data in a lifecycle conscious way
  • LiveData which is an observable data holder class used to handle data in a lifecycle-aware manner
  • View Binding used to easily write code that interacts with views by referencing them directly
  • Koin a pragmatic lightweight dependency injection framework used in Kotlin
  • Navigation Component used to implement navigation and to ensures a consistent and predictable user experience while navigating across screens

About

A Chat App based on the MQTT Protocol implemented using Clean Architecture, MVVM pattern

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages