Android Conversations: The best open source XMPP

Everyone wants to build their Android Conversations app and want to add every functionality which contains in current application like WhatsApp, Hike, Viber etc. But no idea how to start and if you’re in same scenario then this article for you.

Android Conversations
Android Conversations

Design principles

  • Be as beautiful and easy to use as possible without sacrificing security or privacy
  • Rely on existing, well established protocols (XMPP)
  • Do not require a Google Account or specifically Google Cloud Messaging (GCM)
  • Require as few permissions as possible

Features

  • End-to-end encryption with OMEMO, OTR, or OpenPGP
  • Send and receive images as well as other kind of files
  • Share your location via an external plug-in
  • Indication when your contact has read your message
  • Intuitive UI that follows Android Design guidelines
  • Pictures / Avatars for your Contacts
  • Syncs with desktop client
  • Conferences (with support for bookmarks)
  • Address book integration
  • Multiple accounts / unified inbox
  • Very low impact on battery life

XMPP Features

Conversations works with every XMPP server out there. However XMPP is an extensible protocol. These extensions are standardized as well in so called XEP’s. Conversations supports a couple of these to make the overall user experience better. There is a chance that your current XMPP server does not support these extensions; therefore to get the most out of Conversations you should consider either switching to an XMPP server that does or — even better — run your own XMPP server for you and your friends.

These XEP’s are:

Development

Beta testing

If you bought the App on Google Play you can get access to the latest beta version by joining the Conversations Beta Testers community on Google+ and then using this link to sign up for the beta test.

How do I build Android  Conversations

Make sure to have ANDROID_HOME point to your Android SDK. Use the Android SDK Manager to install missing dependencies.

git clone https://github.com/siacs/Conversations.git
cd Conversations
./gradlew assembleFreeDebug

There are two build flavors available. free and playstore. Unless you know what you are doing you only need free.

Build Status

How do I update/add external libraries?

If the library you want to update is in Maven Central or JCenter (or has its own Maven repo), add it or update its version in build.gradle. If the library is in the libs/ directory, you can update it using a subtree merge by doing the following (using minidns as an example):

git remote add minidns https://github.com/rtreffer/minidns.git
git fetch minidns
git merge -s subtree minidns master
To add a new dependency to the libs/ directory (replacing "name", "branch" and "url" as necessary):
git remote add name url
git merge -s ours --no-commit name/branch
git read-tree --prefix=libs/name -u name/branch
git commit -m "Subtree merged in name"

If something goes wrong Android Conversations usually exposes very little information in the UI (other than the fact that something didn’t work). However with adb (android debug bridge) you can squeeze some more information out of Conversations. These information are especially useful if you are experiencing trouble with your connection or with file transfer.

To use adb you have to connect your mobile phone to your computer with an USB cable and install adb. Most Linux systems have prebuilt packages for that tool. On Debian/Ubuntu for example it is called android-tools-adb.

Furthermore you might have to enable ‘USB debugging’ in the Developer options of your phone. After that you can just execute the following on your computer:

adb -d logcat -v time -s conversations

If need be there are also some Apps on the PlayStore that can be used to show the logcat directly on your rooted phone. (Search for logcat). However in regards to further processing (for example to create an issue here on Github) it is more convenient to just use your PC.

If you found a bug in Android Conversations app

Please report it to our issue tracker. If your app crashes please provide a stack trace. If you are experiencing misbehavior please provide detailed steps to reproduce. Always mention whether you are running the latest Play Store version or the current HEAD. If you are having problems connecting to your XMPP server your file transfer doesn’t work as expected please always include a logcat debug output with your issue (see above).

Download

Hope you like this article please comment us.

By Ponglang Petrung

Administrator and PJ at Kamibit Thailand, Android Developer at CodeGears Co., Ltd. and Android Developer, and iOS Application Developer at Appdever

Share your thoughts

Leave a Reply

Loading Facebook Comments ...
Loading Disqus Comments ...