Skip to content

Conversation

@nuno-vieira
Copy link
Member

@nuno-vieira nuno-vieira commented Dec 17, 2025

🔗 Issue Links

https://linear.app/stream/issue/IOS-1023/v5-create-a-ui-module-in-uikit-repo-to-share-presentation-logic-and

🎯 Goal

  • Adds a new Module (StreamChatCommonUI) to share UI Logic with the SwiftUI SDK.
  • Removes UISDKDocumentionTests unused target

📝 Summary

  • Creates the StreamChatCommonUI Module
  • Moves the Appearance object to the new module
  • Moves Image Resources to the new module
  • Moves Fonts to the new Module
  • Moves Localisation to the new Module
  • Adds new test schema for the new module
  • Creates a Static Target for StreamChatCommonUI (Seperate PR)
  • Updates CI/Infra Scripts (Seperate PR)

🛠 Implementation

Creating the StreamChatCommonUI will allow sharing Theming, Styling, Formatting and ViewModels with SwiftUI. This will make both SDKs more consistent and faster to build new features.

Some Utils stuff, like UIKit extensions, will need to be public or duplicated in StreamChatUI. So for now, since it is simple stuff, I duplicated it, but one other option could be to use "@Package" access control.

🧪 Manual Testing Notes

Smoke Testing

☑️ Contributor Checklist

  • I have signed the Stream CLA (required)
  • This change should be manually QAed
  • Changelog is updated with client-facing changes
  • Changelog is updated with new localization keys
  • New code is covered by unit tests
  • Documentation has been updated in the docs-content repo

@coderabbitai
Copy link

coderabbitai bot commented Dec 17, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch add/presentation-module

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Dec 17, 2025

1 Warning
⚠️ Big PR
1 Message
📖 There seems to be app changes but CHANGELOG wasn't modified.
Please include an entry if the PR includes user-facing changes.
You can find it at CHANGELOG.md.

Generated by 🚫 Danger

@nuno-vieira nuno-vieira changed the title Add StreamChatCommonUI Module Add StreamChatCommonUI Module [v5] Dec 18, 2025
@nuno-vieira nuno-vieira changed the title Add StreamChatCommonUI Module [v5] [v5] Add StreamChatCommonUI Module Dec 18, 2025
@nuno-vieira nuno-vieira force-pushed the add/presentation-module branch from eb16164 to e9c6ba7 Compare December 18, 2025 14:52
@nuno-vieira nuno-vieira marked this pull request as ready for review December 23, 2025 13:29
@nuno-vieira nuno-vieira requested a review from a team as a code owner December 23, 2025 13:29
Copy link
Contributor

@martinmitrevski martinmitrevski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good, but seems a lot of checks are failing

@nuno-vieira
Copy link
Member Author

looks good, but seems a lot of checks are failing

Yes, I'm still fixing CI stuff, I will let you know when all is green

@nuno-vieira nuno-vieira force-pushed the add/presentation-module branch from f0e6133 to 2e06c1b Compare December 23, 2025 16:34
@nuno-vieira nuno-vieira force-pushed the add/presentation-module branch 3 times, most recently from ef55570 to ae941a3 Compare December 23, 2025 17:13
@nuno-vieira nuno-vieira force-pushed the add/presentation-module branch from ae941a3 to 573c9b4 Compare December 23, 2025 17:26
@github-actions
Copy link

Public Interface

