Official SwiftUI SDK for Stream Chat.

Overview

SwiftUI - Currently in Development 🏗

The SwiftUI SDK is built on top of the StreamChat framework and it's a SwiftUI alternative to the StreamChatUI SDK. It's built completely in SwiftUI, using declarative patterns, that will be familiar to developers working with SwiftUI. The SDK includes an extensive set of performant and customizable UI components which allow you to get started quickly with little to no plumbing required.

Main Features

  • Channel list: Browse channels and perform actions on them.
  • Message list: Fast message list that renders many different types of messages.
  • Message Composer: Powerful and customizable message composer, extendable with your own custom attachments.
  • Message reactions: Ready made reactions support, easily configurable depending on your use-cases.
  • Offline support: Browse channels and send messages while offline.
  • Highly customizable components: The components are designed in a way that you can easily customize or completely swap existing views with your own implementation.

Main Principles

  • Progressive disclosure: The SDK can be used easily with very minimal knowledge of it. As you become more familiar with it, you can dig deeper and start customizing it on all levels.
  • Familiar behavior: The UI elements are good platform citizens and behave like native elements; they respect tintColor, paddings, light/dark mode, dynamic font sizes, etc.
  • Swift native API: Uses Swift's powerful language features to make the SDK usage easy and type-safe.
  • Uses SwiftUI patterns and paradigms: The API follows the declarative nature and patterns of SwiftUI. It makes integration with your existing SwiftUI code easy and familiar.
  • Fully open-source implementation: You have access to the complete source code of the SDK here on GitHub.

Architecture

The SwiftUI SDK offers three types of components:

  • Screens - Easiest to integrate, but offer small customizations, like branding and text changes.
  • Stateful components - Offer more customization options and possibility to inject custom views. Also fairly simple to integrate, if the extension points are suitable for your chat use-case. These components come with view models.
  • Stateless components - These are the building blocks for the other two types of components. In order to use them, you would have to provide the state and data. Using these components only make sense if you want to implement completely custom chat experience.

Free for Makers

Stream is free for most side and hobby projects. You can use Stream Chat for free if you have less than five team members and no more than $10,000 in monthly revenue.


We are hiring

We've recently closed a $38 million Series B funding round and we keep actively growing. Our APIs are used by more than a billion end-users, and you'll have a chance to make a huge impact on the product within a team of the strongest engineers all over the world. Check out our current openings and apply via Stream's website.

Quick Overview

Channel List

Features Preview
A list of channels matching provided query
Channel name and image based on the channel members or custom data
Unread messages indicator
Preview of the last message
Online indicator for avatars
Create new channel and start right away
Customizable channel actions on swipe

Message List

Features Preview
A list of messages in a channel
Photo attachments
Giphy attachments
Video attachments
Link previews
File previews
Custom attachments
Message reactions
Message grouping based on the send time

Message Composer

Features Preview
Support for multiline text, expands and shrinks as needed
Image, video and file attachments
Camera integration
Custom attachments

