StreamChat iOS SDK CHANGELOG

The format is based on Keep a Changelog.

Upcoming

🔄 Changed

4.34.0

July 05, 2023

StreamChat

Added

🐞 Fixed

StreamChatUI

Added

🐞 Fixed

🔄 Changed

4.33.0

June 08, 2023

StreamChat

Added

🐞 Fixed

StreamChatUI

Added

4.32.0

May 26, 2023

StreamChat

Added

🐞 Fixed

StreamChatUI

Added

🐞 Fixed

4.31.0

April 25, 2023

StreamChat

Added

🐞 Fixed

StreamChatUI

Added

🐞 Fixed

⚠️ Known Issue

When changing the text accessibility while the app is running, it won't affect the message cell text, only after closing the app. So this is a regression of #2325. This regression is necessary, since the original fix did not work 100% as it changed the text font size after closing the app, causing the font to be too big when the text accessibility is set to large. If you still want to have the dynamic font size to be working while the app is running, there is a workaround. You need to return a new UIFont instance everytime in ChatMessageContentView.defaultMessageFont. Example:

override var defaultMessageFont: UIFont {
    UIFont.preferredFont(forTextStyle: .body)
}

For more details, you can read the documentation of ChatMessageContentView.defaultMessageFont or read the PR #2575.

4.30.0

March 30, 2023

StreamChat

Added

🐞 Fixed

StreamChatUI

🔄 Changed

Added

🐞 Fixed

4.29.0

March 17, 2023

StreamChat

Added

🐞 Fixed

StreamChatUI

🔄 Changed

Added

4.28.0

February 28, 2023

StreamChat

🔄 Changed

🐞 Fixed

4.27.1

February 20, 2023

StreamChat

🐞 Fixed

StreamChat

Added

4.27.0

February 16, 2023

StreamChat

Added

🔄 Changed

🐞 Fixed

StreamChatUI

🔄 Changed

🐞 Fixed

4.26.0

January 11, 2023

StreamChat

🔄 Changed

🐞 Fixed

StreamChatUI

Added

🐞 Fixed

4.25.1

January 06, 2023

StreamChat

🐞 Fixed

4.25.0

December 15, 2022

StreamChat

🔄 Changed

Added

🐞 Fixed

StreamChatUI

🐞 Fixed

4.24.1

November 23, 2022

StreamChat

🐞 Fixed

4.24.0

November 15, 2022

StreamChat

🔄 Changed

Added

🐞 Fixed

StreamChatUI

🐞 Fixed

4.23.0

October 27, 2022

StreamChat

Added

🐞 Fixed

StreamChatUI

Added

🐞 Fixed

🚨 Minor Breaking Changes

Although we don't usually ship breaking changes in minor releases, in some cases where they are minimal and important, we have to do them to keep improving the SDK long-term. Either way, these changes are for advanced customizations which won't affect most of the customers.

4.22.0

September 26, 2022

StreamChat

Added

🐞 Fixed

StreamChatUI

Added

🐞 Fixed

4.21.2

September 19, 2022

StreamChatUI

🐞 Fixed

4.21.1

September 06, 2022

StreamChatUI

🐞 Fixed

4.21.0

September 01, 2022

🚨 Known Issue: There is a crash on iOS <15 when inserting messages in an empty list, please update to 4.21.1

StreamChat

🔄 Changed

🐞 Fixed

StreamChatUI

🔄 Changed

🐞 Fixed

4.20.0

August 02, 2022

StreamChat

Added

🐞 Fixed

StreamChatUI

Added

4.19.0

July 21, 2022

StreamChat

Added

🐞 Fixed

StreamChatUI

🐞 Fixed

4.18.0

July 05, 2022

StreamChat

Added

🔄 Changed

🐞 Fixed

StreamChatUI

🐞 Fixed

4.17.0

June 22, 2022

StreamChat

Added

🐞 Fixed

🔄 Changed

StreamChatUI

Added

🐞 Fixed

4.16.0

June 10, 2022

StreamChat

💥 Removed

Added

🐞 Fixed

🔄 Changed

StreamChatUI

Added

🐞 Fixed

4.15.1

June 01, 2022