+ public enum L10n  
+ 
+   public static var you: String
+   
+ 
+   public static func currentSelection(_ p1: Int,_ p2: Int)-> String
+   
+ 
+   public enum Alert  
+   
+     public enum Actions  
+     
+       public static var cancel: String
+       public static var delete: String
+       public static var flag: String
+       public static var ok: String
+       
+     
+     public enum Poll  
+     
+       public static var addComment: String
+       public static var createErrorMessage: String
+       public static var discardChanges: String
+       public static var discardChangesMessage: String
+       public static var end: String
+       public static var endTitle: String
+       public static var genericErrorTitle: String
+       public static var keepEditing: String
+       public static var send: String
+       public static var suggestOption: String
+       public static var updateComment: String
+       
+     
+     
+   
+   public enum Attachment  
+   
+     public static var maxSizeExceeded: String
+     
+   
+     public static func maxCountExceeded(_ p1: Int)-> String
+     
+   
+   public enum Audio  
+   
+     public enum Player  
+     
+       public static func rate(_ p1: Any)-> String
+       
+     
+     
+   
+   public enum Channel  
+   
+     public enum Item  
+     
+       public static var audio: String
+       public static var emptyMessages: String
+       public static var photo: String
+       public static var typingPlural: String
+       public static var typingSingular: String
+       public static var video: String
+       
+     
+       public enum Search  
+       
+         public static func `in`(_ p1: Any)-> String
+         
+       
+       
+     
+     public enum Name  
+     
+       public static var and: String
+       public static var missing: String
+       
+     
+       public static func andXMore(_ p1: Any)-> String
+       
+     
+     
+   
+   public enum ChannelList  
+   
+     public static var search: String
+     
+   
+     public enum Empty  
+     
+       public static var button: String
+       public static var subtitle: String
+       public static var title: String
+       
+     
+     public enum Error  
+     
+       public static var message: String
+       
+     
+     public enum Preview  
+     
+       public enum Voice  
+       
+         public static var recording: String
+         
+       
+       
+     
+     public enum Search  
+     
+       public enum Empty  
+       
+         public static func subtitle(_ p1: Any)-> String
+         
+       
+       
+     
+     
+   
+   public enum Composer  
+   
+     public enum Checkmark  
+     
+       public static var channelReply: String
+       public static var directMessageReply: String
+       
+     
+     public enum LinksDisabled  
+     
+       public static var subtitle: String
+       public static var title: String
+       
+     
+     public enum Picker  
+     
+       public static var camera: String
+       public static var cancel: String
+       public static var file: String
+       public static var media: String
+       public static var poll: String
+       public static var title: String
+       
+     
+     public enum Placeholder  
+     
+       public static var giphy: String
+       public static var message: String
+       public static var messageDisabled: String
+       public static var slowMode: String
+       
+     
+     public enum QuotedMessage  
+     
+       public static var giphy: String
+       public static var photo: String
+       
+     
+     public enum Suggestions  
+     
+       public enum Commands  
+       
+         public static var header: String
+         
+       
+       
+     
+     public enum Title  
+     
+       public static var edit: String
+       public static var reply: String
+       
+     
+     
+   
+   public enum Dates  
+   
+     public static var timeAgoDaysSingular: String
+     public static var timeAgoHoursSingular: String
+     public static var timeAgoMinutesSingular: String
+     public static var timeAgoMonthsSingular: String
+     public static var timeAgoSecondsSingular: String
+     public static var timeAgoWeeksSingular: String
+     
+   
+     public static func timeAgoDaysPlural(_ p1: Int)-> String
+     public static func timeAgoHoursPlural(_ p1: Int)-> String
+     public static func timeAgoMinutesPlural(_ p1: Int)-> String
+     public static func timeAgoMonthsPlural(_ p1: Int)-> String
+     public static func timeAgoSecondsPlural(_ p1: Int)-> String
+     public static func timeAgoWeeksPlural(_ p1: Int)-> String
+     
+   
+   public enum Message  
+   
+     public static var deletedMessagePlaceholder: String
+     public static var edited: String
+     public static var onlyVisibleToYou: String
+     public static var unsupportedAttachment: String
+     
+   
+     public static func translatedTo(_ p1: Any)-> String
+     
+   
+     public enum Actions  
+     
+       public static var copy: String
+       public static var delete: String
+       public static var edit: String
+       public static var flag: String
+       public static var inlineReply: String
+       public static var markUnread: String
+       public static var resend: String
+       public static var threadReply: String
+       public static var userBlock: String
+       public static var userMute: String
+       public static var userUnblock: String
+       public static var userUnmute: String
+       
+     
+       public enum Delete  
+       
+         public static var confirmationMessage: String
+         public static var confirmationTitle: String
+         
+       
+       public enum Flag  
+       
+         public static var confirmationMessage: String
+         public static var confirmationTitle: String
+         
+       
+       
+     
+     public enum Item  
+     
+       public static var deleted: String
+       
+     
+     public enum Moderation  
+     
+       public static var delete: String
+       public static var edit: String
+       public static var message: String
+       public static var resend: String
+       public static var title: String
+       
+     
+     public enum Preview  
+     
+       public static var draft: String
+       public static var pollYouCreated: String
+       public static var pollYouVoted: String
+       
+     
+       public static func pollSomeoneCreated(_ p1: Any)-> String
+       public static func pollSomeoneVoted(_ p1: Any)-> String
+       
+     
+     public enum Sending  
+     
+       public static var attachmentUploadingFailed: String
+       
+     
+     public enum Thread  
+     
+       public enum Replies  
+       
+         public static func count(_ p1: Int)-> String
+         
+       
+       
+     
+     public enum Threads  
+     
+       public static var reply: String
+       
+     
+       public static func count(_ p1: Int)-> String
+       public static func replyWith(_ p1: Any)-> String
+       
+     
+     public enum Title  
+     
+       public static var offline: String
+       public static var online: String
+       
+     
+       public static func group(_ p1: Int,_ p2: Int)-> String
+       
+     
+     public enum Unread  
+     
+       public static func count(_ p1: Int)-> String
+       
+     
+     
+   
+   public enum MessageList  
+   
+     public static func jumpToUnreadButton(_ p1: Int)-> String
+     
+   
+     public enum TypingIndicator  
+     
+       public static var typingUnknown: String
+       
+     
+       public static func users(_ p1: Any,_ p2: Int)-> String
+       
+     
+     
+   
+   public enum Polls  
+   
+     public static var addComment: String
+     public static var allOptionsTitle: String
+     public static var anonymousAuthor: String
+     public static var commentsTitle: String
+     public static var resultsTitle: String
+     public static var updateComment: String
+     
+   
+     public static func votes(_ p1: Int)-> String
+     
+   
+     public enum Button  
+     
+       public static var addComment: String
+       public static var endVote: String
+       public static var showAll: String
+       public static var suggestOption: String
+       public static var viewResults: String
+       
+     
+       public static func allOptions(_ p1: Int)-> String
+       public static func viewComments(_ p1: Int)-> String
+       
+     
+     public enum Creation  
+     
+       public static var addAComment: String
+       public static var addAnOptionPlaceholder: String
+       public static var alreadyAnOptionError: String
+       public static var anonymousPoll: String
+       public static var askAQuestionPlaceholder: String
+       public static var cancel: String
+       public static var maximumVotesError: String
+       public static var maximumVotesPlaceholder: String
+       public static var multipleVotes: String
+       public static var optionsTitle: String
+       public static var questionTitle: String
+       public static var suggestAnOption: String
+       public static var title: String
+       
+     
+     public enum Subtitle  
+     
+       public static var selectOne: String
+       public static var selectOneOrMore: String
+       public static var voteEnded: String
+       
+     
+       public static func selectUpTo(_ p1: Int)-> String
+       
+     
+     
+   
+   public enum Reaction  
+   
+     public enum Authors  
+     
+       public static func numberOfReactions(_ p1: Int)-> String
+       
+     
+     
+   
+   public enum Recording  
+   
+     public static var slideToCancel: String
+     public static var tip: String
+     
+   
+     public enum Presentation  
+     
+       public static func name(_ p1: Int)-> String
+       
+     
+     
+   
+   public enum ThreadList  
+   
+     public static func newThreads(_ p1: Int)-> String
+     
+   
+     public enum Empty  
+     
+       public static var description: String
+       
+     
+     public enum Error  
+     
+       public static var message: String
+       
+     
+     
+   
+   public enum ThreadListItem  
+   
+     public static func repliedTo(_ p1: Any)-> String



