• Stars
    star
    750
  • Rank 58,100 (Top 2 %)
  • Language
    Swift
  • License
    Other
  • Created about 5 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

💬 iOS Chat SDK in Swift - Build your own app chat experience for iOS using the official Stream Chat API

StreamChat StreamChatUI

This is the official iOS SDK for Stream Chat, a service for building chat and messaging applications. This library includes both a low-level SDK and a set of reusable UI components.

Low Level Client (LLC)

The StreamChat SDK is a low level client for Stream chat service that doesn't contain any UI components. It is meant to be used when you want to build a fully custom UI. For the majority of use cases though, we recommend using our highly customizable UI SDK's.

UIKit SDK

The StreamChatUI SDK is our UI SDK for UIKit components. If your application needs to support iOS 13 and below, this is the right UI SDK for you.

SwiftUI SDK

The StreamChatSwiftUI SDK is our UI SDK for SwiftUI components. If your application only needs to support iOS 14 and above, this is the right UI SDK for you. This SDK is available in another repository stream-chat-swiftui.


Main Features

  • Offline support: Browse channels and send messages while offline.
  • Familiar behavior: The UI elements are good platform citizens and behave like native elements; they respect tintColor, layoutMargins, 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 UIKit patterns and paradigms: The API follows the design of native system SDKs. It makes integration with your existing code easy and familiar.
  • SwiftUI support: We have developed a brand new SDK to help you have smoother Stream Chat integration in your SwiftUI apps.
  • First-class support for Combine: The StreamChat SDK (Low Level Client) has Combine wrappers to make it really easy use in an app that uses Combine.
  • Fully open-source implementation: You have access to the complete source code of the SDK here on GitHub.
  • Supports iOS 12+: We proudly support older versions of iOS, so your app can stay available to almost everyone.

Quick Links

  • iOS/Swift Chat Tutorial: Learn how to use the SDK by following our simple tutorial with UIKit (or SwiftUI).
  • Register: Register to get an API key for Stream Chat.
  • Installation: Learn more about how to install the SDK using CocoaPods, SPM or Carthage.
  • Documentation: An extensive documentation is available to help with you integration.
  • SwiftUI: Check our SwiftUI SDK if you are developing with SwiftUI.
  • Demo app: This repo includes a fully functional demo app with example usage of the SDK.
  • Example apps: This section of the repo includes fully functional sample apps that you can use as reference.

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.

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.

  • Highly customizable: Every element is designed to be easily customizable. You can modify the brand color by setting tintColor, apply appearance changes using custom UI rules, or subclass existing elements and inject them everywhere in the system, no matter how deep is the logic hierarchy.

  • open by default: Everything is open unless there's a strong reason for it to not be. This means you can easily modify almost every behavior of the SDK such that it fits your needs.

  • Good platform citizen: The UI elements behave like good platform citizens. They use existing iOS patterns; their behavior is predictable and matches system UI components; they respect tintColor, layourMargins, dynamic font sizes, and other system-defined UI constants.

Dependencies

