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 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
  • Repeatedly kicked out of thread

    Repeatedly kicked out of thread

    Using the sample app included in the project, you get repeatedly kicked back out of threads upon navigating into them.

    This only seems to happen when 1. you have navigated into the thread recently (doesn't happen 1st time you navigate into the thread, but happens every time after), and 2. the message list view is scrolled up (doesn't occur when you're scrolled to the bottom).

    What did you do?

    Reproduction steps:

    • Cloned this repository, updated the development team, bundle ID, and App Group ID, then built the DemoAppSwiftUI target to my iPhone 11 Pro.
    • Entered one of the first channels I saw with enough messages to be scrollable.
    • Long pressed on a message in the channel. Tapped "Thread Reply". Left a message in the thread. Tapped "Back" to go back out of the thread into the channel.
    • Scrolled up the message list scroll view a little (this is important).
    • Tapped on the link to navigate into the thread.
    • Notice: Immediately upon navigating into the thread, it is removed from the navigation stack, and I am transitioned back to the channel. Notice: The channel has been scrolled down to the bottom (not longer in the same scroll position I was in when I tapped to navigate into the thread).

    What did you expect to happen?

    I expected for the navigation to only go back when I tap the "Back" button.

    What happened instead?

    I was automatically kicked out into the channel without swiping back or tapping "Back". As soon as the animation pushing the thread view onto the stack finishes, it starts the animation to navigation back, popping the thread view off the stack.

    Note: If you quit the app, then relaunch it, then scroll up, then go into a thread, you are NOT kicked out the 1st time you enter it. But it happens the 2nd time you attempt to navigate to it, and every time after that. So the two preconditions for this to occur are: 1. you must be scrolled up in the message list view (not at the bottom of the scroll view), and 2. you must have entered the thread before.

    GetStream Environment

    GetStream Chat version: main GetStream Chat frameworks: StreamChat, StreamChatSwiftUI iOS version: Latest version of iOS 15 Swift version: latest Xcode version: Version 13.4.1 (13F100) Device: iPhone 11 Pro

    Additional context

    I originally reported this issue here: https://github.com/GetStream/stream-chat-swift/issues/2181.

    Here is a video demonstrating the issue. Watch with sound on:

    https://user-images.githubusercontent.com/144283/180090246-084f7151-ee21-496b-801f-f65d70a8e06b.MOV

    opened by moubry 8
  • Xcode archive upload -

    Xcode archive upload - "app references non-public selectors in Payload/appname.app/appname: removeAll"

    What did you do?

    Archived an (almost empty) app with only StreamChatUI as a direct dependency. Then archived it and uploaded it with Xcode to the AppStore for TestFlight testing.

    What did you expect to happen?

    No warnings or errors showing up during the upload.

    What happened instead?

    The uploading shows this warning message. Upload still proceeds and I can use the internal testing for TestFlight. The app is still in review for external TestFlight testing, so I don't know if that would block it.

    Screen Shot 2022-09-17 at 14 12 47

    GetStream Environment

    GetStream Chat version: 4.21.1 GetStream Chat frameworks: StreamChat (4.21.1), StreamChatSwiftUI 4.21.0, StreamChatTestHelpers (0.2.3) iOS version: iOS 16.0 Swift version: 5.7(?) - the latest that comes with Xcode 14 Xcode version: 14 Device: iPhone 13 Mini

    Screen Shot 2022-09-18 at 11 35 43

    Additional context

    This happens when simply integrating a fresh checkout on an otherwise empty app (only plumbing to show a basic ChatChannelListView. So it's pretty much excluded that my own code caused this.

    opened by dmrschmidt 1
  • Externally delivered notifications don't persist if device is locked on ChatThreadView

    Externally delivered notifications don't persist if device is locked on ChatThreadView

    We've had this issue for a while: if a device is locked while a ChatThreadView is in the foreground, all the notifications show up for just a moment before being cleared. It only happens if the active view is the ChatThreadView. we haven't reproduced this issue when the device is locked with any other screen - in those cases, the notifications persist

    If you think this isn't caused by the SDK, could you link me to anything that might be dealing with notifications while the ChatThreadView is active? maybe this is caused by the lower level SDK?

    GetStream Environment

    GetStream Chat version: many, goes back pretty far and still repros on main GetStream Chat frameworks: StreamChatSwiftUI iOS version: tested on 15

    opened by AndrewSB 3
  • Leaved channel still show up in the thread list

    Leaved channel still show up in the thread list

    What did you do?

    Left a channel

    What did you expect to happen?

    Not to see it in the inbox

    What happened instead?

    Still showing up in some cases. Hard to say what is the reason.

    We are filtering channels with no membership but no result.

            let channelListController = chatClient.channelListController(
                query: ChannelListQuery(
                    filter: .containMembers(userIds: [userId.rawValue]),
                    pageSize: ChatMaxRecentsCount
                )) { channel in
                    channel.membership != nil
                }
    
    
    opened by saidReclip 9
  • Message list dates animation.

    Message list dates animation.

    What did you do?

    I switched dateIndicatorPlacement to .messageList

    What did you expect to happen?

    Scroll huge chat threads smoothly

    What happened instead?

    The animation is jerky when you get next page of messages with same date.

    The video recording attached. https://user-images.githubusercontent.com/102264702/188494115-dfb7257a-a392-4d9c-8a54-1db06b3ce51a.mp4

    opened by saidReclip 4
  • 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.21.0)
  • 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. 66 Feb 8, 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 103 Aug 11, 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.8k Sep 19, 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 26 Aug 10, 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 3 May 10, 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š 11 Jul 26, 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 405 Sep 28, 2022
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 20 Jun 13, 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 4 Sep 14, 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 3 Sep 2, 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 2 Aug 26, 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 7 Jul 27, 2022
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