@Stream-SDK-Bot
Copy link
Collaborator

SDK Size

title develop branch diff status
StreamChat 8.63 MB 6.82 MB -1851 KB 🚀
StreamChatUI 4.91 MB 4.47 MB -449 KB 🚀

@Stream-SDK-Bot
Copy link
Collaborator

StreamChat XCSize

Object Diff (bytes)
StreamCore.o +629760
CDNClient.o -594163
Chat.o -283446
ChannelController.o -182827
RequestEncoder.o -168529
Show 391 more objects
Object Diff (bytes)
MessageController.o -81718
MessageReactionDTO.o -69536
UserController.o -64538
MessagePayloads.o -53033
Sequence+CompactMapLoggingError.o -48645
CurrentUserController.o -43857
WebSocketClient.o -38975
ChatMessage.o -36394
MessageDTO.o -33028
MessageSearchQuery.o -32473
LivestreamChannelController.o -30449
ChannelUpdater.o -29546
ConnectionRecoveryHandler.o -29346
MessageUpdater.o -28700
ConnectedUserState+Observer.o -25447
DatabaseContainer.o -25361
SyncOperations.o -25210
Logger.o -24058
ChatClient.o +23834
OfflineRequestsRepository.o -23273
QueryOptions.o +22104
ErrorPayload.o -21728
ChannelDTO.o -20920
ChatMessageAttachment.o -20534
URLSessionWebSocketEngine.o -20516
PollController.o -20424
AuthenticationRepository.o -19056
AttachmentQueueUploader.o -18962
ChannelListPayload.o +18615
ChatRemoteNotificationHandler.o -18492
AnyAttachmentPayload.o +16132
MemberController.o -16081
ChannelListLinker.o -15705
MessageRepository.o -15561
PollVoteListController+SwiftUI.o -15520
ChannelListController.o -14236
ChannelListController+Combine.o +13822
SyncRepository.o -13282
ChatChannelWatcherListController.o -13044
MessageEditor.o -12637
UserUpdater.o -12634
EndpointPath.o -12488
MessagesPaginationStateHandling.o -12109
ChatState+Observer.o +11911
AudioRecording.o -11886
CurrentUserUpdater.o -11693
ReminderPayloads.o -11342
MemberListController.o -10934
PollVoteListController.o -10729
RawJSON.o -10577
Thread.o +10404
AnyAttachmentUpdater.o -10060
InternetConnection.o -9804
CurrentUserDTO.o -9756
UserDTO.o -9618
ChannelReadUpdaterMiddleware.o -9556
BaseLogDestination.o -9382
ChatClient+ChannelController.o -9275
MessageReminderListController.o -9253
ChannelController+SwiftUI.o -9242
Codable+Extensions.o -9173
ThreadListController.o -8979
MessageController+SwiftUI.o -8822
ReactionListController.o -8734
EventsController.o -8682
MessageSender.o -8648
UserSearchController.o -8634
WebSocketPingController.o -8581
BackgroundTaskScheduler.o -8501
AttachmentTypes.o +8392
ListChange.o -7825
CurrentUserController+SwiftUI.o -6982
ReadStateHandler.o -6614
Timers.o -6259
PollController+SwiftUI.o -6259
Dictionary+Extensions.o -6230
ChatClientConfig.o -6049
StreamCollection.o -6030
MemberListController+SwiftUI.o -5820
ChannelListController+SwiftUI.o -5801
TextLinkDetector.o +5762
LazyCachedMapCollection.o -5667
MessageSearchController+SwiftUI.o -5661
AudioAnalysing.o -5618
MessageTranslationsPayload.o +5473
MemberModelDTO.o -5426
ChatChannelWatcherListController+SwiftUI.o -5422
UserPayloads.o -5414
ConnectedUser.o -5262
EventPayload.o -5260
Channel.o -5160
ConnectionController.o +5081
ChannelReadDTO.o -4997
ClientError.o -4993
PollDTO.o -4975
EventNotificationCenter.o -4922
AudioPlaying.o -4906
PollsEvents.o -4768
User.o +4698
RemindersRepository.o -4624
ReactionListController+SwiftUI.o -4607
UserListController+SwiftUI.o -4594
ManualEventHandler.o -4576
UserController+SwiftUI.o -4532
ConnectionStatus.o -4425
AppSettings.o -4416
ThreadListPayload.o -4330
LogDestination.o -4323
MemberController+SwiftUI.o -4315
MessagePayload+asModel.o -4266
NotificationEvents.o -4176
TypingEventsSender.o -4133
ChannelListQuery.o -4112
ThreadDTO.o -4098
ThreadListQuery.o -4048
NSManagedObject+Extensions.o -4003
ChatClient+Factory.o -3954
MemberEventMiddleware.o -3836
PollsPayloads.o -3778
ChatMessageVideoAttachment.o -3716
Deprecations.o -3713
UserListUpdater.o -3637
EventBatcher.o -3630
MessageState+Observer.o -3566
EventsController+SwiftUI.o -3560
ReminderUpdaterMiddleware.o -3548
UserListQuery.o -3496
MulticastDelegate.o -3354
ConnectionController+SwiftUI.o -3234
UserWatchingEventMiddleware.o -3216
ChannelController+Combine.o -3164
ConnectionRepository.o -3138
PushPreferencePayloads.o -3044
LivestreamChannelController+Combine.o -3026
ChannelMemberListUpdater.o -3023
ThreadListController+SwiftUI.o -3021
ChannelMemberUpdater.o -2915
Token.o -2892
ChannelRepository.o -2859
DatabaseSession.o -2804
AttachmentDTO.o -2798
IdentifiablePayload.o -2740
MessageSearchController.o +2681
UserEvents.o -2657
PollVoteListController+Combine.o -2624
LocationPayloads.o -2575
Filter.o -2537
EventType.o -2527
MessageController+Combine.o -2496
ChannelType.o -2494
MessageEvents.o -2484
ChannelEventsController.o -2460
QueuedRequestDTO.o +2442
Atomic.o -2361
UserListState+Observer.o -2356
ActiveLiveLocationsEndTimeTracker.o -2335
EventDataProcessorMiddleware.o -2316
MessageSearchState+Observer.o -2270
PollVoteDTO.o -2241
ChatClient+Environment.o -2235
ChatState.o +2112
EventDecoder.o -2053
ChatClientFactory.o -2016
ReactionListState+Observer.o -2016
MemberListState+Observer.o -2002
PollController+Combine.o -1996
ChannelQuery.o -1976
AppStateObserving.o +1930
ChannelVisibilityEventMiddleware.o -1920
AudioSamplesProcessor.o +1880
DraftMessagesRepository.o -1870
UserController+Combine.o -1858
ReactionListController+Combine.o -1848
MemberController+Combine.o -1848
PollVoteListQueryDTO.o -1825
ChannelMemberListQueryDTO.o -1805
MemberPayload.o -1775
ChannelListState+Observer.o -1709
ChannelEvents.o -1692
ChatMessageImageAttachment.o -1588
ReactionListQueryDTO.o -1581
DataController.o -1552
ChannelListQueryDTO.o -1541
DraftUpdaterMiddleware.o -1524
BlockedUserPayload.o -1516
ChatMessageLinkAttachment.o -1508
ChannelTruncatedEventMiddleware.o -1504
OptionalDecodable.o -1495
UserSearch.o -1471
MessageReminder.o -1461
ThreadQuery.o +1456
ChannelDeliveryTracker.o -1451
ChannelPayload+asModel.o -1428
UserListController.o -1420
RequestDecoder.o +1420
UserUpdateMiddleware.o -1412
UserListController+Combine.o -1404
ChannelList.o -1404
URLRequest+cURL.o -1400
UserChannelBanEventsMiddleware.o -1399
MarkdownParser.o -1368
AppSettingsPayload.o -1350
MessageReactionRequestPayload.o -1338
MessageReminderListController+Combine.o -1332
UserSearchState.o -1325
ThreadReadDTO.o -1308
Pagination.o -1288
CurrentUserController+Combine.o -1246
MessageState.o -1246
ReactionEvents.o -1244
DraftMessage.o -1176
WebSocketEngine.o -1171
ChannelTruncateRequestPayload.o -1160
UserListQueryDTO.o -1133
MessageSearchState.o -1128
ConsoleLogDestination.o -1092
MessageReminderDTO.o -1088
PinnedMessagesQuery.o -1080
MutedChannelPayload.o -1052
MessageSearch.o -1037
AudioSessionConfiguring.o -1036
ThreadsRepository.o -1022
ReactionListUpdater.o -1022
PushDevice.o -1018
ChannelConfigDTO.o -978
CastPollVoteRequestBody.o -960
Array+Sampling.o +948
ChatMessageVoiceRecordingAttachment.o -944
ConnectionEvents.o +935
UnreadCount.o -922
ChannelListSortingKey.o -918
PrefixLogFormatter.o -917
AudioPlayerObserving.o +911
UpdatePartialRequestBody.o -906
ReminderEvents.o -864
CurrentUser.o +850
CreatePollOptionRequestBody.o -840
ChatMessageGiphyAttachment.o -832
ReactionListState.o -830
MessageReactionGroupDTO.o +815
RetryStrategy.o -815
ChannelMemberListSortingKey.o -808
ConnectedUserState.o -808
ChannelMemberListQuery.o -806
FlagRequestBody.o -768
CreatePollRequestBody.o -757
UserListSortingKey.o -748
SystemEnvironment+XStreamClient.o +739
WebSocketConnectPayload.o -736
Device.o +731
MemberListState.o -726
ThreadUpdaterMiddleware.o -724
ConnectionController+Combine.o -704
MessageAttachmentPayload.o -686
PollsRepository.o +683
Error+InternetNotAvailable.o -655
UserList.o -649
MemberListController+Combine.o -646
PollOptionDTO.o -643
EventSender.o -632
MessageSearchController+Combine.o -628
ChatChannelWatcherListController+Combine.o -617
CurrentUserPayloads.o -606
MarkUnreadPayload.o -598
PinnedMessagesPagination.o -592
Poll.o -569
GuestUserTokenPayload.o -560
ChannelId.o -541
AudioAnalysisEngine.o -539
GuestUserTokenRequestPayload.o -520
HTTPHeader.o -520
MemberEvents.o -512
Combine.tbd +496
ChatMessageFileAttachment.o -492
FlagUserPayload.o -492
ChatMessageAudioAttachment.o -480
MessageReaction.o -473
MessageEndpoints.o -470
CountdownTracker.o -464
ChannelMemberUnbanRequestPayload.o -462
ThreadParticipantDTO.o +461
UnknownChannelEvent.o -460
MissingEventsRequestBody.o -458
MessageReactionGroupPayload.o -454
MessageModerationDetailsPayload.o -447
AttachmentActionRequestBody.o -446
FlagMessagePayload.o -442
StateBuilder.o -442
Endpoint.o -440
AttachmentDownloader.o +431
FileUploadPayload.o -428
ChannelListUpdater.o -415
KeyedDecodingContainer+Array.o -404
DraftPayloads.o +404
AsyncOperation.o +390
Member.o +384
ThreadParticipant.o +383
UserPayload+asModel.o -380
PushPreferenceLevel.o -380
CommandDTO.o +379
ChannelCodingKeys.o -378
UploadedAttachment.o -376
Controller.o +364
TypingStartCleanupMiddleware.o +364
ChannelDeliveredPayload.o -364
ThreadEvents.o -357
SharedLocation.o -348
ChannelListState.o -341
APIClient.o -336
MemberUpdatePayload.o -334
Foundation.tbd +316
MessageReactionPayload.o -311
UserInfo.o +308
ChannelEndpoints.o -306
AttachmentId.o -304
User+SwiftUI.o -302
UnknownUserEvent.o -300
AssetPropertyLoading.o -292
ChannelEditDetailPayload.o +288
AudioPlaybackContext.o -280
PollVoteListQuery.o -280
EventsController+Combine.o -280
AudioSamplesExtractor.o +272
MessageReminderListQuery.o -262
UserListState.o -258
SendMessageInterceptor.o -244
PollOption.o +239
UnreadMessageLookup.o +236
SharedLocationDTO.o -232
ThreadEndpoints.o -228
MessagePinning.o -222
AudioRecordingContextAccessor.o +222
BaseURL.o -216
MemberEndpoints.o -212
DraftEvents.o -212
MuteDetails.o -204
AudioRecordingContext.o -196
ChannelMemberListPayload.o +178
MemberList.o +176
NSManagedObject+Validation.o +176
DraftListQuery.o +176
AttachmentUploader.o -172
UserTypingStateUpdaterMiddleware.o -168
UserListPayload.o +168
ChannelMemberBanRequestPayload.o -156
TranslationLanguage.o -156
DevicePayloads.o +152
ChannelRead.o -124
Throttler.o -124
AudioSessionProtocol.o +124
MissingEventsPayload.o +122
PinnedMessagesSortingKey.o -120
MessageDeliveryCriteriaValidator.o -116
AVAsset+TotalAudioSamples.o -116
StringInterpolation+Extensions.o -116
MessageModerationDetailsDTO.o +108
BackgroundEntityDatabaseObserver.o +107
ThreadRead.o -106
ChannelArchivingScope.o +104
LogFormatter.o -103
MessageReactionGroup.o -100
PushPreference.o -100
Bundle+Extensions.o +96
DeviceDTO.o +92
NewLocationInfo.o -92
BackgroundDatabaseObserver.o -91
Sorting.o +88
DeliveredMessageInfo.o -84
StreamRuntimeCheck.o -83
ReactionList.o +82
BlockedUserDetails.o +80
MultipartFormData.o -80
EventMiddleware.o +80
PollVote.o +79
Event.o -78
StreamModelsTransformer.o +72
ChannelDeliveredMiddleware.o -72
AudioRecordingState.o +68
AudioPlaybackContextAccessor.o +68
EntityChange.o -64
PushPreferenceDTO.o -64
ChannelMuteDTO.o +63
AudioPlaybackState.o -60
libz.tbd +60
Reachability_Vendor.o +56
AITypingEvents.o -56
IdentifiableModel.o +53
ChatClient+ReactionListController.o -52
ScheduledStreamTimer.o +50
MessageReactionType.o -45
ChannelWatcherListQuery.o -44