Comments
  • Open 1-1 chat window directly, Instead of showing list of channels.

    Open 1-1 chat window directly, Instead of showing list of channels.

    What are you trying to achieve?

    I am trying to open the chat window between two members, I have created a channel specifying the two members. Now instead of open the chat listing i want to open 1-1 window directly.

    If possible, how can you achieve this currently?

    What would be the better way?

    GetStream Environment

    ios GetStream Chat version: GetStream Chat frameworks: StreamChat, StreamChatSwiftUI StreamChatSwiftUI

    Additional context

    opened by zeeshansuleman 30
  • Composer view component changes

    Composer view component changes

    What are you trying to achieve?

    Hello. I am trying to modify composer view. I have two issues right now.

    1. change height of inputs and buttons

    2. change background color of whole composer view.

    What would be the better way?

    1. Would be nice to have separate prop under Appearance to set height of input view. Right now I can not change it.
    2. I can change the background color of whole composer view, but it discards changes for input. So would be nice to have separate prop under colors to set ComposerViewType background color in Appearance

    GetStream Environment

    GetStream Chat version: Latest GetStream Chat frameworks: StreamChat, StreamChatSwiftUI iOS version: Latest Swift version: 5 Xcode version: Version 13.3 (13E113) Device: iPhone 12/13 | Simulator

    opened by GeorgeVashakidze 25
  • Unable to create channel by specifying the members id's.

    Unable to create channel by specifying the members id's.

    What did you do?

    I am trying to create a channel using createchannel method of stream SDK.

    What did you expect to happen?

    I am expecting the channel will be created.

    What happened instead?

    But I get below error.

    {
      "code" : 17,
      "message" : "GetOrCreateChannel failed with error: \"User 'c70c4c05-1a9d-48c3-a97d-a0f1ba02c554' with roles ['user', 'channel_member'] is not allowed to perform action RecreateChannel in scope 'messaging'\"",
      "more_info" : "https:\/\/getstream.io\/chat\/docs\/api_errors_response",
      "StatusCode" : 403,
      "duration" : "0.00ms"
    })
    

    I am using below line of code to create a channel.

    channelController = try? chatClient.channelController(createDirectMessageChannelWith: [skillrId, seekrId], type: .messaging, isCurrentUserMember: true, name: receiverName, extraData: [:])
                channelController?.synchronize { [weak self] (err) in
                    //            self?.channelId = channelController?.channel?.cid
                    if let error = err {
                        self?.isConnectionFailed = true
                        self?.errorString = String(localized: "Chat.Error.ChannelCreation")
                        logger.error("There is an error: \(error)", category: .userContext)
                        return
                    }
                    self?.navigateToChat = true
                }
    

    GetStream Environment

    **GetStream Chat frameworks: StreamChat, StreamChatSwiftUI **iOS version:15 **Swift version: swift ui **Device:iphone

    Additional context

    opened by zeeshansuleman 23
  • Keyboard disappears on push

    Keyboard disappears on push

    What did you do?

    Go to a thread. Activate keyboard. Go to the settings while keyboard is shown. Go back.

    What did you expect to happen?

    You expect keyboard and composer to be visible.

    What happened instead?

    Keyboard disappeared. Composer is active.

    This bug reproduces on the demo app. IMG_0716

    @martinmitrevski this issue is a release blocker for Reclip. @jfru

    opened by saidReclip 17
  • I am having issues in showing image in the chat for the receiver user and for the channel

    I am having issues in showing image in the chat for the receiver user and for the channel

    What did you do?

    I connected the stream by providing my avatar URL, but when i try to have a chat with other member i don't see his image in the chat. Neither in chat list view nor in one-one chat.

    What did you expect to happen?

    The receiver image be shown to sender and vice versa.

    What happened instead?

    I found a nil image but get the name of the receiver.

    GetStream Environment

    GetStream Chat version: GetStream Chat frameworks: StreamChat, StreamChatSwiftUI iOS version: Swift version: Xcode version: Device:

    Additional context

    here is the code which returns me name but no image. Its the default SDK function.

    func getReceiverNameImageUrl(){
            let controller = chatClient.memberListController(query: .init(cid: channel.cid))
            controller.synchronize() { error in
                if error == nil{
                    let receiver = controller.members.filter({$0.name != currentUserName}).first
                    if let receiverName = receiver?.name{
                        self.receiverName = receiverName
                    }
                    if let receiverImageUrl = receiver?.imageURL?.description{
                        self.receiverImageUrl = receiverImageUrl
                    }
                }
            }
        }
    

    and to connect members i have used this piece of code.

    chatClient.connectUser(
               userInfo: .init(id: userAuthenticationManager?.userDetails?.id ?? "",
                               name: userAuthenticationManager?.userDetails?.displayName ?? "",
                               imageURL: URL(string: imageString)!),
               token: token
           ) { error in
               if let error = error {
                   log.error("failed to connect the user with stream \(error)")
               } else {
                   log.error("user connected with the stream sdk")
               }
           }
    

    and to create a channel I use this piece of code.

    channelController = try? chatClient.channelController(createDirectMessageChannelWith: [skillrId,seekrId], name: receiverName, extraData: [:])
            
            /// 3: Call `ChatChannelController.synchronize` to create the channel.
            channelController?.synchronize { error in
                if let error = error {
                    /// 4: Handle possible errors
                    logger.error("There is an error in creating channel: \(error)", category: .userContext)
                    onComplete("Channel creation failed with error: \(error.localizedDescription)")
                    return
                }
                onComplete(nil)
            }
    
    opened by zeeshansuleman 16
  • Chat channel is not removed from UI when user is programmatically removed from channel using removeMembers

    Chat channel is not removed from UI when user is programmatically removed from channel using removeMembers

    What did you do?

    In our app, users are added and removed from admin panel which call the server to execute addMembers and removeMembers on different channels.

    Use case: Step 1: Keep the app open as all channels of user are visible Step 2: Remove the user from a channel using removeMembers method call from server

    What did you expect to happen?

    Expectation was that the chat screen would update and that particular channel will be removed from the chat list immediately.

    What happened instead?

    The channel wasn't removed from the chat list and user was able to interact with that channel. Even switching app from background to foreground does not update the chat list. Also in this scenario, when app is brought from background to foreground then clicking on any channel in chat list would crash the app.

    GetStream Environment

    **GetStream Chat version:Using from master branch GetStream Chat frameworks: StreamChat, StreamChatSwiftUI **iOS version:14.8.1 **Swift version:Swift 5 **Xcode version:13.2.1 **Device:iPhone 11

    opened by JayMehta97 16
  • Need access for internal views

    Need access for internal views

    What are you trying to achieve?

    • Due to some reasons, I have to move ComposerInputView into my app.
    • Found that I doesn't have access to the internal views like ComposerTextInputView, AddedFileAttachmentsView, FileAttachmentDisplayView etc... I don't want to do any changes to these views.
    • But It is not public accessible, I have to move these views manually into my app and use them from there.
    • Doing this, there are many duplicate codes at the end. Please make it public accessible.

    If possible, how can you achieve this currently?

    • copy-paste ComposerInputView along with internal views to the app and use it.

    What would be the better way?

    • Making public accessible will solve the problem

    GetStream Environment

    GetStream Chat version: 4.17.0 GetStream Chat frameworks: StreamChat, StreamChatSwiftUI iOS version: 15.5 Swift version: 5 Xcode version: 13.4.1 Device: Iphone-13

    opened by ajay-simform 15
  • can't edit channel subtitle in channelList

    can't edit channel subtitle in channelList

    What are you trying to achieve?

    • I want to update the channel subtitle for my custom messages in channel list view.

    If possible, how can you achieve this currently?

    • I can't update the channel subtitle

    What would be the better way?

    • There should be some factory function which helps to update subtitle

    GetStream Environment

    GetStream Chat version: 4.18.0 GetStream Chat frameworks: StreamChat, StreamChatSwiftUI iOS version: 15.5 Swift version: 5 Xcode version: 13.4.1 Device: iPhone-13

    Additional context

    Untitled 2

    opened by ajay-simform 13
  • Kicked out of threads when channel has custom attachment

    Kicked out of threads when channel has custom attachment

    You get repeatedly kicked out of threads in channels with messages containing custom attachments.

    This is a follow-on issue to one I previously created: https://github.com/GetStream/stream-chat-swiftui/issues/144.

    3 days ago, when I mentioned that ^ this issue was fixed for me, I was testing in the DemoAppSwiftUI target that comes in the Stream SwiftUI project. However, I found I was still getting kicked out of threads in our own app. I thought it must have been in our code (how we were using Stream), but then I had the idea to switch DemoAppSwiftUI to log into our team’s Stream app (loading our channels instead of the default Star Wars-themed sample app that the demo app logs into automatically), and I was then able to reproduce the issue in the DemoAppSwiftUI app! But only when pointing it to our organization’s Stream chat channel content.

    The only notable difference I can think of between the chat content in the Star Wars test channels, and our team’s channels, is we have custom attachments. It looks like this navigation issue only occurs when you navigate into threads where the channel contains custom attachments. I cannot reproduce this issue in channels where there are zero custom attachments.

    For reference, our Stream app ID is 1176001.

    What did you do?

    I created a message that includes a custom attachment in a channel. Then I followed the Stream SwiftUI tutorials to create a simple app that uses ChatChannelListView() to show the messages.

    What did you expect to happen?

    I expect to be able to navigate into threads without being kicked back out to the channel.

    What happened instead?

    When I navigate into a thread, I get repeatedly kicked out of the thread, back to the channel.

    In order to reproduce this issue, two things must be true:

    1. The thread you navigate into should be in a channel that has a custom attachment.
    2. You need to first navigate into the thread, then back into the channel, then into the thread again. It does not happen the 1st time you navigate into a thread, but happens every time after that/

    GetStream Environment

    GetStream Chat frameworks: StreamChat (4.19.0), StreamChatSwiftUI (main) iOS version: 15.5 Swift version: latest Xcode version: Version 13.4.1 (13F100) Device: iOS (reproduced on iPhone 13 Pro Simulator and physical iPhone 11 Pro)

    Additional context

    Here’s a demo video showing the issue:

    https://user-images.githubusercontent.com/144283/180888605-f884b68a-f0cc-4193-8d53-775af53b2fed.mov

    I’ve invited @martinmitrevski to view the private project I’m demoing ^ here: https://github.com/earbudsdev/juststream. I would make it public, but I committed our Stream app’s API key to the project, to make it easier for you to quickly clone and run to reproduce the issue.

    opened by moubry 12
  • How to hide TabView bottom toolbar when ChatChannelView is pushed?

    How to hide TabView bottom toolbar when ChatChannelView is pushed?

    What are you trying to achieve?

    I want to achieve WhatsApp-style navigation where I have a TabView for the top-level navigation of the app, but when ChatChannelView is pushed, the bottom toolbar is hidden.

    What I initially tried:

    TabView {
       HomeView()
       ChatChannelListView() // <--- This has a NavigationView inside
    }
    

    Now when I tap on a thread, the ChatChannelView is nested inside the TabView. So the TextField input is not at the bottom of the screen but rather nested inside the TabView.

    In UIKit, there is hidesBottomBarWhenPushed to configure this, but there doesn't appear to be an obvious way to do so in SwiftUI?

    Next I tried this:

    NavigationView {
      TabView {
        HomeView()
        ChatChannelListViewWithoutNavigation() // <=== by copy-pasting ChatChannelListView and editing it
      }
    }
    

    This could work but it would be nice if ChatChannelListView allows me to customize it without copy-pasting? In this setup, there also appears to be a nasty SwiftUI bug on iOS 15 where if you background the app, the ChatChannelView automatically gets popped ....

    If possible, how can you achieve this currently?

    Right now, I am copy-pasting ChannelListView into CustomChannelListView and modifying the file to get rid of the NavigationView. Ideally, StreamChatSwiftUI SDK should let me customize that ...

    What would be the better way?

    See above

    opened by linhewinner 12
  • How to hide search bar and disable chat swipe gesture?

    How to hide search bar and disable chat swipe gesture?

    I tried to find this query in the official documentation and also went through the SDK options but couldn't find a simple way to do this. We have similar customization in Android and there it is very simple to hide search bar and disable chat swipe gesture.

    opened by JayMehta97 11
  • Unread badge not cleared for channel with deleted content

    Unread badge not cleared for channel with deleted content

    I navigated into a channel from ChatChannelListView and viewed all of the messages in it, as well as all of the messages in the threads. I expected the unread count badge to clear. The unread badge count persists — it remains at 11.

    The best channel for you to look at while investigating this issue is messaging:clasawcx2000801bauzyjfoxs on the Stream app 1217037. This channel’s content is very simple: it has two messages and zero replies or reactions.

    This issue exists in our JustStream project — an Xcode project we created that contains zero customizations except for introducing StreamChatSwiftUI’s ChatChannelListView.

    Screenshot 2023-01-04 at 11 07 41 AM

    This issue is present in our test environment where we often hard delete users and content. Our app-specific database also includes hints that this channel used to have more messages in it than are currently visible. We suspect that the unread count was incremented with new messages, then those messages were (somehow) deleted by the user, or by the user deleting their account, and now those message cannot be seen, so the unread badge persists forever, unable to be cleared.

    GetStream Environment

    GetStream Chat frameworks: StreamChat (4.25.0), StreamChatSwiftUI (main) iOS version: 16.1 Swift version: latest Xcode version: Version 14.2 (14C18) Device: iPhone 11 Pro

    opened by moubry 0
  • Cannot delete attached video after closing app when the video is uploading

    Cannot delete attached video after closing app when the video is uploading

    What did you do?

    Send a message attached with video. While video is uploading kill app. Restart the app again and see if attached video is send properly or not.

    What did you expect to happen?

    Attached video should work like a normal message. On which user can perform actions like react, delete etc

    What happened instead?

    User not able to react to message or delete message.

    GetStream Environment

    GetStream Chat version: 4.25.0 GetStream Chat frameworks: StreamChatSwiftUI iOS version: 16.2 Xcode version: 14 Device: iPhone Xs Max

    Additional context

    Reference video :- Video Delete issues

    opened by mdhanif-simformsolutions 3
  • Multiple Images Chat bubble Thumbnail  flickering

    Multiple Images Chat bubble Thumbnail flickering

    What did you do?

    • Select multiple images and send.

    What did you expect to happen?

    • Thumbnail Images should not flicker

    What happened instead?

    • Thumbnail Images are flickering

    GetStream Environment

    GetStream Chat version: 4.24.1 **GetStream Chat frameworks:**StreamChatSwiftUI- 4.24.1 **iOS version:**iOS 16 **Swift version:**swift 5 **Xcode version:**Xcode 14.1 **Device:**iPhone xs

    https://user-images.githubusercontent.com/100925886/208097734-81134866-ccd3-453a-8964-ea74d40c8fa3.mov

    Additional context

    opened by Developersimform 1
  • ChatChannelView doesn't always allow scrolling back into history.

    ChatChannelView doesn't always allow scrolling back into history.

    What did you do?

    Hi! In our app we are showing chats and people, talk enough that you'll need to scroll back to read it all.

    What did you expect to happen?

    I expected that I could scroll up and the ChatChannelView would show older messages.

    What happened instead?

    Sometimes it works, other times it does not, with no info I can see in the console as to why. It's inconsistent as you navigate in and out of a channel.

    GetStream Environment

    GetStream Chat version: main GetStream Chat frameworks: StreamChat, StreamChatSwiftUI iOS version: 16 Swift version: 5 Xcode version: 14.1 Device: iPhone 13 Pro

    Additional context

    opened by sgoodwin 6
  • ChatChannelView doesn't scroll to selected message

    ChatChannelView doesn't scroll to selected message

    What did you do?

    • Create ChatMessageSearchController
    • search old/previous message from the channel
    • go to ChatChannelView by giving selected message to scrollToMessage

    What did you expect to happen?

    • The messageList should scroll to particular message. No matter if it needs pagination or something.

    What happened instead?

    • The message doesn't scroll to the selected message index

    GetStream Environment

    GetStream Chat version: 4.22.0 GetStream Chat frameworks: StreamChat, StreamChatSwiftUI iOS version: 16.0 Swift version: 5 Xcode version: Xcode-14 Device: iPhone 14

    opened by ajay-simform 3
  • Long boring messages break scroll to bottom functionality

    Long boring messages break scroll to bottom functionality

    What did you do?

    Launched the demo app, copied and pasted a paragraph from a random Wikipedia article, scrolled up, maybe tapped on the input field to make the keyboard visible, tapped "scroll to bottom" button.

    What did you expect to happen?

    Most recent message is visible.

    What happened instead?

    It doesn't scroll to the correct location.

    RocketSim_Recording_iPhone_13_mini_2022-05-26_20 04 59

    GetStream Environment

    GetStream Chat version: 4.15 I think GetStream Chat frameworks: StreamChat, StreamChatSwiftUI iOS version: 15.5 Swift version: 5 Xcode version: 13 Device: Sim

    Additional context

    opened by zrxq 1
