From v3.5 to v3.6
UIKit v3.6 for iOS has introduced major changes to SBUModuleSet
. Refer to the following breaking changes and customization changes.
Breaking changes
The following changes have been made to the public interfaces in SBUModuleSet
.
- Deprecated all public interfaces in
SBUModuleSet
and every module component such asheaderComponent
in v3.5. - Added new public interfaces in
SBUModuleSet
and every module component. Each public interface is now a metatype property.
SBUModuleSet customization changes
Starting in UIKit v3.6 for iOS, all module instances are assigned to the type instead of value of the corresponding SBUModuleSet
interface. Refer to the group channel module example below in the code snippet.
As shown in the code snippet below, you need to assign the module instance to the SBUModuleSet
interface type when customizing it.
Note: If you've been previously customizing modules by assigning custom module instances to
SBUModuleSet
, you need to be aware that starting in v3.6, the new interface doesn't reflect any customizations made to internal properties of the module instances.
Refer to the group channel module example in the code snippet below to learn how to create a new module instance with the SBUModuleSet
interface type first, then apply customizations to the instance's internal properties.
Module component customization changes
All module components in UIKit v3.6 for iOS are assigned to the type instead of value of the corresponding SBUModuleSet
interface. Refer to the group channel module example below in the code snippet.
As shown in the code snippet below, you need to assign the module component instance to the SBUModuleSet
interface type when customizing it.
Note: If you've been previously customizing module components by assigning custom component instances to
SBUModuleSet
, you need to be aware that starting in v3.6, the new interface doesn't reflect any customizations made to internal properties of the module instances.
Refer to the group channel module example in the code snippets below to learn how to create a new module component instance with the SBUModuleSet
interface type first, then apply customizations to the instance's internal properties.
Customize module component in view controller
You can customize the module component by setting the custom component in the corresponding view controller.
Note: If you update the custom module component after
loadView()
has been called, invoke theconfigure
method of the module component. To learn more, see Sendbird UIKit life cycle.
Customize module component in module
You can customize the module component by setting the custom component in the corresponding module.
Note: You need to set up the view components first before calling
super.configure(delegate:theme:)
. To learn more, see Component life cycle.
Public interface name changes
The following tables show the name changes of interfaces in each key function.
List channels
Class | Type | From v3.5 | To v3.6 |
---|---|---|---|
SBUModuleSet | SBUGroupChannelListModule | groupChannelListModule | GroupChannelListModule |
SBUModuleSet | SBUOpenChannelListModule | openChannelListModule | OpenChannelListModule |
SBUGroupChannelListModule | SBUGroupChannelListModule.Header | headerComponent | HeaderComponent |
SBUGroupChannelListModule | SBUGroupChannelListModule.List | listComponent | ListComponent |
SBUOpenChannelListModule | SBUOpenChannelListModule.Header | headerComponent | HeaderComponent |
SBUOpenChannelListModule | SBUOpenChannelListModule.List | listComponent | ListComponent |
Chat in a channel
Class | Type | From v3.5 | To v3.6 |
---|---|---|---|
SBUModuleSet | SBUBaseChannelModule | baseChannelModule | BaseChannelModule |
SBUModuleSet | SBUGroupChannelModule | groupChannelModule | GroupChannelModule |
SBUModuleSet | SBUOpenChannelModule | openChannelModule | OpenChannelModule |
SBUModuleSet | SBUFeedNotificationChannelModule | feedNotificationChannelModule | FeedNotificationChannelModule |
SBUModuleSet | SBUChatNotificationChannelModule | chatNotificationChannelModule | ChatNotificationChannelModule |
SBUBaseChannelModule | SBUBaseChannelModule.Header | headerComponent | HeaderComponent |
SBUBaseChannelModule | SBUBaseChannelModule.List | listComponent | ListComponent |
SBUBaseChannelModule | SBUBaseChannelModule.Input | inputComponent | InputComponent |
SBUGroupChannelModule | SBUGroupChannelModule.Header | headerComponent | HeaderComponent |
SBUGroupChannelModule | SBUGroupChannelModule.List | listComponent | ListComponent |
SBUGroupChannelModule | SBUGroupChannelModule.Input | inputComponent | InputComponent |
SBUOpenChannelModule | SBUOpenChannelModule.Header | headerComponent | HeaderComponent |
SBUOpenChannelModule | SBUOpenChannelModule.List | listComponent | ListComponent |
SBUOpenChannelModule | SBUOpenChannelModule.Input | inputComponent | InputComponent |
SBUOpenChannelModule | SBUOpenChannelModule.Media | mediaComponent | MediaComponent |
SBUFeedNotificationChannelModule | SBUFeedNotificationChannelModule.Header | headerComponent | HeaderComponent |
SBUFeedNotificationChannelModule | SBUFeedNotificationChannelModule.List | listComponent | ListComponent |
SBUChatNotificationChannelModule | SBUChatNotificationChannelModule.Header | headerComponent | HeaderComponent |
SBUChatNotificationChannelModule | SBUChatNotificationChannelModule.List | listComponent | ListComponent |
Create a channel
Class | Type | From v3.5 | To v3.6 |
---|---|---|---|
SBUModuleSet | SBUCreateChannelModule | createGroupChannelModule | CreateChannelModule |
SBUModuleSet | SBUCreateOpenChannelModule | createOpenChannelModule | CreateOpenChannelModule |
SBUCreateChannelModule | SBUCreateChannelModule.Header | headerComponent | HeaderComponent |
SBUCreateChannelModule | SBUCreateChannelModule.List | listComponent | ListComponent |
SBUCreateOpenChannelModule | SBUCreateOpenChannelModule.Header | headerComponent | HeaderComponent |
SBUCreateOpenChannelModule | SBUCreateOpenChannelModule.ProfileInput | profileInputComponent | ProfileInputComponent |
Register as operator
Class | Type | From v3.5 | To v3.6 |
---|---|---|---|
SBUModuleSet | SBURegisterOperatorModule | groupRegisterOperatorModule | GroupRegisterOperatorModule |
SBUModuleSet | SBURegisterOperatorModule | openRegisterOperatorModule | OpenRegisterOperatorModule |
SBURegisterOperatorModule | SBURegisterOperatorModule.Header | headerComponent | HeaderComponent |
SBURegisterOperatorModule | SBURegisterOperatorModule.List | listComponent | ListComponent |
List users
Class | Type | From v3.5 | To v3.6 |
---|---|---|---|
SBUModuleSet | SBUUserListModule | groupUserListModule | GroupUserListModule |
SBUModuleSet | SBUUserListModule | openUserListModule | OpenUserListModule |
SBUUserListModule | SBUUserListModule.Header | headerComponent | HeaderComponent |
SBUUserListModule | SBUUserListModule.List | listComponent | ListComponent |
Configure channel settings
Class | Type | From v3.5 | To v3.6 |
---|---|---|---|
SBUModuleSet | SBUGroupChannelPushSettingsModule | groupChannelPushSettingsModule | GroupChannelPushSettingsModule |
SBUModuleSet | SBUGroupChannelSettingsModule | groupChannelSettingsModule | GroupChannelSettingsModule |
SBUModuleSet | SBUOpenChannelSettingsModule | openChannelSettingsModule | OpenChannelSettingsModule |
SBUGroupChannelPushSettingsModule | SBUGroupChannelPushSettingsModule.Header | headerComponent | HeaderComponent |
SBUGroupChannelPushSettingsModule | SBUGroupChannelPushSettingsModule.List | listComponent | ListComponent |
SBUGroupChannelSettingsModule | SBUGroupChannelSettingsModule.Header | headerComponent | HeaderComponent |
SBUGroupChannelSettingsModule | SBUGroupChannelSettingsModule.List | listComponent | ListComponent |
SBUOpenChannelSettingsModule | SBUOpenChannelSettingsModule.Header | headerComponent | HeaderComponent |
SBUOpenChannelSettingsModule | SBUOpenChannelSettingsModule.List | listComponent | ListComponent |
Invite users
Class | Type | From v3.5 | To v3.6 |
---|---|---|---|
SBUModuleSet | SBUInviteUserModule | inviteUserModule | InviteUserModule |
SBUInviteUserModule | SBUInviteUserModule.Header | headerComponent | HeaderComponent |
SBUInviteUserModule | SBUInviteUserModule.List | listComponent | ListComponent |
Moderate channels and users
Class | Type | From v3.5 | To v3.6 |
---|---|---|---|
SBUModuleSet | SBUModerationsModule | groupModerationsModule | GroupModerationsModule |
SBUModuleSet | SBUModerationsModule | openModerationsModule | OpenModerationsModule |
SBUModerationsModule | SBUModerationsModule.Header | headerComponent | HeaderComponent |
SBUModerationsModule | SBUModerationsModule.List | listComponent | ListComponent |
Search messages
Class | Type | From v3.5 | To v3.6 |
---|---|---|---|
SBUModuleSet | SBUMessageSearchModule | messageSearchModule | MessageSearchModule |
SBUMessageSearchModule | SBUMessageSearchModule.Header | headerComponent | HeaderComponent |
SBUMessageSearchModule | SBUMessageSearchModule.List | listComponent | ListComponent |
Reply to messages
Class | Type | From v3.5 | To v3.6 |
---|---|---|---|
SBUModuleSet | SBUMessageThreadModule | messageThreadModule | MessageThreadModule |
SBUMessageThreadModule | SBUMessageThreadModule.Header | headerComponent | HeaderComponent |
SBUMessageThreadModule | SBUMessageThreadModule.List | listComponent | ListComponent |
SBUMessageThreadModule | SBUMessageThreadModule.Input | inputComponent | InputComponent |