This SDK tries to keep the list of external dependencies to a minimum. Starting 4.6.0, and in order to improve the developer experience, dependencies are hidden inside our libraries. (Does not apply to StreamChatSwiftUI's dependencies yet).

Learn more about our dependencies here

Using Objective-C

You can still integrate our SDKs if your project is using Objective-C. In that case, any customizations would need to be done by subclassing our components in Swift, and then use those directly from the Objective-C code.


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

Message List

Features Preview
A list of message in a channel
Photo preview
Message reactions
Message grouping based on the send time
Link preview
Inline replies
Message threads
GIPHY support

Message Composer

Features Preview
Support for multiline text, expands and shrinks as needed
Image and file attachments
Replies to messages
Tagging of users
Chat commands like mute, ban, giphy

Chat Commands

Features Preview
Easily search commands by writing / symbol or tap bolt icon
GIPHY support out of box
Supports mute, unmute, ban, unban commands
WIP support of custom commands

User Tagging Suggestion

Features Preview
User mentions preview
Easily search for concrete user
Mention as many users as you want

More Repositories

1

Winds

A Beautiful Open Source RSS & Podcast App Powered by Getstream.io
JavaScript
8,813
star
2

stream-chat-android

💬 Android Chat SDK ➜ Stream Chat API. UI component libraries for chat apps. Kotlin & Jetpack Compose messaging SDK for Android chat
Kotlin
1,345
star
3

vg

Virtualgo: Easy and powerful workspace based development for go
Go
1,311
star
4

whatsApp-clone-compose

📱 WhatsApp clone project demonstrates modern Android development built with Jetpack Compose and Stream Chat/Video SDK for Compose.
Kotlin
1,168
star
5

stream-react-example

Use React and Redux to build your own feature-rich and scalable social network app! Visit cabin.getstream.io for an overview of all 8 tutorials and a live demo.
HTML
923
star
6

stream-chat-flutter

Flutter Chat SDK - Build your own chat app experience using Dart, Flutter and the Stream Chat Messaging API.
Dart
839
star
7

stream-chat-react-native

💬 React-Native Chat SDK ➜ Stream Chat. Includes a tutorial on building your own chat app experience using React-Native, React-Navigation and Stream
TypeScript
792
star
8

purposeful-ios-animations

Meaningful iOS animations built to inspire you in creating useful animations for your apps. Each of the animations here was cloned with SwiftUI. Have you seen an app animation you love to rebuild and add to this repo?, contact [@amos_gyamfi](https://twitter.com/amos_gyamfi) and [@stefanjblos](https://twitter.com/stefanjblos) on Twitter.
Swift
702
star
9

swiftui-spring-animations

This repository serves as your reference and complete guide for SwiftUI Spring Animations. It demonstrates use cases for the various types of spring animations and spring parameters. No more guessing the values of the parameters for spring animations you create for your next iOS app.
Swift
631
star
10

stream-chat-react

React Chat SDK ➜ Stream Chat 💬
TypeScript
552
star
11

awesome-saas-services

A curated list of the best in class SaaS services for developers and business owners.
475
star
12

webrtc-android

🛰️ A versatile WebRTC pre-compiled Android library that reflects the recent WebRTC updates to facilitate real-time video chat for Android and Compose.
Kotlin
465
star
13

stream-django

Django Client - Build Activity Feeds & Streams with GetStream.io
Python
451
star
14

avatarview-android

✨ Supports loading profile images with fractional styles, shapes, borders, indicators, and initials for Android.
Kotlin
429
star
15

sketchbook-compose

🎨 Jetpack Compose canvas library that helps you draw paths, images on canvas with color pickers and palettes.
Kotlin
417
star
16

webrtc-in-jetpack-compose

📱 This project demonstrates WebRTC protocol to facilitate real-time video communications with Jetpack Compose.
Kotlin
372
star
17

AvengersChat

💙 Android sample Avengers chat application using Stream Chat SDK based on MVVM (ViewModel, Coroutines, Room, Hilt, Repository) architecture.
Kotlin
365
star
18

stream-draw-android

🛥 Stream Draw is a real-time multiplayer drawing & chat game app built entirely with Jetpack Compose.
Kotlin
334
star
19

stream-video-android

📲 Android Video SDK. Stream's versatile Core + Compose UI component libraries that allow you to build video calling, audio room, and, live streaming apps based on Webrtc running on Stream's global edge network.
Kotlin
334
star
20

stream-js

JS / Browser Client - Build Activity Feeds & Streams with GetStream.io
JavaScript
325
star
21

react-native-example

React Native Activity Feed example application
JavaScript
321
star
22

stream-laravel

Laravel Client - Build Activity Feeds & Streams with GetStream.io
PHP
314
star
23

effects-library

The Effects Library allows developers to create sophisticated and realistic particle systems such as snow, fire, rain, confetti, fireworks, and smoke with no or minimal effort.
Swift
303
star
24

flutter-samples

A collection of sample apps that use Stream
Dart
290
star
25

stream-chat-swiftui

SwiftUI Chat SDK ➜ Stream Chat 💬
Swift
279
star
26

stream-rails

Rails Client - Build Activity Feeds & Streams with GetStream.io
Ruby
257
star
27

Streamoji

:godmode: Custom emoji rendering library for iOS apps with support for GIF & still images - plug-in extension for UITextView - performance, cache ✅ - Made with 💘 by @GetStream
Swift
248
star
28

react-native-bidirectional-infinite-scroll

📜 React Native - Bidirectional Infinite Smooth Scroll
TypeScript
220
star
29

WhatsApp-Clone-Android

Tutorial which teaches you how to build a whatsapp chat clone on android using Kotlin, viewmodels, navigation component and Stream
Kotlin
218
star
30

butterfly

🦋 Butterfly helps you to build adaptive and responsive UIs for Android with Jetpack WindowManager.
Kotlin
213
star
31

slack-clone-react-native

Build a slack clone using react-native, Stream and react-navigation
JavaScript
206
star
32

react-native-activity-feed

Official React Native SDK for Activity Feeds
JavaScript
194
star
33

motionscape-app

MotionScape is your animations playground as a developer. You can see all animations and their parameters in effect with beautifully designed and handcrafted animation examples.
Swift
157
star
34

Android-Samples

📕 Provides a list of samples that utilize modern Android tech stacks and Stream Chat SDK for Android and Compose.
Kotlin
154
star
35

node-express-mongo-api

Starter project for a REST API with Node.js, Express & MongoDB 🔋
JavaScript
151
star
36

stream-chat-js

JS / Browser Client - Build Chat with GetStream.io
TypeScript
149
star
37

stream-php

PHP Client - Build Activity Feeds & Streams with GetStream.io
PHP
139
star
38

stream-python

Python Client - Build Activity Feeds & Streams with GetStream.io
Python
136
star
39

react-activity-feed

Stream React Activity Feed Components
TypeScript
135
star
40

stream-node-orm

NodeJS Client - Build Activity Feeds & Streams with GetStream.io
JavaScript
131
star
41

meeting-room-compose

🎙️ A real-time meeting room app built with Jetpack Compose to demonstrate video communications.
Kotlin
130
star
42

flat-list-mvcp

"maintainVisibleContentPosition" prop support for Android react-native
TypeScript
130
star
43

stream-log

🛥 A lightweight and extensible logger library for Kotlin and Android.
Kotlin
118
star
44

react-native-samples

A collection of sample apps built using GetStream and React Native
JavaScript
116
star
45

website-react-examples

TypeScript
112
star
46

django_twitter

An example app built using getstream.io
Python
108
star
47

flutter-instagram-clone

An Instagram clone using Flutter and Stream Feeds
Dart
104
star
48

accessible-inclusive-ios-animations

Provide ways to limit animations/motion people find jarring in your apps. This repo demonstrates accessible and inclusive iOS animations/motion with practical examples and best practices.
Swift
104
star
49

Stream-Example-Nodejs

An example app built using getstream.io
JavaScript
96
star
50

twitter-clone

Learn how to build a functional Twitter clone using Stream, 100ms, Algolia, RevenueCat and Mux 😎
Swift
92
star
51

react-native-audio-player

JavaScript
86
star
52

stream-video-swift

SwiftUI Video SDK ➡️ Stream Video 📹
Swift
85
star
53

stream-ruby

Ruby Client - Build Activity Feeds & Streams with GetStream.io
Ruby
83
star
54

stream-go2

GetStream.io Go client
Go
82
star
55

stream-result

🚊 Railway-oriented library to easily model and handle success/failure for Kotlin, Android, and Retrofit.
Kotlin
81
star
56

stream-chat-unity

💬 Unity Chat Plugin by Stream ➜ These assets are the solution for adding an in-game text chat system to your Unity game.
C#
81
star
57

stream-cli

Configure & manage Stream applications from the command line. 🚀
Go
80
star
58

mongodb-activity-feed

Activity Feed, Timeline, News Feed, Notification Feed with MongoDB, Node and CRDTs
JavaScript
77
star
59

TinyGraphQL

🌸 Simple and lightweight GraphQL query builder for the Swift language - Made with 💘 by @GetStream
Swift
76
star
60

slack-clone-expo

Slack clone using Expo, Stream and react-navigation
JavaScript
75
star
61

Android-Video-Samples

📘 Provides a collection of samples that utilize modern Android tech stacks and Stream Video SDK for Kotlin and Compose.
Kotlin
75
star
62

stream-feed-flutter

Stream Feed official Flutter SDK. Build your own feed experience using Dart and Flutter.
Dart
69
star
63

stream-chat-go

Stream Chat official Golang API Client
Go
65
star
64

Stream-Example-Py

An example app built using getstream.io
CSS
61
star
65

encrypted-web-chat

A web chat application end-to-end encrypted with the Web Crypto API
JavaScript
59
star
66

fullstack-nextjs-whatsapp-clone

A sample codebase showcasing Stream Chat and Video to resembling WhatsApp, using NextJS, TailwindCSS and Vercel.
TypeScript
58
star
67

stream-tutorial-projects

This repo contains SwiftUI, Jetpack Compose & React Native projects for some of the iOS and Android tutorial series in the Stream Developers YouTube channel (https://youtube.com/playlist?list=PLNBhvhkAJG6tJYnY-5oZ1JCp2fBNbVL_6).
Swift
57
star
68

swift-lambda

λ Write HTTP services in Swift, deploy in seconds - Powered by AWS Lambda Runtime & Serverless Framework - Made with 💘 by @GetStream
Swift
57
star
69

stream-chat-python

Stream Chat official Python API Client
Python
56
star
70

stream-java

Java Client - Build Activity Feeds & Streams with GetStream.io
Java
53
star
71

SwiftUIMessagesUIClone

The SwiftUI Messages Clone consists of layout and composition clones of the iOS Messages app. It has Messages-like bubble and screen effects, reactions, and animations, all created with SwiftUI.
Swift
53
star
72

android-chat-tutorial

Sample apps for the Stream Chat Android SDK's official tutorial
Java
46
star
73

Stream-Example-Parse

Stream-Example-Parse
JavaScript
46
star
74

Stream-Example-PHP

An example app built using getstream.io https://getstream.io
PHP
46
star
75

stream-meteor

Meteor Client - Build Activity Feeds & Streams with GetStream.io
JavaScript
45
star
76

python-chat-example

Chat with Python, Django and React
JavaScript
44
star
77

stream-chat-net

Stream Chat official .NET API Client
C#
43
star
78

SwiftUIChristmasTree

🌲 Pure SwiftUI christmas tree with yearly updates. Enjoy 🎄
Swift
43
star
79

stream-chat-dart

Dart SDK - Build Chat with GetStream.io
Dart
42
star
80

stream-video-js

GetStream JavaScript Video SDK
TypeScript
41
star
81

Stream-Example-Go-Cassandra-API

Go-powered API example using Cassandra
Go
38
star
82

Stream-Example-Rails

An example app built using getstream.io
Ruby
38
star
83

Stream-Example-Android

Java
38
star
84

foldable-chat-android

🦚 Foldable chat Android demonstrates adaptive and responsive UIs with Jetpack WindowManager API.
Kotlin
36
star
85

stream-video-flutter

Flutter Video SDK - Build your own video app experience using Dart, Flutter and the Stream Video Messaging API.
Dart
35
star
86

stream-swift

Swift client for Stream API
Swift
35
star
87

stream-chat-angular

💬 Angular Chat SDK ➜ Stream Chat. Build a chat app with ease.
TypeScript
34
star
88

stream-net

NET Client - Build Activity Feeds & Streams with GetStream.io
C#
34
star
89

node-restify-mongo-api

Starter project for a REST API with Node.js, Restify & MongoDB 🔋
JavaScript
32
star
90

stream-chat-unreal

The official Unreal SDK for Stream Chat
C++
32
star
91

build-viking-sample

Sample app for Build Viking.
Dart
31
star
92

SwiftUI-open-voip-animations

SwiftUI animations and UI designs for iOS calling, meeting, audio-room, and live streaming use cases. Find something missing? Let @amos_gyamfi know on Twitter.
29
star
93

swift-activity-feed

Stream Swift iOS Activity Feed Components
Swift
29
star
94

stream-chat-ruby

Stream Chat official Ruby API Client
Ruby
29
star
95

sign-in-with-apple-swift-example

iOS + Node.js authentication using Sign in with Apple
Swift
28
star
96

rate_limiter

A pure dart package to apply useful rate limiting strategies on regular functions.
Dart
28
star
97

combase-v1

Open Source White-Label Customer Support Chat – Powered by Stream Chat 🗯️
JavaScript
26
star
98

swiftui-iMessage-clone

Swift
24
star
99

react-twitter-clone

JavaScript
23
star
100

psychotherapy-app-ios

👩‍💼📡 Psychotherapy app with video and chat built using Stream Chat and Dolby.io
Swift
23
star