Skip to content

Pitt-Cho/sendbird-chat-sample-ios

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sendbird Chat SDK Sample for iOS

Platform Language License: MIT Tuist - Build

This repository provides feature-level Chat samples with Swift.

🚀 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
  • 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.

About

This repository provides feature-level Chat samples with Swift.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%