Awesome
Chat SDK for Android v5
Open Source Messaging framework for Android
Chat SDK is a fully featured open source instant messaging framework for Android. Chat SDK is fully featured, scalable and flexible and follows the following key principles:
- Free.
- Open Source.
- Full control of the data. You have full and exclusive access to the user's chat data
- Quick integration. Chat SDK is fully featured out of the box
- Scalable. Supports millons of daily users [1, 2]
- Backend agnostic. Supports Firebase and XMPP (ejabberd, Prosody, MongooseIM, Tigase, OpenFire)
Technical details
- Multiple Backends Support Firestore, Firebase, ejabberd, OpenFire, Prosody, Tigase, MongooseIM
- Persistence - GreenDao
- Reactive - RXAndroid
- Java 8 supports Java 8 and lamda expressions
- Multi-threaded agressively multi-threaded
- API Level 23+
- Demo Google Play Store
Please bear in mind that this version is a major update. As a result we are making new releases every few days to fix bugs and crashes. If you see an issue, please report it on the Github bug tracker and we will fix it.
Features
- Powered by Firebase Firestore, Realtime database or XMPP
- Private and group messages ⇘GIF
- Public chat rooms
- Username / password, Social, Anonymous and custom login
- Phone number authentication
- Push notifications (using FCM)
- Text, Image ⇘GIF and Location ⇘GIF messages
- Forward, Reply ⇘GIF, Copy and Delete ⇘GIF messages
- Tabbar ⇘GIF or Drawer ⇘GIF layout
- User Profiles ⇘GIF
- User Search ⇘GIF
- Contacts ⇘GIF
- Add contact by QR code ⇘GIF
- Firebase UI ⇘GIF
- iOS Version
Pro Features
If you are an open source project using GPLv3 you can use all the features with that license.
For commercial projects, sponsor us on either Github sponsors or Paetron and get these features. For full details visit our Modules page.
When you support us on Patreon, you get: extra modules, code updates, support as well as special access to the Discord Server.
- Typing indicator ⇘GIF
- Read receipts
- Last online indicator
- Audio messages ⇘GIF
- Video messages ⇘GIF
- Sticker messages ⇘GIF
- User blocking ⇘GIF
- File Messages ⇘GIF
- End-to-end encryption
- Contact book integration ⇘GIF
- Location based chat ⇘GIF
- XMPP Server Support
- ejabberd
- Prosody
- OpenFire
- Tigase
- MongooseIM
Visit our Animated GIF Gallery to see all the features.
License
This project is covered by multiple different licenses. Use the flowchart to determine which license you can use.
<img src="https://github.com/chat-sdk/files/blob/main/ios/license-flowchart.png?raw=true" width="400" />Standard modules:
- app
- app-demo
- app-firestream
- chat-sdk-app-firebase
- chat-sdk-app-firestream
- chat-sdk-core
- chat-sdk-core-ui
- chat-sdk-demo
- chat-sdk-firebase-adapter
- chat-sdk-firebase-push
- chat-sdk-firebase-upload
- chat-sdk-firestream-adapter
- chat-sdk-mod-auto
- chat-sdk-mod-firebase-ui
- chat-sdk-mod-image-editor
- chat-sdk-mod-message-location
- chat-sdk-mod-ui-extras
- firestream
- firestream-firestore
- firestream-realtime
- sdk-guru-common
- sdk-guru-firestore
- sdk-guru-realtime
- vendor-chatkit
License:
Monthly Active Users | |
---|---|
Less than 1 million | Apache 2.0 |
More than 1 million | GPLv3 or Commercial License |
Pro modules:
- app-xmpp
- chat-sdk-app-xmpp
- chat-sdk-pro-contact-book
- chat-sdk-pro-encryption
- chat-sdk-pro-firebase-blocking
- chat-sdk-pro-firebase-last-online
- chat-sdk-pro-firebase-nearby-users
- chat-sdk-pro-firebase-read-receipts
- chat-sdk-pro-firebase-typing-indicator
- chat-sdk-pro-firestream-blocking
- chat-sdk-pro-firestream-read-receipts
- chat-sdk-pro-firestream-typing-indicator
- chat-sdk-pro-message-audio
- chat-sdk-pro-message-file
- chat-sdk-pro-message-sticker
- chat-sdk-pro-message-video
- chat-sdk-pro-xmpp-adapter
- chat-sdk-pro-xmpp-omemo
- chat-sdk-pro-xmpp-read-receipts
License:
Monthly Active Users | |
---|---|
Any | GPLv3 or Commercial License |
Commercial Licensing
For commercial licensing, you have several options:
- Pay monthly: Patreon or Github Sponsors
- Buy a one-off license
- If your project has over 1m MAU or XMPP contact [team@chatsdk.co](mailto: team@chatsdk.co)
About Us
Learn about the history of Chat SDK and our future plans in this post.
Scalability and Cost
People always ask about how much Chat SDK costs to run. And will it scale to millions of users? So I wrote an article talking about just that.
Library Size
The Chat SDK library with ALL modules is around 20mb
Community
- Discord: If you need support, join our Server
- Support the project: Patreon or Github Sponsors 🙏 and get access to premium modules
- Contribute by writing code: Email the Contributing Document to team@sdk.chat
- Give us a star on Github ⭐
- Upvoting us: Product Hunt
- Tweet: about your Chat SDK project using @chat_sdk
You can also help us by:
- Providing feedback and feature requests
- Reporting bugs
- Fixing bugs
- Writing documentation
Email us at: team@sdk.chat
We also offer development services we are a team of full stack developers who are Firebase experts. For more information check out our consulting site.
Firestream - A light-weight messaging library for Firebase
If you are looking for something that is more-light weight than Chat SDK, we also have a library which only provides instant messaging functionality.
- 1-to-1 Messaging
- Group chat, roles, moderation
- Android, iOS, Web and Node.js
- Fully customisable messages
- Typing Indicator
- Delivery receipts
- User blocking
- Presence
- Message history (optional)
- Firestore or Realtime database
You can check out the project: Firestream on Github.
Chat SDK Firebase Documentation
Quick Start
Bear in mind that the video is not updated frequently. Please cross reference with with the text based instructions for the latest gradle dependencies.
- Full video tutorial
- API - Useful for Chat SDK customization
- Documentation Homepage
- Building a messaging app using Chat SDK
- Adding Chat SDK to a Firebase app
- Adding Chat SDK to a non-Firebase app
Integration
- Add the Chat SDK to your project
- Firebase Setup
- Chat SDK Initialization
- Set the Chat SDK Theme
- Enable Location Messages
- Display the login screen
- Add module dependencies
- Module Configuration
- Proguard
- Push Notifications, Security Rules and Storage
Customization
- Override Activity or Fragment
- Theme Chat SDK
- Customize the Icons
- Customize the Tabs
- Add a Chat Option
- Custom Message Types
- Handling Events
- Custom Push Handling
- Synchronize user profiles with your app
- Custom File Upload Handler
- Enable token authentication
Extras
Migrating from v4
- Migration guide
- If you want to see the v4 docs, they are available on the v4 branch
Recommended background
Setup Service
We provide extensive documentation on Github but if you’re a non-technical user or want to save yourself some work you can take advantage of our setup and integration service.