Android instant messenger using Tinode backend. Beta-quality software.
- Send and receive messages one-on-one or in group chats.
- Register new accounts.
- Start new chats.
- Edit chat parameters.
- In-app presence notifications.
- Unread message counters.
- Typing indicators.
- Push notifications.
- Indicators for messages received/read (little check marks in messages).
- Markdown-style formatting of text, e.g. *styled* → styled. Implemented as spannable.
- Attachments and inline images.
- Muting/un-muting conversations and other permission management.
- Integration with Android's stock Contacts.
- Invite contacts to the app by SMS or email.
- Transport Level Security - https/wss.
- Offline mode is mostly functional.
- Editing of personal details.
- Deleting messages.
- Video and audio is not handled inline.
- No end-to-end encryption.
- jackson for json serialization.
- Java-WebSocket for websocket support.
- libphonenumber for user discovery to ensure all phone numbers use the same E.164 format
- MaterialChipsInput widget for group chat member selection. This implementation is buggy and inflexible, should be replaced ASAP. Google should have provided this widget.
- google-services for push notifications.
In order to compile the app you need to generate your own
config file
google-services.json
. Once downloaded, copy it to the./app/
folder. The config file contains Google-provided passwords and as such cannot be shared. If you don't do it the app will crash with non-obvious exceptions. The Google-provided server key must be copied totinode.conf
, see details here.
The contacts.vcf
contains a list of contacts which can be used for testing. Push it to your emulator using
adb push contacts.vcf /sdcard/contacts.vcf