@Stream-SDK-Bot
Copy link
Collaborator

StreamChatUI XCSize

Object Diff (bytes)
Appearance+Images.o -29297
MarkdownFormatter.o -24176
AppearanceProvider.o -18982
TaskFetchOriginalData.o +17153
Appearance+ColorPalette.o -17036
Show 319 more objects
Object Diff (bytes)
Task.o -16906
Appearance+SwiftUI.o -16146
AsyncTask.o +14247
ImageDecoding.o -11418
ImageCache.o -10921
TaskFetchOriginalImageData.o -10491
AttachmentsPreviewVC.o -10481
TaskLoadImage.o -8415
ImageTask.o +8121
DateUtils.o -6882
ImageDecoders+Default.o +6682
ImageProcessing.o -6613
Deprecations.o -6444
TaskFetchOriginalImage.o +5897
TaskFetchDecodedImage.o -5511
FetchImage.o -5336
InputChatMessageView.o +5256
ImageViewExtensions.o -5226
ImageLoadingOptions.o +5159
ImageRequest.o +5143
ImagePipeline+Configuration.o +5017
ChatChannelVC.o +4965
Appearance+Formatters.o -4936
ImagePipeline+Cache.o +4895
DataLoader.o +4893
ImagePipelineConfiguration.o -4887
ImagePipeline+Error.o +4829
Cache.o +4821
AlertsRouter.o -4708
ChatMessageDeliveryStatusView.o +4600
ChatChannelListItemView.o +4279
ImageProcessors+Resize.o +4261
Appearance.o -4116
MessageActionsTransitionController.o +4028
ImagePipelineCache.o -4003
ImageResponse.o -3962
ChatMessageHeaderDecoratorView.o +3798
ChatMessageActionItem.o -3792
Graphics.o +3765
OperationTask.o -3642
ChatMessageActionsVC.o -3561
AssetType.o +3525
ImagePipelineDelegate.o -3523
QuotedChatMessageView.o +3391
ChatThreadListItemView.o +3301
Appearance+Fonts.o -3293
ImagePipeline.o -3196
Algorithm.o +3124
ChannelListMessageTimestampFormatter.o -3102
ImageContainer.o +3084
StreamChatCommonUI.tbd +3032
NSCacheWrapper.o +2965
ChatChannelNamer.o -2853
PollTimestampFormatter.o -2793
TaskFetchWithPublisher.o +2726
TaskLoadData.o +2716
ImageDecoderRegistry.o +2708
ChatMessageSearchVC.o -2491
ImageCaching.o +2489
PollCreationVC.o -2484
ImagePipelineTask.o -2287
AsyncPipelineTask.o +2285
GalleryVC.o +2147
Combine.o -2095
ImageLoading.o -2054
GalleryHeaderViewDateFormatter.o -2051
VideoPlaybackControlView.o +1972
ChatMessageReactionsPickerVC.o +1964
ChatChannelAvatarView.o +1857
ImageEncoding.o -1817
String+Extensions.o -1796
ChatMessageListView.o +1769
ChatMessageListVC.o +1737
UploadingProgressFormatter.o -1597
StatefulScrollViewPaginationHandler.o +1523
MessageTimestampFormatter.o -1509
VideoAttachmentGalleryPreview.o +1491
DataPublisher.o +1491
ComposerVC.o +1472
ImageEncoders+ImageIO.o +1446
ChatThreadListVC.o -1440
PollResultsVC.o +1436
Deprecated.o -1405
MessageDateSeparatorFormatter.o -1377
StreamModalTransitioningDelegate.o +1372
VideoDurationFormatter.o -1311
AudioPlaybackRateFormatter.o -1288
ChatChannelListVC.o +1261
ZoomAnimator.o +1226
PollAttachmentView.o -1200
VideoAttachmentGalleryCell.o +1190
AudioRecordingNameFormatter.o -1177
ImageProcessingOptions.o +1152
Components.o +1149
InputTextView.o +1103
ChatMessageAttachmentPreviewVC.o +1102
L10n.o -1059
ChatReactionsBubbleView.o +1043
ChannelNameFormatter.o -1042
ChatSuggestionsVC.o +1039
ChatMessageContentView.o -996
ChatMessage+Extensions.o -988
SwipeableView.o +957
ChatMessageListScrollOverlayView.o +956
ImagePipeline+Delegate.o +925
UIImageView+SwiftyGif.o +923
UIView+Extensions.o +921
ShareButton.o +907
ImageResultsMapper.o -892
ChatChannelListCollectionViewCell.o +865
ChatMessageImageGallery+ImagePreview.o +864
BannerView.o +862
ChatMessageInteractiveAttachmentView+ActionButton.o +861
NukeImageLoader.o +856
UIImage+Extensions.o -853
ChatMessageActionControl.o +853
UploadingOverlayView.o +836
PollCreationOptionCell.o +834
ChatMessageCell.o +829
CheckboxControl.o +827
Atomic.o +820
MediaButton.o +815
ImageRequestKeys.o +810
SwipeToReplyGestureHandler.o +806
VideoLoading.o -805
Extensions.o +796
ImageEncoders+Default.o +781
ChatMessageDeliveryStatusCheckmarkView.o +774
VoiceRecordingAttachmentComposerPreview.o +771
PollAttachmentOptionListView.o +766
ChatMessageGalleryView.o +766
ChatMessageReactionItemView.o +763
GalleryCollectionViewCell.o +753
CurrentChatUserAvatarView.o +753
FileAttachmentView.o +750
ChatMessageFileAttachmentListView.o +747
ChatMessageReactionAuthorsFlowLayout.o +744
ChatMessageReactionAppearance.o -744
ComposerView.o +736
PollCreationSectionHeaderView.o +733
BaseViews.o +711
ChatChannelListLoadingView.o +707
PollCreationTextFieldView.o +705
UserLastActivityFormatter.o -703
Calendar+StreamCalendar.o -701
ChatChannelSearchVC.o +696
CommandLabelView.o +692
AudioVisualizationView.o +690
CloseButton.o +671
PollCreationNameCell.o +664
ChatChannelListLoadingViewCellContentView.o +661
ChatMentionSuggestionView.o +661
LockIndicatorView.o +661
PollAttachmentOptionListItemView.o +660
ListCollectionViewLayout.o +655
MixedAttachmentViewInjector.o +655
ComposerLinkPreviewView.o +651
CooldownView.o +644
ChatMessageDefaultReactionsBubbleView.o +641
GradientView.o +641
ChatMessageLinkPreviewView.o +638
SendButton.o +638
ChatThreadListItemCell.o +638
StackedUserAvatarsView.o +634
PollResultsTableHeaderView.o +630
ChatMessageListRouter.o +630
ChatThreadArrowView.o +627
ChatLoadingIndicator.o +620
ChatMessageVoiceRecordingAttachmentListView.o +619
PollCreationFeatureCell.o +615
BidirectionalPanGestureRecogniser.o +613
ChatMessageInteractiveAttachmentView.o +612
ClampedView.o +611
Foundation.tbd -608
ChatChannelListErrorView.o +594
ChatMessageGiphyView+GiphyBadge.o +591
ResumableData.o +590
LiveRecordingView.o +581
PollResultsVoteListVC.o +576
ChatMessageListDateSeparatorView.o +572
ImagePublisher.o -563
VideoAttachmentComposerPreview.o +554
ChatReactionPickerBubbleView.o -548
RecordButton.o +540
ScrollToBottomButton.o +540
PollCreationFeatureSwitchView.o +537
ScrollViewPaginationHandler.o +535
Bundle+Extensions.o -533
ImageResize.o -532
ChatMessageReactionsView.o -531
GeneratedAssetSymbols.o -526
BadgeView.o +525
ImageProcessors+Composition.o +511
AttachmentPreviewContainer.o +502
ChatMessageReactionAuthorsVC.o -501
ChatThreadUnreadCountView.o +497
OnlineIndicatorView.o +495
ZoomDismissalInteractionController.o +494
PollAllOptionsListItemCell.o +494
AttachmentActionButton.o +494
ChatCommandSuggestionView.o +493
ChatChannelListLoadingViewCell.o +490
ChatSuggestionsCollectionView.o +489
ZoomTransitionController.o +488
TypingAnimationView.o +483
RecordingIndicatorView.o +482
DifferenceKit+Stream.o +476
ChatMessageVoiceRecordingAttachmentListView+ItemViewPresenter.o +473
ChatAvatarView.o +466
TitleContainerView.o +466
DefaultAttachmentPreviewProvider.o +460
ChatChannelUnreadCountView+SwiftUI.o +458
ChatChannelListItemView+SwiftUI.o +455
CheckboxButton.o +454
ChatMessageContentView+SwiftUI.o +454
ChatChannelAvatarView+SwiftUI.o +453
QuotedChatMessageView+SwiftUI.o +453
TypingIndicatorView.o +451
ChatMessagesCountDecorationView.o +447
PollCommentListSectionHeaderView.o +444
ChatSuggestionsHeaderView.o +437
UITextView+Extensions.o -435
CellActionView.o +430
ChatMessageErrorIndicator.o +429
NSLayoutConstraint+Extensions.o +425
ChatChannelUnreadCountView.o +422
ConfirmButton.o +417
ChatMessageVoiceRecordingAttachmentListView+ItemView.o +416
ViewContainerBuilder.o +416
CircularCloseButton.o +415
AttachmentButton.o +412
CommandButton.o +409
PlayPauseButton.o +403
ChatMessagePopupVC.o +402
ChatMessageBubbleView.o +401
PollCommentListSectionFooterView.o +401
ShrinkInputButton.o +397
ChatNavigationBar.o +397
CellSeparatorView.o +397
TextFieldView.o +393
ChatThreadListLoadingView.o +393
PollCommentListItemView.o +391
PollCommentListItemCell.o +387
ChatPresenceAvatarView.o +386
ImageAttachmentComposerPreview.o +386
PollResultsVoteItemCell.o +379
ChatSuggestionsCollectionViewLayout.o +379
ImageAttachmentGalleryCell.o +378
OnlyLinkTappableTextView.o +376
GalleryAttachmentViewInjector.o +373
ChatMentionSuggestionCollectionViewCell.o +371
ChatUserAvatarView.o +370
VoiceRecordingAttachmentQuotedPreview.o +369
PillButton.o +362
ImagePrefetcher.o +359
PlayerView.o +358
ContainerStackView.o -340
ChatMessageGiphyView.o +317
NavigationVC.o +316
ChatThreadHeaderView.o -314
DefaultScrollViewKeyboardHandler.o +312
VoiceRecordingVC.o -310
PollCreationMultipleVotesFeatureCell.o +308
WaveformView.o +308
NavigationRouter.o +296
PollCommentListVC.o +295
StreamCDN.o +292
ComposerKeyboardHandler.o +291
LinkedList.o +280
ChatCommandSuggestionCollectionViewCell.o +275
ChatSuggestionsCollectionReusableView.o +273
ImageDecompression.o +272
ChatReactionPickerReactionsView.o +267
ChatMessageListUnreadCountView.o +266
ChatMessageDecorationView.o +261
UIImage+SwiftyGif.o +248
TextViewMentionedUsersHandler.o +241
UnsupportedAttachmentViewInjector.o +233
ChatChannelHeaderView.o +224
PollResultsVoteItemView.o +196
Operation.o +194
LinkAttachmentViewInjector.o +178
PollResultsSectionFooterView.o +178
SwiftyGifManager.o -172
ChatChannelListCollectionViewDelegate.o +169
Components+SwiftUI.o +156
JumpToUnreadMessagesButton.o +156
FileAttachmentViewInjector.o +154
UIStackView+Extensions.o +154
Log.o -140
ChatChannelListEmptyView.o -136
DataCaching.o +136
StreamChat.tbd -136
PollAllOptionsListVC.o +124
ChatThreadListEmptyView.o +122
SlideToCancelView.o +121
ChatMessageReactionAuthorViewCell.o +121
ChatMessageLayoutOptionsResolver.o -111
DataLoading.o +104
PollResultsSectionHeaderView.o +102
ChatMessageLayoutOptions.o -100
ImageLoaderOptions.o +98
ChatThreadRepliesCountDecorationView.o -97
RecordingTipView.o +96
ImageIO.tbd +92
ChatMessageReactions+Types.o -92
AudioSessionFeedbackGenerator.o +80
ChatChannelListRouter.o -74
StagedChangeset.o +72
AnyDifferentiable.o +72
ImageProcessors.o +67
NukeImageProcessor.o -65
ImageEncoders.o +65
UIKitCore -64
ChatThreadListErrorView.o +58
PollAttachmentViewInjector.o +56
ChatMessageReactionsBubbleTail.o +50
ChatMessageListVCDelegate.o -48
ElementPath.o -44

@sonarqubecloud
Copy link

@nuno-vieira nuno-vieira merged commit 3d2db21 into v5 Dec 23, 2025
14 checks passed
@nuno-vieira nuno-vieira deleted the add/presentation-module branch December 23, 2025 20:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants