All Versions
11
Latest Version
Avg Release Cycle
40 days
Latest Release
389 days ago

Changelog History
Page 1

  • v9.0.0 Changes

    September 24, 2020

    9.0.0

    โšก๏ธ This major version enhances the support for Multi-Conversations and introduces a new conversation list UI. We have also included updates to our conversation screen UI to show the conversation icon, conversation name and description. You can also configure your app to allow users to create multiple conversations from our conversation list screen. We've fixed a bug relating to JWT expiry which invokes an auth delegate required to refresh the JWT and reattempt connection.

    Behavior Changes

    Loading a Conversation

    You can now load a conversation specified by the ID and present the conversation screen.

    [Smooch showConversationWithId:@"your conversationId"];
    

    You can now load a conversation specified by the ID and present the conversation screen with prefilled text in the message input.

    [Smooch showConversationWithId:@"your conversationId" andStartingText:@"your starting text"];
    

    You can now load a conversation specified by the ID and present the conversation screen using the given view controller as presenting view controller.

    [Smooch showConversationWithId:@"your conversationId" fromViewController:[[YourViewController alloc] init]];
    

    You can now load a conversation specified by the ID and present the conversation screen with prefilled text in the message input using the given view controller as presenting view controller.

    [Smooch showConversationWithId:@"your conversationId" fromViewController:[[YourViewController alloc] init] andStartingText:@"your starting text"];
    

    Creating a Conversation View

    You can now create and return a Smooch conversation view controller loading the conversation specified by the ID.

    [Smooch newConversationViewControllerWithId:@"your conversationId" completionHandler:^(NSError * _Nullable error, UIViewController * _Nullable viewController) {
       if (error) {
           // handle error
        else {
           // handle success
       }
    }];
    

    You can now create and return a Smooch conversation view controller with prefilled text in the message input specified by the ID.

    [Smooch newConversationViewControllerWithId:@"your conversationId" startingText:@"your starting text" completionHandler:^(NSError * _Nullable error, UIViewController * _Nullable viewController) {
       if (error) {
           // handle error
       } else {
           // handle success
       }
    }];
    

    Conversation List

    You can now present the Smooch conversation list screen.

    [Smooch showConversationList];
    

    You can now present the Smooch conversation list screen without the create conversation button.

     [Smooch showConversationListWithoutCreateConversationButton];
    

    You can now dismiss the Smooch conversation list screen if shown.

     [Smooch closeConversationList];
    

    You can now present the Smooch conversation list screen, using the given view controller as presenting view controller.

    [Smooch showConversationListFromViewController:[[YourViewController alloc] init]];
    

    You can now present the Smooch conversation list screen without the create conversation button, using the given view controller as presenting view controller.

    [Smooch showConversationListFromViewControllerWithoutCreateConversationButton:[[YourViewController alloc] init]];
    

    You can create the conversation list view controller.

    [Smooch newConversationListViewController];
    

    You can now create the conversation list view controller without the create conversation button.

    [Smooch newConversationListViewControllerWithoutCreateConversationButton];
    

    โšก๏ธ You can now set the conversation list delegate to receive updates.

    [Smooch setConversationListDelegate:self];
    

    Creating a Conversation

    ๐Ÿ“‡ You can now create a conversation for the current user with optional displayName, description, iconUrl, metadata and send a message of type text.

    [Smooch createConversationWithName:@"displayName" description:@"description" iconUrl:@"iconUrl" metadata:@{@"metadataKey": @"metadataValue"} message:@[[[SKTMessage alloc] initWithText:@"message"]] completionHandler:^(NSError * _Nullable error, NSDictionary * _Nullable userInfo) {
        if (error) {
            // handle error
        } else {
            // handle success
        }
    }];
    

    โšก๏ธ Updating a Conversation

    ๐Ÿ“‡ You can now update a conversation for the current user with optional displayName, description, iconUrl and metadata.

    [Smooch updateConversationById:@"your conversationId" withName:@"displayName" description:@"description" iconUrl:@"iconUrl" metadata:@{@"metadataKey": @"metadataValue"} completionHandler:^(NSError * _Nullable error, NSDictionary * _Nullable userInfo) {
        if (error) {
            // handle error
        } else {
            // handle success
        }
    }];
    

    Loading Conversations

    You can now load a list of the next 10 conversations from the server.

    [self.conversationController getMoreConversations:^(NSError * error) {
        if (error) {
         // handle error
        } else {
         // handle success
        }
    }];
    

    ๐Ÿ‘ You can now support pagination with this boolean, representing if the server has more conversations to load for the user.

    [self.conversationController hasMoreConversations];
    

    API Changes (Breaking)

    • โšก๏ธ Updated the following SKTUser properties.
    • userId is now externalId
    • ๐Ÿ“‡ properties is now metadata
    • appUserId is now userId
    • โšก๏ธ Updated the following SKTConversation properties.
    • appUserId is now userId
    • appMakerLastRead is now businessLastRead
    • appMaker is now business
    • โšก๏ธ Updated the following SKTParticipant property for the participants included in the participants array
    • appUserId is now userId
    • โšก๏ธ Updated the following SKTMessage properties for the messages included in the messages array
    • authorId is now userId and will only be included for messages with role equals to user
    • name is now displayName

    API Additions

    1. Class Smooch.h
      • Added class method +(void)showConversationWithId:(NSString *)conversationId
      • Added class method +(void)showConversationWithId:(NSString *)conversationId andStartingText:(nullable NSString *)startingText
      • Added class method +(void)showConversationWithId:(NSString *)conversationId fromViewController:(UIViewController*)viewController;
      • Added class method +(void)showConversationWithId:(NSString *)conversationId fromViewController:(UIViewController*)viewController andStartingText:(nullable NSString *)startingText
      • Added class method +(void)newConversationViewControllerWithId:(NSString *)conversationId completionHandler:(nullable void(^)(NSError * _Nullable error, UIViewController * _Nullable viewController))handler
      • Added class method +(void)newConversationViewControllerWithId:(NSString *)conversationId startingText:(nullable NSString *)startingText completionHandler:(nullable void(^)(NSError * _Nullable error, UIViewController * _Nullable viewController))handler
      • Added class method +(void)showConversationList
      • Added class method +(void)showConversationListWithoutCreateConversationButton
      • Added class method +(void)closeConversationList
      • Added class method +(void)showConversationListFromViewController:(UIViewController*)viewController
      • Added class method +(void)showConversationListFromViewControllerWithoutCreateConversationButton:(UIViewController *)viewController
      • Added class method +(nullable UIViewController *)newConversationListViewController
      • Added class method +(nullable UIViewController *)newConversationListViewControllerWithoutCreateConversationButton
      • Added class method +(void)setConversationListDelegate:(nullable id<SKTConversationListDelegate>)delegate
      • Added class method +(void)createConversationWithName:(nullable NSString *)displayName description:(nullable NSString *)description iconUrl:(nullable NSString *)iconUrl metadata:(nullable NSDictionary *)metadata message:(nullable NSArray<SKTMessage *> *)message completionHandler:(nullable void(^)(NSError * _Nullable error, NSDictionary * _Nullable userInfo))completionHandler
      • Added class method +(void)updateConversationById:(NSString *)conversationId withName:(nullable NSString *)displayName description:(nullable NSString *)description iconUrl:(nullable NSString *)iconUrl metadata:(nullable NSDictionary *)metadata completionHandler:(nullable void(^)(NSError * _Nullable error, NSDictionary * _Nullable userInfo))completionHandler
      • Added class method + (void)getMoreConversations:(void (^)(NSError * _Nullable))completionHandler
      • Added class method + (BOOL)hasMoreConversations
    2. Class SKTSettings.h
      • Added property UIColor *conversationListAccentColor
    3. Added Protocol SKTConversationListDelegate
      • Added method shouldCreateCustomConversationFlow
      • Added method conversationListDidSelectCreateConversation
  • v8.0.2 Changes

    July 30, 2020

    8.0.2

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fixed a bug related to getConversations returning nil for metadata

    ๐Ÿš€ Release 8.0.0

    ๐Ÿš€ The full release notes of the latest major release of the SDK can be found here

  • v8.0.1 Changes

    June 15, 2020

    8.0.1

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fixed a bug that would prevent the customization of the UINavigationBar when using [UINavigationBar appearance].tintColor
    • ๐Ÿ›  Fixed a bug related to the local push notifications text when an image is sent
    • ๐Ÿ›  Fixed a bug related to the scroll that happened when replying to a location request or quick reply message

    ๐Ÿ”„ Changes

    • Increased the limit for attachment uploads to 25 MiB

    ๐Ÿš€ Release 8.0.0

    ๐Ÿš€ The full release notes of the latest major release of the SDK can be found here

  • v8.0.0 Changes

    April 16, 2020

    8.0.0

    ๐Ÿ‘ This major version enhances support for multi-conversations and introduces multi-party where conversations can now host multiple users messaging each other. Read about multi-party conversations on our guide.

    Behavior Changes

    ๐ŸŽ‰ Initializing the SDK

    ๐Ÿ”– Version 8.0.0 of the SDK requires an Integration ID instead of the App ID to be initialized. The Integration ID can be found in the Sunshine Conversations dashboard when connecting an iOS SDK integration as a Customer Channel to your Sunshine Conversations App, or through the API.

    // before

    SKTSettings \*settings = [SKTSettings settingsWithAppId:@"your App ID"]; [Smooch initWithSettings:settings completionHandler:^(NSError \* error, NSDictionary \* userInfo) { if (error != nil) { // handle error state } else { // handle successful initialization } }]
    

    // after

    SKTSettings \*settings = [SKTSettings settingsWithIntegrationId:@"your Integration ID"]; [Smooch initWithSettings:settings completionHandler:^(NSError \* error, NSDictionary \* userInfo) { if (error != nil) { // handle error state } else { // handle successful initialization } }];
    

    Retrieving other Conversations

    You can now retrieve the list of conversations for the current user.

    [Smooch getConversations:^(NSError \*error, NSArray \*conversations) { if (error) { // handle error } else { // handle success } }];
    

    You can also retrieve a conversation with an ID.

    [Smooch loadConversation:@"your Conversation ID" completionHandler:^(NSError \* \_Nullable error, NSDictionary \* \_Nullable userInfo) { if (error) { // handle error } else { // handle success } }];
    

    ๐Ÿ†• New Multi-Party and Multi-Conversation Events

    โšก๏ธ SKTConversationActivity.h has been updated with new events.

    /\*\* \* @abstract An activity type indicating that a participant of the conversation started typing a response. \*/extern NSString const \*SKTConversationActivityTypeTypingStart;/\*\* \* @abstract An activity type indicating that a participant of the conversation stopped typing a response. \*/extern NSString const \*SKTConversationActivityTypeTypingStop;/\*\* \* @abstract An activity type indicating that a participant of the conversation recently read the user message. \* \* This event type is triggered for the current user when the conversation is read on a different device. \*/extern NSString const \*SKTConversationActivityTypeConversationRead;/\*\* \* @abstract NEW: An activity type indicating that the current user has been added to a conversation. \*/extern NSString const \*SKTConversationActivityTypeConversationAdded;/\*\* \* @abstract NEW: An activity type indicating that current user was removed from a conversation. \*/extern NSString const \*SKTConversationActivityTypeConversationRemoved;/\*\* \* @abstract NEW: An activity type indicating that a new participant was added to a conversation the current user is part of. \*/extern NSSTring const \*SKTConversationActivityTypeParticipantAdded;/\*\* \* @abstract NEW: An activity type indicating that a participant was removed from a conversation the current user is part of. \*/extern NSString const \*SKTConversationActivityTypeParticipantRemoved;
    

    API Changes (Breaking)

    1. Class SKTSettings.h
      • Class constructor + (instancetype)settingsWithAppId:(NSString*)appId; replaced with + (instancetype)settingsWithIntegrationId:(NSString *)integrationId;.
      • Class constructor + (instancetype)settingsWithAppId:(NSString*)appId andAuthCode:(NSString*)authCode; replaced with + (instancetype)settingsWithIntegrationId:(NSString*)integrationId andAuthCode:(NSString *)authCode;
    2. Class SKTConfig.h
      • Constructor - (instancetype)initWithAppId:(NSString *)appId replaced with - (instancetype)initWithIntegrationId:(NSString *)integrationId;
    3. Class SKTMessage.h
      • property (readonly) BOOL isFromCurrentUser changed to @property (nonatomic) BOOL isFromCurrentUser
    4. Class SKTConversation.h
      • NSDate *appMakerLastRead is now _Nullable

    API Additions

    1. Class SKTSettings.h
      • Added property NSString *integrationId
    2. Class SKTConfig.h
      • added property NSString *appName.
      • added read-only property NSString *integrationId.
    3. Class Smooch.h
      • Added method + (void)conversationById:(NSString *)conversationId completionHandler:(nullable void(^)(NSError * _Nullable error, SKTConversation * _Nullable conversation))handler;
      • Added class method + (void)getConversations:(void (^)(NSError *_Nullable, NSArray *_Nullable))completionHandler;
      • Added + (void)updateConversationDelegate:(id<SKTConversationDelegate>)delegate;
    4. Class SKTConversation.h
      • Added property NSDate *lastUpdatedAt
      • Added readonly property NSString *displayName
      • Added readonly property NSArray *participants
      • Add conformity to NSSecureCoding
    5. Class SKTMessage.h
      • Add conformity to NSSecureCoding
    6. Protocol SKTConversationDelegate
      • Added - (void)conversationListDidRefresh:(NSArray<SKTConversation *> *)conversationList;
    7. SKTConversationActivity.h
      • Added @property(readonly, nullable) NSString *conversationId
      • Added @property(readonly, nullable) NSString *appUserId;
    8. Class SKTParticipant.h
      • New class that represents participants in a conversation.
  • v7.1.2 Changes

    October 11, 2019

    Whats's New?

    • ๐Ÿ›  Fixed push notification token decoding for apps built with XCode 11
  • v7.1.1 Changes

    October 02, 2019

    Whats's New?

    • ๐Ÿ›  Fixed a crash when calling +loadConversation:completionHandler: and a user hasn't been created. The function now returns an error in the completion handler
    • ๐Ÿ›  Fixed a crash that would happen sometimes when dismissing and opening the conversation screen
    • ๐Ÿš€ dSYM file is now available for each release
  • v7.1.0 Changes

    September 23, 2019

    Whats's New?

    โœ‚ Removed error when calling +login:jwt:completionHandler with the same credentials from the current session

  • v7.0.1 Changes

    September 13, 2019

    Whats's New?

    ๐Ÿ›  Fixed a bug where some assets were not available for some architectures

  • v7.0.0 Changes

    September 12, 2019

    ๐Ÿ‘ Dark Mode support

    • โž• Added Dark Mode support. Due to the addition and usage of new iOS 13 APIs, Xcode 11 is now required to compile



  • v6.16.0 Changes

    August 28, 2019

    What's New?

    โž• Added the ability to customize the text color for user messages. To customize it, set your preferred color in SKTSettings.userMessageTextColor.

    Objective-C

    SKTSettings\* settings = [SKTSettings settingsWithAppId:@"YOUR\_APP\_ID"]; settings.userMessageTextColor = [UIColor redColor];
    

    Swift

    var settings = SKTSettings(appId: "YOUR\_APP\_ID") settings.userMessageTextColor = UIColor.redColor();
    

    API Additions

    ๐Ÿ“„ 1. Class SKTSettings

    • Added property userMessageTextColor