• Stars
    star
    417
  • Rank 103,829 (Top 3 %)
  • Language
    Java
  • License
    BSD 3-Clause "New...
  • Created about 12 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

QuickBlox Android SDK includes code snippets with main use cases and framework JAR library.

QuickBlox Android SDK

This project contains:

Overview

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

Sample structure

Each "NEW" sample is an independent project, which contains final dependencies and all "Utils" and "Helpers" are included into it to be more understandable and clever. Each sample shows how to create your own project with QuickBlox SDK, and how to use it to extend your existing project.

Each "OLD" sample depends on the Sample-Core module, which contains mutual dependencies such as CoreApp, BaseActivity, BaseListAdapter and other useful utils such as ImagePicker, KeyboardUtils, NotificationUtils, etc. Also the Sample-Core module keeps common resources colors, strings, dimens and others. It makes your code more clean and clear, and also more object-oriented. In addition the Samples have been renewed with 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 create Quickblox account (if you don't have one) and find your own credentials you should visit our 5 minute guide

  • New samples
    • To set your own app credentials you should open App.java (or App.kt if you have downloaded the Kotlin sample) and paste the credentials into the values of constants:

New Samples Credentials

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

Old Samples Credentials

  • 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 to have installed Android Studio and Maven.

The repository https://github.com/QuickBlox/quickblox-android-sdk-releases contains binary distributions of QuickBlox Android SDK and manual on 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 Quickblox SDK version, try to resolve all errors appearing in Gradle Console (but not in code emphasized red!) It may occur because of some versions of Android Studio can’t completely resolve import dependencies while a project has internal errors.

If you still have problems with importing the SDK library from remote repo, go to the next section.

Add quickblox dependency as local repository

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

  2. Clone or download the repository from https://github.com/QuickBlox/quickblox-android-sdk-releases

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

  4. In project replace build.grade file

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

to

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 below rules 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 its name) as well as the class name intact.

Documentation

Questions and feedback

Please ask questions, requests for help etc.

License

BSD

More Repositories

1

quickblox-ios-sdk

QuickBlox iOS SDK for messaging and video calling
Objective-C
397
star
2

q-municate-android

Qmunicate Android chat application
Kotlin
252
star
3

q-municate-ios

Q-municate iOS repository
Swift
163
star
4

ChattAR-ios

Augmented Reality Chat for iOS code sample (works with Facebook API and QuickBlox API)
Objective-C
128
star
5

quickblox-javascript-sdk

JavaScript SDK of QuickBlox cloud backend platform
JavaScript
105
star
6

QMChatViewController-ios

An elegant ready to go chat view controller for iOS applications
Objective-C
75
star
7

javascript-media-recorder

WebRTC video recorder library for Javascript
JavaScript
74
star
8

q-municate-web

Q-municate Web chat application
TypeScript
64
star
9

ChatMessagesAdapter-android

QuickBlox ready-to-go chat messages adapter for Android
Java
54
star
10

q-municate-services-ios

Easy-to-use services for Quickblox SDK, for speeding up development of iOS chat applications
Objective-C
31
star
11

quickblox-android-sdk-releases

This repository contains binary distributions of Android products released by QuickBlox.
31
star
12

quickblox-dotnet-sdk

QuickBlox .NET SDK
C#
17
star
13

quickblox-react-native-samples

quickblox-react-native-samples
JavaScript
17
star
14

q-consultation

TypeScript
10
star
15

quickblox-flutter-sdk

quickblox-flutter-sdk
8
star
16

BB10-Facebook-Connector

BB10 Facebook Connector
C++
7
star
17

widget-chat-web

Web Chat widget by QuickBlox
JavaScript
7
star
18

quickblox-status-checker-2.0

Rewritten original status checker and added some new checks for chat 2.0
JavaScript
6
star
19

react-ui-kit

JavaScript
6
star
20

sample-chatbot-python

QuickBlox compatible Python chat bot
Python
5
star
21

android-ui-kit

Kotlin
4
star
22

quickblox-react-native-sdk

quickblox-react-native-sdk
4
star
23

q-municate-dotnet

Q-municate .NET
C#
4
star
24

examples

JavaScript
3
star
25

quickblox-flutter-samples

quickblox-flutter-samples
Dart
3
star
26

QuickBlox-Tigase-CustomFeatures

A list of QuickBlox custom features for www.tigase.org
Java
3
star
27

sample-chat-xmpp-web

JavaScript
3
star
28

sample-powerbot-python-rpi

QuickBlox PowerBot
Python
3
star
29

Documentation

The markdown sources of QuickBlox documentation
3
star
30

ios-ui-kit

Swift
2
star
31

SDK-dotnet

QuickBlox SDK for .NET platform
C#
2
star
32

web-notifications

A library to help you with web notifications.
JavaScript
2
star
33

qb-ai-assistant-proxy-server

JavaScript
2
star
34

email_templates

Email templates examples
2
star
35

quickblox-blackberry10-sdk

Quickblox BlackBerry10 SDK description
C++
2
star
36

android-ntp-time-utils

Android utils to get NTP time
Java
1
star
37

quickblox-docs

Interactive documentation for QuickBlox
1
star
38

labs-ios

QuickBlox iOS experimental features
Objective-C
1
star
39

stackoverflow-chatbot

StackOverflow Chat Bot
JavaScript
1
star
40

Gyazo-AWS-S3

Script that setups Gyazo server to store images on AWS S3
PHP
1
star
41

AR-Locator-ios

Accessible AR Locator (for bank branches and ATMs) code sample iOS
Objective-C
1
star
42

push-sender-tools

A list of apps to test push notifications delivery
Objective-C
1
star
43

CodeStyle-Guidelines-for-Developers

CodeStyle Guidelines for Developers
1
star