Releases(4.25.0)
  • 4.25.0(Dec 16, 2022)

    ✅ Added

    • Support for channel own capabilities in the UI
    • Added possibility to override the message id creation with MessageIdBuilder

    🐞 Fixed

    • Renaming of a channel in ChannelInfo not persisting extra data
    • Channel list item swipe gesture collision with native gesture
    • Attributes from MessageActionInfo are now public
    • Crash on older devices when adding multiple images quickly
    • Message text appearing in multiple file attachments from the same message
    Source code(tar.gz)
    Source code(zip)
  • 4.24.0(Nov 16, 2022)

    ✅ Added

    • Support for specifying whether ChatChannelListView is embedded in a NavigationView with embedInNavigationView

    🔄 Changed

    • Public init for DefaultChannelListHeaderModifier
    • Updated Nuke dependency

    🐞 Fixed

    • Scroll to bottom when return key is pressed in the composer input view
    • Typing indicator not shown when empty message list
    Source code(tar.gz)
    Source code(zip)
  • 4.23.0(Oct 27, 2022)

    ✅ Added

    • Support for custom message receipt states
    • Scrolling of instant commands
    • Config to turn off tab bar visibility handling

    🔄 Changed

    • Updated Nuke dependency to 11.3.0 for SPM
    • Removed NukeUI dependency for SPM (now part of Nuke)
    Source code(tar.gz)
    Source code(zip)
  • 4.22.0(Sep 27, 2022)

    ✅ Added

    • Configuration for stack based navigation for iPads
    • Customization of the reactions background
    • Possibility to add custom snapshot generation logic
    • Configuration for composer input field max height

    🐞 Fixed

    • iOS 16 keyboard insets issue on pushed screen
    • Improved animation for date indicators in message list
    Source code(tar.gz)
    Source code(zip)
  • 4.21.0(Sep 2, 2022)

    ✅ Added

    • Configuring avatars visibility in groups
    • Method to swap the MessageRepliesView
    • Public init for ChatChannelListItem

    🔄 Changed

    • Message list creation requires shouldShowTypingIndicator as a parameter

    🐞 Fixed

    • Channel header sometimes blinks when many messages are sent
    • Data race when channels are updated from message list
    • Safe unwrapping of current graphics context when showing reactions
    Source code(tar.gz)
    Source code(zip)
  • 4.20.0(Aug 4, 2022)

    ✅ Added

    • Exposed a way to customise text message before sending and reading

    🐞 Fixed

    • Fixed a bug with channel list refreshing after deeplinking
    • Navigation bar iPad resizing issue
    • Fixed a bug with thread with custom attachments dismissed
    • Fixed Xcode 14 beta build issues

    🔄 Changed

    • Docs restructuring
    • Exposed some view components as public
    Source code(tar.gz)
    Source code(zip)
  • 4.19.0(Jul 21, 2022)

    ✅ Added

    • Customizing padding for message bubble modifier
    • Customizing padding for message text view
    • Possibility to control tab bar visibility
    • Configuration of message size via spacing

    🐞 Fixed

    • Fixed a bug with canceled backswipe
    • Fixed a bug with channel pop on name editing

    🔄 Changed

    • Docs restructuring
    • Exposed some view components as public
    Source code(tar.gz)
    Source code(zip)
  • 4.18.0(Jul 5, 2022)

    ✅ Added

    • Automated testing infrastructure
    • Config for disabling reaction animations
    • Error indicator when max attachment size exceeded
    • Factory method to swap the jumbo emoji view

    🔄 Changed

    • Made few view components public
    Source code(tar.gz)
    Source code(zip)
  • 4.17.0(Jun 22, 2022)

    ✅ Added

    • Possibility to add a custom view above the oldest message in a group
    • Swipe gesture to dismiss image gallery

    🐞 Fixed

    • Memory cache trimming on chat dismiss
    • Crash when sending an invalid command
    Source code(tar.gz)
    Source code(zip)
  • 4.16.0(Jun 10, 2022)

    ✅ Added

    • Possibility to view channel info on channel options
    • Date separators in the message list
    • ChatUserNamer to customize user name on typing indicator
    • minimumSwipeGestureDistance to control swipe sensitivity
    • Pop-out animation to reactions overlay
    • maxTimeIntervalBetweenMessagesInGroup to control message grouping logic

    🐞 Fixed

    • Bug about link attachments not opening when the URL was missing the scheme
    • Picking images synced with iCloud in the composer
    • User mentions not being passed when sending a message
    • Incorrect initial height when editing a message
    • Composer is hidden when reactions shown
    Source code(tar.gz)
    Source code(zip)
  • 4.15.0(May 17, 2022)

    ✅ Added

    • Chat info screen
    • Possibility to customize empty messages state
    • Possibility to customize author and date view in a message
    • View model injection in the Message Composer View

    🐞 Fixed

    • Bug with swiping video attachments
    • Bug with reactions offset for large number of reactions
    • Text input cursor jump
    • Text message rendering issue with custom font
    • Tap enabled on fourth image in attachments if there's a number overlay
    Source code(tar.gz)
    Source code(zip)
  • 4.14.0(Apr 26, 2022)

    ✅ Added

    • Animations for reactions overlay
    • Possibility to customize message transitions
    • Config for changing reaction colors
    • Config for becoming first responder in chat channel
    • Config for double tap message overlay
    • Config for custom width / count of trailing items in swiped channel
    • Config for updating composer frames

    🐞 Fixed

    • Issue with resizing composer with large text
    • Updating channel list before coming back to the screen
    • Disable the send button when there's only whitespace
    Source code(tar.gz)
    Source code(zip)
  • 4.13.0(Mar 30, 2022)

    ✅ Added

    • Implement message resend functionality
    • Custom modifiers support for the message view and the composer
    • Custom modifiers support for the channel list and the message list
    • Changing text color per message sender

    🐞 Fixed

    • Improved TabView appeareance animation
    • Channel list performance improvements
    • Jumbo emoji reply not shown correctly
    • Send message animation improvements

    🔄 Changed

    • Method for creating custom quoted message view
    Source code(tar.gz)
    Source code(zip)
  • 4.12.0(Mar 17, 2022)

    ✅ Added

    • Redacted loading view
    • Max file size checks
    • Inject custom footer view in Channel List
    • Config for disabling message overlay

    🐞 Fixed

    • Prevent jumps when new messages are received
    • Orientation changes layout

    🔄 Changed

    • Method for creating custom avatar
    Source code(tar.gz)
    Source code(zip)
  • 4.11.0(Mar 2, 2022)

    ✅ Added

    • Support for custom backgrounds (image, gradient)
    • Animation when sending message
    • Possibility to inject view model from the outside

    🐞 Fixed

    • Performance improvements
    • Autocomplete keyboard bug
    • Swipe gesture resizing message view

    🔄 Changed

    • Method for creating custom avatar
    Source code(tar.gz)
    Source code(zip)
  • 4.10.0(Feb 16, 2022)

    ✅ Added

    • Slow mode
    • Copying of a message
    • Push notifications
    • Message list config options

    🐞 Fixed

    • Keyboard not shown while bounce in progress
    • Image picker tap target
    • Gallery images (screenshots) resize when swiping
    Source code(tar.gz)
    Source code(zip)
  • 4.9.0(Feb 2, 2022)

    ✅ Added

    • Pinning of a message
    • Display users who reacted to a message
    • Message Search
    • Customization of channel list separators

    🐞 Fixed

    • Bug with image attachments selection and display
    • Reactions issues on iPad

    🔄 Changed

    • Creation method of channel destination
    Source code(tar.gz)
    Source code(zip)
  • 4.8.0(Jan 18, 2022)

  • 4.7.0(Jan 4, 2022)

    ✅ Added

    • Image gallery
    • Editing messages
    • Mentions
    • Composer commands
    • Configuration of channel item swipe area

    🔄 Changed

    • Creation of channel items
    Source code(tar.gz)
    Source code(zip)
  • 4.6.3(Dec 21, 2021)

  • 4.6.1(Dec 7, 2021)

  • 4.6.0(Nov 26, 2021)

    This is the first version of the SwiftUI SDK for Stream Chat. It includes the following features:

    • channel list
    • message list
    • message composer
    • message reactions
    • customization of components
    • sample app
    Source code(tar.gz)
    Source code(zip)