This release does not contain any code changes.

🔄 Changed

4.15.1

June 01, 2022

This release does not contain any code changes.

🔄 Changed

4.15.1

June 01, 2022

This release does not contain any code changes.

🔄 Changed

4.15.0

May 11, 2022

StreamChat

Added

🐞 Fixed

🔄 Changed

StreamChatUI

🔄 Changed

Added

🐞 Fixed

4.14.0

April 26, 2022

StreamChat

Added

🔄 Changed

🐞 Fixed

StreamChatUI

💥 Removed

🔄 Changed

Added

🐞 Fixed

4.13.1

April 04, 2022

StreamChat

🚨 Fixed

4.13.0

March 29, 2022

StreamChat

Added

🐞 Fixed

StreamChatUI

⚠️ Changed

Added

🐞 Fixed

4.12.0

March 16, 2022

StreamChat

Added

🐞 Fixed

StreamChatUI

🔄 Changed

Added

🐞 Fixed

4.11.0

March 01, 2022

Added

🐞 Fixed

4.10.1

February 16, 2022

🔄 Changed

🐞 Fixed

4.10.0

February 01, 2022

Added

🔄 Changed

🐞 Fixed

4.9.0

January 18, 2022

Added

🐞 Fixed

4.8.0

January 4, 2022

Added

🐞 Fixed

4.7.0

December 28, 2021

Added

🐞 Fixed

4.6.0

December 20, 2021

⚠️ Important

🔄 Changed

🐞 Fixed

Added

4.5.2

December 10, 2021

🐞 Fixed

4.5.1

December 01, 2021

🐞 Fixed

🔄 Changed

4.5.0

November 16, 2021

🐞 Fixed

Added

4.4.0

November 11, 2021

🐞 Fixed

Added

4.3.0

November 03, 2021

🐞 Fixed

🔄 Changed

Added

4.2.0

October 26, 2021

Added

🐞 Fixed

🔄 Changed

4.1.0

October 12, 2021

🐞 Fixed

Added

🔄 Changed

4.0.4

October 06, 2021

🐞 Fixed

🔄 Changed

4.0.3

October 01, 2021

Added

🐞 Fixed

4.0.2

September 24, 2021

Added

🐞 Fixed

🔄 Changed

4.0.1

September 17, 2021

Added

🐞 Fixed

🔄 Changed

🐞 Fixed

4.0.0

September 10, 2021

🔄 Changed

4.0.0-RC.1

September 09, 2021

🐞 Fixed

4.0.0-RC

September 03, 2021

⚠️ Breaking Changes from 4.0-beta.11

Understanding ChatChannelVC vs ChatTheadVC vs ChatMessageListVC

A new ChatChannelVC is introduced that represents the old ChatMessageListVC, which was responsible to display the messages from a channel. The ChatThreadVC remains the same and it is responsible for displaying the replies in a thread, but now instead of duplicating the implementation from the channel, both use the ChatMessageListVC and configure it for their needs. For this to be possible the ChatMessageListVC has now a ChatMessageListVCDataSource and ChatMessageListVCDelegate. Both ChatChannelVC and ChatThreadVC implement the ChatMessageListVCDataSource and ChatMessageListVCDelegate.

🔄 Changed

Added

🐞 Fixed

4.0.0-beta.11

August 13, 2021

🐞 Fixed

4.0.0-beta.10

August 11, 2021

Added

🔄 Changed

🐞 Fixed

4.0.0-beta.9

August 05, 2021

⚠️ Breaking Changes from 4.0-beta.8

New Extra Data Type

The new 4.0 release changes how extraData is stored and uses a simpler hashmap-based solution. This approach does not require creating type aliases for all generic classes such as ChatClient.

Example:

client.connectUser(
    userInfo: .init(
        id: userCredentials.id,
        extraData: ["country": .string("NL")]
    ),
    token: token
)

Message, User, Channel, MessageReaction models now store extraData in a [String: RawJSON] container.

let extraData:[String: RawJSON] = .dictionary([
    "name": .string(testPayload.name),
    "number": .integer(testPayload.number)
])

Upgrading from ExtraData

If you are using ExtraData from v3 or before 4.0-beta.8 the steps needed to upgrade are the following:

Before:

struct Birthland: UserExtraData {
    static var defaultValue = Birthland(birthLand: "")
    let birthLand: String
}

After:

extension ChatUser {
    static let birthLandFieldName = "birthLand"
    var birthLand: String {
        guard let v = extraData[ChatUser.birthLandFieldName] else {
            return ""
        }
        guard case let .string(birthLand) = v else {
            return ""
        }
        return birthLand
    }
}

Added

🐞 Fixed

🔄 Changed

4.0.0-beta.8

July 21, 2021

Added

🐞 Fixed

4.0.0-beta.7

July 19, 2021

⚠️ Breaking Changes from 4.0-beta.6

🔄 Changed

🐞 Fixed

Added

/// All deleted messages are always hidden.
case alwaysHidden

/// Deleted message by current user are visible, other deleted messages are hidden.
case visibleForCurrentUser

/// Deleted messages are always visible.
case alwaysVisible

🐞 Fixed

🔄 Changed

4.0.0-beta.6

July 08, 2021

🐞 Fixed

4.0.0-beta.5

July 07, 2021

⚠️ Breaking Changes from 4.0-beta.4

Added

🔄 Changed

🐞 Fixed

4.0.0-beta.4

June 23, 2021

⚠️ Breaking Changes from 4.0-beta.3

Added

🔄 Changed

🐞 Fixed

4.0.0-beta.3

June 11, 2021

⚠️ Breaking Changes from 4.0.0-beta.2

⛔️ Deprecated

Added

🔄 Changed

🐞 Fixed

4.0.0-beta.2

June 04, 2021

⚠️ Breaking Changes from 4.0-beta.1

Severity of changes: 🟢 minor

Added

🐞 Fixed

🔄 Changed

4.0-beta.1

May 21, 2021

Added

🐞 Fixed

🔄 Changed

3.1.9

May 03, 2021

Added

🐞 Fixed

3.1.8

April 23, 2021

🐞 Fixed

3.1.7

April 23, 2021

🐞 Fixed

Added

🔄 Changed

⛔️ Deprecated

3.1.5

April 09, 2021

Added

🐞 Fixed

🔄 Changed

3.1.4

March 29, 2021

🐞 Fixed

Added

🔄 Changed

⛔️ Deprecated

3.1.3

March 12, 2021

🐞 Fixed

Added

3.1.2

March 09, 2021

Added

🔄 Changed

🐞 Fixed

3.1.1

February 26, 2021

🐞 Fixed

3.1.0

February 22, 2021

🐞 Fixed

🔄 Changed

3.0.2

February 12, 2021

StreamChat

Added

🔄 Changed

🐞 Fixed

🚮 Removed

3.0.1

February 2nd, 2021

StreamChat

Added

🔄 Changed

🐞 Fixed

3.0

January 22nd, 2021

StreamChat SDK reaches another milestone with version 3.0 🎉

New features:

To use the new version of the framework, add to your Podfile:

pod 'StreamChat', '~> 3.0'

⚠️ Breaking Changes ⚠️

In order to provide new features like offline support and SwiftUI wrappers, we had to make notable breaking changes to the public API of the SDKs.

Please don't upgrade to version 3.0 before you get familiar with the changes and their impact on your codebase.

To prevent CocoaPods from updating StreamChat to version 3, you can explicitly pin the SDKs to versions 2.x in your podfile:

pod 'StreamChat', '~> 2.0'
pod 'StreamChatCore', '~> 2.0' # if needed
pod 'StreamChatClient', '~> 2.0' # if needed

The framework naming and overall structure were changed. Since version 3.0, Stream Chat iOS SDK consists of:

StreamChat framework

Contains low-level logic and is meant to be used by users who want to build a fully custom UI. It covers functionality previously provided by StreamChatCore and StreamChatClient.

StreamChat UI framework (currently in public beta)

Contains a complete set of ready-to-use configurable UI elements that you can customize a use for building your own chat UI. It covers functionality previously provided by StreamChat.

Sample App

The best way to explore the SDKs and their usage is our sample app. It contains an example implementation of a simple IRC-style chat app using the following patterns:

Documentation Quick Links