Which XMPP library would be the best choice nowadays for Android development?
I've been using the patched Smack library as is suggested in many other questions here in SO. However, that's a patched version of the Smack API from two years ago. And although it generally works well I'm exploring any other, more recent options.
I've been looking at the official Smack API and after a little research, it seems it might work just fine nowadays (although I have not tried it yet in a real application).
There's also another solution I came across, Beem's aSMACK library. Beem is a fairly new XMPP client for android and from what I understand they are using their own patched version of aSMACK.
Finally, there's aSMACK but that too hasn't been updated for quite some time (as the site suggests).
Do you have any other suggestions or can you explain why I should choose one of the above over the rest?
Smack
Smack is a open-source XMPP client library. Since version 4.1 it runs natively on Android. For more information have a look at the "Smack 4.1 Readme" and see the Smack project page at Ignite Realtime. aSmack is obsolete and deprecated in favor of Smack 4.1.
Use qsmack for android
https://code.google.com/p/qsmack/downloads/list
Its the latest build for Android
I have worked on one to one chat, group chat, video transfer, audio transfer, last seen, change registration number... almost complete whats app. I have created lots of plugin on openfire
Using Smack 4.1 Readme and Upgrade Guide
Using Android studio 2.3, Recently I have implemented a demo in a very simple way.
-> Just Add gradle dependency in app level gradle as below
-> Configure Connection Configuration
NOTE : Call this in AsyncTask or in other background thread
-> Use
isConnected()
andisAuthenticated()
-> Use
ChatManager
for addchatListener
.I would like to use libstrophe and jni. Goals to use this is cross platform, simple to use and performance. libstrophe is written in c so, it easy to write android makefile since the dependency is only openssl and expat lib. In my case, I'm using openssl and expat lib from libjingle which already port to android and ios. (Just need to port gyp file to android makefile or IOS project).
Below is my android makefile
I recently stumbled across another open-source solution: jaxmpp2
jaxmpp2 also targets Android (and Java SE). I can't really say anything else about it, because I don't use jaxmpp2 in my Android/XMPP projects. But it looks like a valid alternative to aSmack.
You can use QuickBlox1 for free.
It provides XMPP server out of the box with lots of features, you can read about features there http://quickblox.com/developers/Chat
Here is an example how to start using QuickBlox with aSmack library http://quickblox.com/developers/Android_XMPP_Chat_Sample