Owner
Stream
Build scalable newsfeeds, activity streams, chat and messaging in a few hours instead of weeks
Stream
DelayStream - A swift version to stream a file or stdin one line at a time with a delay

DelayStream A swift version to stream a file or stdin one line at a time with a

Keanu Pang 0 Jan 28, 2022
A SwiftUI framework which makes it easy to integrate Video Call and Chat within a few lines of code.

Welcome to iStream! This SwiftUI Framework allows you to add Video Call and Chat to your project within a few lines of code. To use this Framework, yo

null 2 Aug 19, 2022
iCook's official tvOS app

iCook tvOS App A tvOS app that plays iCook TV videos. Quick Start Run the following commands to install dependencies: make bootstrap Production Setup

Polydice, Inc. 67 Nov 17, 2022
Contains a demo version of the official Roll player.

RollDemo This package is a demo version of Roll player which is a native iOS audiovisual player that builds on AVFoundation. Contact Information: Raji

Rajiv 8 Jul 29, 2022
Nextcloud Talk is a fully on-premises audio/video and chat communication service

Nextcloud Talk iOS app Video & audio calls and chat through Nextcloud on iOS Nextcloud Talk is a fully on-premises audio/video and chat communication

Nextcloud 112 Dec 26, 2022
SDK для интеграции плеера IVI в сторонние ios-приложения

