Igor Khomenko

iOS SDK 2.4.5 release

Posted by Igor Khomenko on October 16, 2015

Hi guys,

we are ready to release the next version of iOS SDK with Xcode7 and Swift2 support!

What’s new:

  • SDK:
    • Fixed isLoggedIn for chat on iOS 7.
    • Dialog onLeave block not fired” issue fixed.
    • Simplified isEqual in iOS SDK models.
    • Add Generics and Nullability support.
    • Renamed QBChat login/logout/isLoggedIn methods to connect/disconnect/isConnected and QBChatDelegate delegate methodschatDidLogin/chatDidNotLoginWithError to chatDidConnect/chatDidNotConnectWithError
    • Fixed issue with custom parameters in createDialog:successBlock:errorBlock: request.
    • Removed sendDirectPresenceWithStatus in QBChat.
  • Samples:
    • Migrated to Xcode7 support
    • Swift 2, Nullability, Generics support in Swift Chat Sample.
    • Chat Samples: Fixed issue when dialog info was not correctly displayed.
  • QMServices (0.2.3):
    • Implemented update message mechanism.

Download iOS SDK 2.4.5

Happy coding!

Igor Khomenko

Javascript SDK release 1.15.1

Posted by Igor Khomenko on October 16, 2015

Today we announced Javascript SDK release 1.15.1

This new version has 2 main features:

Download Javascript SDK 1.15.1



Igor Khomenko

iOS SDK 2.4.3

Posted by Igor Khomenko on September 30, 2015

Every day the team comes up with new ideas how to improve our platform and then we integrate them into our products.

Today we release a new version of iOS SDK 2.4.3 with a lot of improvements that can simplify QuickBlox integration and apps development.


  •  SDK:
    • Added total unread messages count request.
    • Delete dialogs request with ‘forAllUsers’ option (deleting dialogs only for current user or for all users).
    • Delete messages request with ‘forAllUsers’ option (deleting messages only for current user or for all users).
    • Add ability to pass ‘mark_as_read=0′ for get messages request.
    • Removed QBChatRoom class
    • Quickblox framework could be connected to Swift projects without bridging header.
    • Replaced group chat delegates to handle online users statuses with blocks.
    • Renamed Messages module to PushNotifications module
  • Site Documentation:
    • Swift code snippets are added to chat sample documentation.
  • Samples:
    • Push notifications and auto login features are added to the Objective-C Chat Sample and Swift Chat Sample.
  • QMChatViewController:
    • Updated to 0.2.2 version.
  • QMServices:
    • Updated to 0.2.1 version.


Download iOS SDK  and start building your awesome apps!

Igor Khomenko

Message carbons

Posted by Igor Khomenko on September 22, 2015

The Message Carbons became the standart feature of all modern chat messaging applications.

It defines an approach for ensuring that all of user’s devices get both sides of all conversations in order to avoid confusion. Information about the current state of a conversation is shared between all of a user’s clients that enable this feature.

QuickBlox does support the Message carbons across all SDKs: iOS, Android and Javascript.

We prepared the guides how to enable and use this feature to improve your apps:

Wish you happy apps building!

Igor Khomenko

Chat Message Lifecycle: a note about statuses

Posted by Igor Khomenko on September 21, 2015

It’s a standard feature now to manage message’s statuses in every chat application.

All popular messaging applications like WhatsApp, Telegram messenger, Viber provide the exact status of your messages, from the moment you send them until they are read by the recipient.

However each messenger has it’s own explanation of how a messaging app should deal with statuses.
Let’s review the most popular apps:


The WhatsApp team provides the following help page: 
“What are those check marks next to my messages?” –

Check marks will appear next to each message you send. Here is what each one indicates:

  • message successfully sent.
  • message successfully delivered to the recipient’s phone.
  • the recipient has read your message.

In a group chat, the second check marks will appear when all participants in the group have received your message. The two blue check marks will appear when all participants in the group have read your message.

This is more or less what the end user expects.


Telegram messenger

The Telegram messenger provides a bit different policy regarding ‘delivered’ status:

“What do the green checks mean?” –

One check — message delivered to the Telegram cloud and your friend has been notified, if he allows notifications.
Two checks — message read (your friend opened Telegram and opened the conversation with the message).

We don‘t have a ’delivered to device’ status for messages, because Telegram can run on as many devices as you want. So which particular one would that check mean?



The Viber team provides the same UX as WhatsApp:

“Message delivery status” –

When your message has been sent, the text bubble and text will have filled in (the text becomes black and the dialog background becomes blue).  This is an indication that your message has been sent to the server. In other words, it has successfully been sent on its way to the recipient.

When you see the status “Delivered” underneath your message, this means that your message has been received by the recipient. The “Delivered” status does not indicate that the message has been opened.

The “Seen” delivery status indicates that the recipient has opened the conversation to which you have sent the message. The “Seen” status will disappear once the recipient replies to your message. Note that the “Seen” delivery status does not guarantee that your message has been read, nor does it appear in group chats.


The whole Chat Message Lifecycle

With a really big experience in chat messaging we developed  the following Chat Message Lifecycle schema:

chat_message_statuses_infoLet’s review each status:

  1. Sent – this is an indication that your message has been sent to the server. The end user can also get ‘Not sent’ status in a case he doesn’t have an active Internet connection.
  2. Delivered to the backend – this is an indication that your message has been delivered to the server. It’s also possible that your message has not reached the server, for example by timeout of 30-60 seconds. This is ‘Not delivered’ status. This is how we call it in the classic messengers – Sent.
  3. Not acknowledged on the backend – The backend can return an error to the sender in a case when he is in the recipient’s black list.
  4. Delivered – this means that a message has been received by the recipient (delivered to the recipient’s phone). This is how we call it in the classic messengers – Delivered.
  5. Read – the status indicates that the recipient has opened the conversation to which you have sent the message and read the message.  This is how we call it in the classic messengers – Read.

As we highlighted above, it’s enough and common to support only 3 statuses (Sent, Delivered, Read), but as you can see there are more statuses under the hood.
Feel free to provide your feedback, how you manage the chat message statuses in your application