sendbird/sendbird-chat-sample-ios

This repository provides feature-level Chat samples with Swift.

39

stars

389

commits

Swift

primary language

Jun 11, 2026

updated

sendbird.com/docs/chat/v4/ios/overview
api-for-chat
bard
chat-api
chat-api-platform
chatbot-api
chatbot-sdk
chatgpt
chat-platform
chat-sdk
communications-platform
genai-chatbot
genai-chatbot-api
genai-chatbot-sdk
gpt-powered-chatbot
instant-messaging-api
llama2
messaging-api
messaging-platform
messaging-sdk
palm2

README

Sendbird Chat SDK Sample for iOS

Platform Language License: MIT Tuist - Build

This repository provides feature-level Chat samples with Swift.

πŸ”’ Security tip

When a new Sendbird application is created in the dashboard the default security settings are set permissive to simplify running samples and implementing your first code.

Before launching make sure to review the security tab under βš™οΈ Settings -> Security, and set Access token permission to Read Only or Disabled so that unauthenticated users can not login as someone else. And review the Access Control lists. Most apps will want to disable "Allow retrieving user list" as that could expose usage numbers and other information.

πŸš€ Get started

You must use tuist to build these sample apps.

1. Install tuist

curl -Ls https://install.tuist.io | bash

2. Install Dependencies

tuist fetch

3. Generate Xcode project & workspace

tuist generate 

For more details: Tuist Docs

4. Execute sample apps

  1. Execute Samples.xcworkspace.
  2. Select the scheme of the feature you want to test.
  3. Run the scheme.

πŸ— Project structure

.
β”œβ”€β”€ Samples.xcworkspace
β”œβ”€β”€ Modules
β”‚Β Β  └── CommonModule # Common Logic & View
β”œβ”€β”€ Apps
β”‚Β Β  β”œβ”€β”€ BasicGroupChannel
β”‚Β Β  β”œβ”€β”€ BasicOpenChannel
β”‚Β Β  β”œβ”€β”€ GroupChannelFeatureA
β”‚Β Β  β”œβ”€β”€ OpenChannelFeatureA
β”‚   β”œβ”€β”€ ...
β”‚   β”œβ”€β”€ GroupChannelFeatureN
β”‚Β Β  └── OpenChannelFeatureN
└── Tuist

CommonModule

  • UseCase: Objects that can be conceptually bundled and used in SendbirdSDK.
    • For example, when implementing the chat room message list, the functions to initialize the list, get the previous message, and get the next message are mostly used together.
    • So, even if it is not divided into screen units, things that can be grouped with a similar concept are grouped with UseCase.
    • If necessary, change the Access Control of BaseModule to open and use it.
  • View
    • Small Views that can be easily modularized
    • It is recommended to collect all Views that are used for both Group Channel and Open Channel here.
  • CommonModule is used as an embedded framework in each Sample App.

πŸ›  For contributors

Below is an additional explanation for contributors.

πŸ“² How to add new Feature Sample App with tuist

  1. Copy Apps/BasicGroupChannel or Apps/BasicOpenChannel
  2. Paste under Apps folder.
  3. Rename folder name BasicGroupChannel to {FeatureSampleName}
  4. Rename parameter "BasicGroupChannel" to "{FeatureSampleName}" in Apps/{FeatureSampleName}/Project.swift
let project = Project.app(name: {FeatureSampleName})
  1. Re-generate Xcode project & workspace
tuist generate

Considerations in real world app

  • In this sample repo users are connecting to sendbird using a user ID (Sendbird Dashboard --> Security --> Read & Write). Read & Write is not secure and will create a new user automatically from the SDK if none exists. In production be sure to change the Sendbird Dashboard security settings to Deny login, and authenticate users with a Sendbird generated Session Token.

Contributors

cozzin

175 commits

YogeshVeer

167 commits

chrischabot

11 commits

mihaimoiseanu

9 commits