IVIExternPlayerSDK SDK позволяет интегрировать плеер IVI в сторонние приложения. Требования iOS 12.0 и выше В Info.plist приложения должен быть выстав

ivi 6 Jun 9, 2022
Support customization of any player SDK and control layer

Support customization of any player SDK and control layer

紫枫 6.9k Dec 30, 2022
iOS Video Conferencing SDK & Sample App

?? 100ms SDK & Sample App ?? Here you will find everything you need to build experiences with video using 100ms iOS SDK. Dive into our SDKs, quick sta

100ms 28 Dec 14, 2022
High-quality Interactive Audio/Video Unity SDK

简体中文 | English TRTC Unity SDK Overview Leveraging Tencent's many years of experience in network and audio/video technologies, Tencent Real-Time Commun

LiteAVSDK 8 Dec 23, 2022
YouTube player for SwiftUI

SwiftUI YouTube Player for iOS and MacOS Fully functional, SwiftUI-ready YouTube player for iOS 14+ and MacOS 11+. Actions and state are both delivere

Gordan Glavaš 12 Dec 25, 2022
📽 A video player for SwiftUI, support for caching, preload and custom control view.

Features QuickStart Advances Installation Requirements License Demo Clone or download the project. In the terminal, run swift package resolve. Open Vi

