QuickBlox Android SDK includes code snippets with main use cases and framework JAR library.
Clone or download
Latest commit 6c54a65 Dec 17, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github added issue template Apr 27, 2016
cert merge with refactoring Apr 29, 2016
gradle/wrapper 1 ;updated dependencies migrated to androidX library Oct 30, 2018
sample-chat - updated version to 3.9.0 Dec 17, 2018
sample-content - updated version to 3.9.0 Dec 17, 2018
sample-core - updated version to 3.9.0 Dec 17, 2018
sample-custom-objects - updated version to 3.9.0 Dec 17, 2018
sample-pushnotifications - updated version to 3.9.0 Dec 17, 2018
sample-users - updated version to 3.9.0 Dec 17, 2018
sample-videochat-conference - updated version to 3.9.0 Dec 17, 2018
sample-videochat-kotlin - updated version to 3.9.0 Dec 17, 2018
sample-videochat-webrtc - updated version to 3.9.0 Dec 17, 2018
screenshots added resources Jan 10, 2017
snippets 1 ;updated dependencies migrated to androidX library Oct 30, 2018
true 1 ;updated dependencies migrated to androidX library Oct 30, 2018
.gitignore 1: modified gitignore for fabric.properties Oct 26, 2018
LICENSE added LICENSE Feb 5, 2016
README.md - excluded 'jxmpp' lib from ProGuard (in guide); Aug 21, 2017
artifacts.gradle - update gradle to latest version (3.0.1); Jan 19, 2018
build.gradle - updated version to 3.9.0 Dec 17, 2018
gradle.properties 1 ;updated dependencies migrated to androidX library Oct 30, 2018
gradlew merge with refactoring Apr 29, 2016
gradlew.bat merge with refactoring Apr 29, 2016
sdk-settings.gradle added ability to publish in crashlitycs Mar 21, 2017
settings.gradle create videochat-kotlin module Apr 6, 2018


QuickBlox Android SDK

This project contains QuickBlox Android SDK, that includes


QuickBlox is Communication as a Service provider. The platform provides chat using the XMPP protocol, WebRTC signalling for video/voice calling and an API for sending push notifications. It provides a user management system, data storage and more.

Sample structure

Each sample depends from core module, which contains mutual dependencies such as CoreApp, BaseActivity, BaseListAdapter and other useful utils like a ImagePicker, KeyboardUtils, NotificationUtils, etc. Also core module keeps common resources colors, strings, dimens and others. It makes code more clean and clear, and also more object-oriented. In addition the Samples have renewed up-to-date design.

How to run samples

To run samples on Android Studio go to menu File - Import Project. Select path to sample, select Use default gradle wrapper(recommended) and click OK.

Configure sample credentials

To set your own app credentials for sample just update configuration file qb_config.json inside appropriate sample project in assets folder: sample settings

To set additional sample settings use sample_config.json file inside assets folder.

Connect SDK to your existing apps

To get the QuickBlox SDK project running you will need Android Studio and Maven installed.

The repository https://github.com/QuickBlox/quickblox-android-sdk-releases contains binary distributions of QuickBlox Android SDK and an instruction how to connect SDK to your project. Check it out.

Android Studio issues

If you can’t successfully build the gradle after updating to some of the version Quickblox SDK, try to resolve all errors appearing in Gradle Console (but not in code emphasized red!) It may occurs cause some versions of Android Studio can’t completely resolve import dependencies while project has internal errors.

If you still have problems with import SDK library from remote repo follow to the next section.

Add quickblox dependency as local repository

  1. Create local folder, for example /Users/igor/workspace/quickblox

  2. By the link https://github.com/QuickBlox/quickblox-android-sdk-releases clone or download repository

  3. Put in created quickblox folder downloaded quickblox-android-sdk-releases-master.

  4. In project build.grade file replace

maven {
            url "https://github.com/QuickBlox/quickblox-android-sdk-releases/raw/master/"


maven {
            url= "file://Users/igor/workspace/quickblox/quickblox-android-sdk-releases-master"

and use any version of quickblox-android-sdk.

Customize Proguard in Android Studio

To use Proguard in your project create proguard-rules.pro file and put there the next for quickblox modules:

##---------------Begin: proguard configuration for Gson  ---------- 
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.quickblox.core.account.model.** { *; }

##---------------End: proguard configuration for Gson  ----------

##---------------Begin: proguard configuration for quickblox  ----------

#quickblox core module
-keep class com.quickblox.auth.parsers.** { *; }
-keep class com.quickblox.auth.model.** { *; }
-keep class com.quickblox.core.parser.** { *; }
-keep class com.quickblox.core.model.** { *; }
-keep class com.quickblox.core.server.** { *; }
-keep class com.quickblox.core.rest.** { *; }
-keep class com.quickblox.core.error.** { *; }
-keep class com.quickblox.core.Query { *; }

#quickblox users module
-keep class com.quickblox.users.parsers.** { *; }
-keep class com.quickblox.users.model.** { *; }

#quickblox messages module
-keep class com.quickblox.messages.parsers.** { *; }
-keep class com.quickblox.messages.model.** { *; }

#quickblox content module
-keep class com.quickblox.content.parsers.** { *; }
-keep class com.quickblox.content.model.** { *; }

#quickblox chat module
-keep class com.quickblox.chat.parser.** { *; }
-keep class com.quickblox.chat.model.** { *; }
-keep class org.jivesoftware.** { *; }
-keep class org.jxmpp.** { *; }
-dontwarn org.jivesoftware.smackx.**

#quickblox videochat-webrtc module
-keep class org.webrtc.** { *; }

##---------------End: proguard configuration for quickblox  ----------

##---------------End: proguard configuration ----------

To fix errors and force ProGuard to keep certain code, add a -keep line in the ProGuard configuration file. For example: -keep public class MyClass Alternatively, you can add the @Keep annotation to the code you want to keep. Adding @Keep on a class keeps the entire class as-is. Adding it on a method or field will keep the method/field (and it's name) as well as the class name intact.


Questions and feedback

Please raise questions, requests for help etc. via http://stackoverflow.com/questions/tagged/quickblox