{"id":13559610,"url":"https://github.com/sendbird/sendbird-chat-sample-ios","last_synced_at":"2025-04-24T06:53:42.073Z","repository":{"id":37644102,"uuid":"451325657","full_name":"sendbird/sendbird-chat-sample-ios","owner":"sendbird","description":"This repository provides feature-level Chat samples with Swift.","archived":false,"fork":false,"pushed_at":"2025-01-08T02:03:13.000Z","size":206453,"stargazers_count":34,"open_issues_count":16,"forks_count":6,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-04-24T06:53:35.882Z","etag":null,"topics":["api-for-chat","bard","chat-api","chat-api-platform","chat-platform","chat-sdk","chatbot-api","chatbot-sdk","chatgpt","communications-platform","genai-chatbot","genai-chatbot-api","genai-chatbot-sdk","gpt-powered-chatbot","instant-messaging-api","llama2","messaging-api","messaging-platform","messaging-sdk","palm2"],"latest_commit_sha":null,"homepage":"https://sendbird.com/docs/chat/v4/ios/overview","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sendbird.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-24T05:16:05.000Z","updated_at":"2025-01-08T02:03:19.000Z","dependencies_parsed_at":"2024-01-14T03:36:17.174Z","dependency_job_id":"f64ee23a-9928-46da-818b-c25011d0c656","html_url":"https://github.com/sendbird/sendbird-chat-sample-ios","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-chat-sample-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-chat-sample-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-chat-sample-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sendbird%2Fsendbird-chat-sample-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sendbird","download_url":"https://codeload.github.com/sendbird/sendbird-chat-sample-ios/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250580705,"owners_count":21453531,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-for-chat","bard","chat-api","chat-api-platform","chat-platform","chat-sdk","chatbot-api","chatbot-sdk","chatgpt","communications-platform","genai-chatbot","genai-chatbot-api","genai-chatbot-sdk","gpt-powered-chatbot","instant-messaging-api","llama2","messaging-api","messaging-platform","messaging-sdk","palm2"],"created_at":"2024-08-01T13:00:29.904Z","updated_at":"2025-04-24T06:53:42.057Z","avatar_url":"https://github.com/sendbird.png","language":"Swift","readme":"# [Sendbird Chat](https://sendbird.com/docs/chat) SDK Sample for iOS\n\n[![Platform](https://img.shields.io/badge/Platform-iOS-orange.svg)](https://github.com/sendbird/sendbird-chat-sample-ios)\n[![Language](https://img.shields.io/badge/Language-Swift-orange.svg)](https://github.com/sendbird/sendbird-chat-sample-ios)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Tuist - Build](https://github.com/sendbird/sendbird-chat-sample-ios/actions/workflows/tuist-build.yml/badge.svg)](https://github.com/sendbird/sendbird-chat-sample-ios/actions/workflows/tuist-build.yml)\n\nThis repository provides feature-level Chat samples with Swift.\n\n## 🔒 Security tip\nWhen 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.\n\nBefore launching make sure to review the security tab under ⚙️ Settings -\u003e 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.\n\n## 🚀 Get started\n\nYou must use [tuist](https://github.com/tuist/tuist) to build these sample apps.\n\n### 1. Install tuist\n```bash\ncurl -Ls https://install.tuist.io | bash\n```\n\n### 2. Install Dependencies\n```bash\ntuist fetch\n```\n\n### 3. Generate Xcode project \u0026 workspace\n```bash\ntuist generate \n```\n\nFor more details: [Tuist Docs](https://docs.tuist.io/tutorial/get-started)\n\n### 4. Execute sample apps\n\n1. Execute `Samples.xcworkspace`.\n2. Select the scheme of the feature you want to test.\n3. Run the scheme.\n\n## 🏗 Project structure\n\n```\n.\n├── Samples.xcworkspace\n├── Modules\n│   └── CommonModule # Common Logic \u0026 View\n├── Apps\n│   ├── BasicGroupChannel\n│   ├── BasicOpenChannel\n│   ├── GroupChannelFeatureA\n│   ├── OpenChannelFeatureA\n│   ├── ...\n│   ├── GroupChannelFeatureN\n│   └── OpenChannelFeatureN\n└── Tuist\n```\n\n### [CommonModule](Modules/CommonModule)\n\n- [UseCase](Modules/CommonModule/Sources/UseCase): Objects that can be conceptually bundled and used in SendbirdSDK.\n  - 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.\n  - So, even if it is not divided into screen units, things that can be grouped with a similar concept are grouped with UseCase.\n  - If necessary, change the Access Control of BaseModule to open and use it.\n- [View](Modules/CommonModule/Sources/UseCase)\n  - Small Views that can be easily modularized\n  - It is recommended to collect all Views that are used for both Group Channel and Open Channel here.\n- `CommonModule` is used as an embedded framework in each Sample App.\n\n\n# 🛠 For contributors\nBelow is an additional explanation for contributors.\n\n## 📲 How to add new `Feature Sample App` with tuist\n1. Copy [Apps/BasicGroupChannel](Apps/BasicGroupChannel) or [Apps/BasicOpenChannel](Apps/BasicOpenChannel)\n2. Paste under [Apps](Apps) folder.\n3. Rename folder name `BasicGroupChannel` to `{FeatureSampleName}`\n4. Rename parameter `\"BasicGroupChannel\"` to `\"{FeatureSampleName}\"` in `Apps/{FeatureSampleName}/Project.swift`\n```swift\nlet project = Project.app(name: {FeatureSampleName})\n```\n5. Re-generate Xcode project \u0026 workspace\n```\ntuist generate\n```\n\n## Considerations in real world app\n - In this sample repo users are connecting to sendbird using a user ID (Sendbird Dashboard --\u003e Security --\u003e Read \u0026 Write). Read \u0026 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](https://sendbird.com/docs/chat/v4/ios/guides/authentication#2-connect-to-sendbird-server-with-a-user-id-and-an-access-token) with a Sendbird generated Session Token.\n","funding_links":[],"categories":["Open source projects"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsendbird%2Fsendbird-chat-sample-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsendbird%2Fsendbird-chat-sample-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsendbird%2Fsendbird-chat-sample-ios/lists"}