Gesen 437 Jan 5, 2023
Audio player demo based on Swift and SwiftUI, which can play local or network audio.

SwiftAudioDemo Audio player demo based on Swift and SwiftUI, which can play local or network audio. In this demo, I have made a radio player to play n

Jensen Zhang 6 Mar 13, 2022
Movie Store with SwiftUI and Combine.

MovieStore Movie Store with SwiftUI and Combine. La app se realizo en el patrón MVVM (Model - View - ViewModel) Model Dentro del la app van a encontra

null 0 Nov 29, 2021
Pretty iOS mobile screens + AVPlayer video view ––– made in SwiftUI

UrbanVillageProjectScreens Recreated UI screens from the conceptual Urban Village Project. Read more about the project here. Please open an issue if y

10011.co 23 Dec 29, 2022
VideoBackgroundSwiftUI - Video Background loop made with SwiftUI

VideoBackgroundSwiftUI (Updated) Video Background loop made with SwiftUI Video N

Shreyas Bhike 19 Sep 9, 2022
An alternative to SwiftUI's VideoPlayer that includes an overlay button that will transition the player to be presented full screen.

The VideoPlayer provided by SwiftUI out of the box is great but it's missing one very important feature: full screen presentation mode. AZVideoPlayer behaves pretty much exactly like VideoPlayer, but adds the button that's provided by AVPlayerViewController to go full screen.

