LetsChat is a Sample Messaging Android application built to demonstrate the use of Modern Android development tools - (Kotlin, Coroutines, Dagger-Hilt, Architecture Components, MVVM, Room, Coil) and Firebase
- Create a firebase project and replace the google-services.json file which you get from your firebase project console
- Following firebase services need to be enabled in the firebase console
- Phone Auth
- Cloud Firestore
- Realtime Database
- Storage
- Composite indexes should be created for contact query(link for enabling indexes could be found from logcat while using the app)
You can Install and test latest LetsChat app from below 👇
- One on one chat
- Group Chat
- Typing status for one on one and group chat
- Unread messages count
- Message status for failed,sent,delivered and seen
- Supported message types
- Text
- Voice
- Sticker and Gif
- Attachments
- Image
- Video - InProgress
- Notification actions for reply and mark as read
- Search users by username
- Kotlin - First class and official programming language for Android development.
- Coroutines & Flow - For asynchronous and more..
- Android Architecture Components - Collection of libraries that help you design quality, robust, testable, and maintainable apps.
- Navigation Component - Handle everything needed for in-app navigation with a single Activity.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- DataBinding - 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.Declaratively bind observable data to UI elements.
- WorkManager - WorkManager is an API that makes it easy to schedule deferrable, asynchronous tasks that are expected to run even if the app exits or the device restarts.
- Room - SQLite object mapping library.
- Dependency Injection -
- Dagger-Hilt - Standard library to incorporate Dagger dependency injection into an Android application.
- Hilt-ViewModel - DI for injecting
ViewModel
.
- Firebase -
- Cloud Messaging - For Sending Notification to client app.
- Cloud Firestore - Flexible, scalable NoSQL cloud database to store and sync data.
- Cloud Storage - For Store and serve user-generated content.
- Authentication - For Creating account with mobile number.
- Kotlin Serializer - Convert Specific Classes to and from JSON.Runtime library with core serialization API and support libraries with various serialization formats.
- Coil-kt - An image loading library for Android backed by Kotlin Coroutines.