sendbird/sendbird-chat-sample-ios

This repository provides feature-level Chat samples with Swift.

39

stars

389

commits

Swift

primary language

Jun 11, 2026

updated

sendbird.com/docs/chat/v4/ios/overview
api-for-chat
bard
chat-api
chat-api-platform
chatbot-api
chatbot-sdk
chatgpt
chat-platform
chat-sdk
communications-platform
genai-chatbot
genai-chatbot-api
genai-chatbot-sdk
gpt-powered-chatbot
instant-messaging-api
llama2
messaging-api
messaging-platform
messaging-sdk
palm2

README

Sendbird Chat SDK Sample for iOS

Platform Language License: MIT Tuist - Build

This repository provides feature-level Chat samples with Swift.

πŸ”’ Security tip

When a new Sendbird application is created in the dashboard the default security settings are set permissive to simplify running samples and implementing your first code.

Before launching make sure to review the security tab under βš™οΈ Settings -> Security, and set Access token permission to Read Only or Disabled so that unauthenticated users can not login as someone else. And review the Access Control lists. Most apps will want to disable "Allow retrieving user list" as that could expose usage numbers and other information.

πŸš€ Get started

You must use tuist to build these sample apps.

1. Install tuist

curl -Ls https://install.tuist.io | bash

2. Install Dependencies

tuist fetch

3. Generate Xcode project & workspace

tuist generate 

For more details: Tuist Docs

4. Execute sample apps

  1. Execute Samples.xcworkspace.
  2. Select the scheme of the feature you want to test.
  3. Run the scheme.

πŸ— Project structure

.
β”œβ”€β”€ Samples.xcworkspace
β”œβ”€β”€ Modules
β”‚Β Β  └── CommonModule # Common Logic & View
β”œβ”€β”€ Apps
β”‚Β Β  β”œβ”€β”€ BasicGroupChannel
β”‚Β Β  β”œβ”€β”€ BasicOpenChannel
β”‚Β Β  β”œβ”€β”€ GroupChannelFeatureA
β”‚Β Β  β”œβ”€β”€ OpenChannelFeatureA
β”‚   β”œβ”€β”€ ...
β”‚   β”œβ”€β”€ GroupChannelFeatureN
β”‚Β Β  └── OpenChannelFeatureN
└── Tuist

CommonModule

  • UseCase: Objects that can be conceptually bundled and used in SendbirdSDK.
    • For example, when implementing the chat room message list, the functions to initialize the list, get the previous message, and get the next message are mostly used together.
    • So, even if it is not divided into screen units, things that can be grouped with a similar concept are grouped with UseCase.
    • If necessary, change the Access Control of BaseModule to open and use it.
  • View
    • Small Views that can be easily modularized
    • It is recommended to collect all Views that are used for both Group Channel and Open Channel here.
  • CommonModule is used as an embedded framework in each Sample App.

πŸ›  For contributors

Below is an additional explanation for contributors.

πŸ“² How to add new Feature Sample App with tuist

  1. Copy Apps/BasicGroupChannel or Apps/BasicOpenChannel
  2. Paste under Apps folder.
  3. Rename folder name BasicGroupChannel to {FeatureSampleName}
  4. Rename parameter "BasicGroupChannel" to "{FeatureSampleName}" in Apps/{FeatureSampleName}/Project.swift
let project = Project.app(name: {FeatureSampleName})
  1. Re-generate Xcode project & workspace
tuist generate

Considerations in real world app

  • In this sample repo users are connecting to sendbird using a user ID (Sendbird Dashboard --> Security --> Read & Write). Read & Write is not secure and will create a new user automatically from the SDK if none exists. In production be sure to change the Sendbird Dashboard security settings to Deny login, and authenticate users with a Sendbird generated Session Token.

Contributors

cozzin

175 commits

YogeshVeer

167 commits

chrischabot

11 commits

mihaimoiseanu

9 commits

Languages

Swift

100.0%