Adam Zarn 6 Dec 25, 2022
Thin SwiftUI wrapper around `yt-dlp`

SwiftyYTDL Thin SwiftUI wrapper around yt-dlp - popluar Python module for downloading stuff of Youtube, Twtitter, Instagram, TikTok and others. Depend

Danylo Kostyshyn 4 Dec 22, 2022
The main goal of this mini project is to inspire you on what we can accomplish with the SwiftUI framework.

COMPLEX SWIFTUI GESTURES We will create such a custom button with complex gestures that we can not find in Apple’s stock user interface library. PARALLAX EFFECT By using multiple movements in the opposite direction (parallax effect) we can add depth to this amazing onboarding screen.

Ghullam Abbas 4 Oct 17, 2022
Prototyping Stream Chat iOS SDK with SwiftUI.

Prototyping Stream Chat iOS SDK with SwiftUI.This project includes layout and composition of the main screens such as the channel list (contacts), select user and chats (conversations). Additionally there are several SwiftUI animations along with interaction styles.

Stream 9 Jan 8, 2023
TwilioChat_iOS - Twilio iOS SDK Implementaion Chat one-one Chat One-Many (Group)

TwilioChat_iOS - Twilio iOS SDK Implementaion Chat one-one Chat One-Many (Group) - Add Participant - Remove Participant Send Attachment Image Android - iOS Tested iOS - iOS Tested iOS - Android Tested React to Message, Delete a Message Read, Delivered, Sent Delete a Conversation Unread Messages Filter

Zeeshan Haider 2 May 23, 2022