{"id":20078104,"url":"https://github.com/quickblox/ios-quickblox-sdk","last_synced_at":"2026-05-06T16:03:05.904Z","repository":{"id":147244525,"uuid":"446447303","full_name":"QuickBlox/ios-quickblox-sdk","owner":"QuickBlox","description":"ios-quickblox-sdk","archived":false,"fork":false,"pushed_at":"2024-05-28T14:22:48.000Z","size":36560,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-05-29T05:26:48.257Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QuickBlox.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-10T14:05:04.000Z","updated_at":"2024-06-10T14:32:17.600Z","dependencies_parsed_at":null,"dependency_job_id":"8022d2bf-8c7d-4e03-a0e5-51026ba72064","html_url":"https://github.com/QuickBlox/ios-quickblox-sdk","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickBlox%2Fios-quickblox-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickBlox%2Fios-quickblox-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickBlox%2Fios-quickblox-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickBlox%2Fios-quickblox-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QuickBlox","download_url":"https://codeload.github.com/QuickBlox/ios-quickblox-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241509656,"owners_count":19974071,"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":[],"created_at":"2024-11-13T15:12:52.004Z","updated_at":"2026-05-06T16:03:05.895Z","avatar_url":"https://github.com/QuickBlox.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cp\u003e\n\t\t\u003ca href=\"https://discord.gg/c6bxq9BC\"\u003e\u003cimg src=\"https://img.shields.io/discord/1042743094833065985?color=5865F2\u0026logo=discord\u0026logoColor=white\u0026label=QuickBlox%20Discord%20server\u0026style=for-the-badge\" alt=\"Discord server\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n# Quickblox IOS SDK\n\nQuickBlox iOS SDK ([Quickblox Framework](https://github.com/QuickBlox/ios-quickblox-sdk/tree/master/Quickblox.xcframework))\n\nLast SDK Version: 2.22.0\n\nThe [QuickBlox](https://quickblox.com) platform provides the QuickBlox iOS SDK is a software development kit that provides a set of tools and APIs to help iOS developers build communication features into their apps.\nThe QuickBlox iOS SDK is designed to work with Objective-C and Swift languages and provides various features such as messaging, video calling, push notifications, and user authentication.\n\n# Install\n\nQuickBlox iOS SDK is available using the [Swift Package Manager](https://www.swift.org/package-manager/) (SPM) as of version 2.19.0.\n\nTo add QuickBlox IOS SDK to your project using SPM, you can follow these steps:\n\n1. Open your Xcode project and navigate to File \u003e Swift Packages \u003e Add Package Dependency.\n2. In the search bar, enter the QuickBlox repository URL: https://github.com/QuickBlox/ios-quickblox-sdk.git  and click Add Package.\n3. Xcode will then fetch the QuickBlox iOS SDK and you can add it to your project by clicking Add Package.\n4. You can then import QuickBlox modules into your code and use its API.\n\nFor more information on spm customization options, you can refer to the [Apple Documentation](https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app).\n\n# Features\n\nThe QuickBlox iOS SDK includes several modules that provide different functionalities such as:\n\n- [Chat module](https://docs.quickblox.com/docs/ios-chat): Provides APIs to implement one-to-one and group chat functionalities in your app. \n- [Video chat module](https://docs.quickblox.com/docs/ios-video-calling): Provides APIs for video calling and conferencing features in your app.\n- [Users module](https://docs.quickblox.com/docs/ios-users): Provides APIs for user management and authentication in your app.\n- [Push notifications module](https://docs.quickblox.com/docs/ios-push-notifications): Provides APIs for integrating push notifications into your app.\n\nFor detailed information, including step-by-step guides to get started quickly, please refer to the official [QuickBlox iOS SDK Quick Start Guide](https://docs.quickblox.com/docs/ios-quick-start).\n\nQuickBlox offers both a free and a paid plan with different [pricing](https://quickblox.com/pricing/) models, so you can choose the one that fits your needs.\n\n# AI Features\n\nAI Features base on SmartChat Assistants\n\n## Overview\n\nStarting from version 2.20.0 of QuickBlox iOS SDK, the AI functionality is enabled and based on our SmartChat Assistants. The QuickBlox iOS SDK provides a range of features to enhance the chat experience. With essential messaging functionalities such as answer assistant, users can engage in more interactive conversations.\n\n**Supported features**\n\n| Name         | Description                                                              |\n| :----------- | :----------------------------------------------------------------------- |\n| AI Assist    | Provides answers based on chat history to selected message.              |\n| AI Translate | Provides translation based on chat history to selected incoming message. |\n\n## Requirements\n\nThe minimum requirements for using AI features are:\n\n- QuickBlox iOS SDK v2.20.0\n- Quickblox account with activated SmartChat Assistants\n\nVisit our [Key Concepts](doc:key-concepts) page to get an overall understanding of the most important QuickBlox concepts.\n\nVisit our [Smart Chat Assistant overview](https://docs.quickblox.com/docs/smartchat-assistant-overview) page to get an overall understanding of the most important SmartChat Assistants concepts.\n\n## Before you begin\n\n1. Register a [QuickBlox account](https://admin.quickblox.com/signin). This is a matter of a few minutes and you will be able to use this account to build your apps.\n2. Configure QuickBlox SDK for your app. Check out our [Setup](https://docs.quickblox.com/docs/ios-setup) page for more details. \n3. Create a user session to be able to use QuickBlox functionality. See our [Authentication](https://docs.quickblox.com/docs/ios-authentication) page to learn how to do it.\n4. Create or update your SmartChat Assistant. See our [Smart Chat Assistant](https://docs.quickblox.com/docs/smartchat-assistant-overview#create-smartchat-assistant) documentation to learn how to do it.\n\n### Review your SmartChat Assistant\n\nTo get **ID **of SmartChat Assistant to use it as `smartChatAssistantId ` param follow the steps below:\n\n1. Navigate to the **Dashboard =\u003e _YOUR_APP_ =\u003e SmartChat Assistant** page.\n2. Choose the ID of the SmartChat Assistant you want to update and click on it.\n3. Edit the SmartChat Assistant settings.\n4. Click the Save button to save changes.\n\n\u003cimg src=\"/assets/images/SmartChatAssistant.png\"/\u003e\n\n\n## AI Assist Answer\n\nQuickBlox provides answer assistant functionality that helps users effortlessly send various answers considering chat history.\n\n### How to use Assist Answer\n\n```swift\nlet smartChatAssistantId = \"XXXXXXXXXXXXXXXXXXXXXXXX\"\nlet messageToAssist = \"What is Quickblox?\"\n\nlet history = [QBAnswerAssistHistoryMessage(role: .assistant, message: \"History message\"),\n\t       QBAnswerAssistHistoryMessage(role: .user, message: \"Hi\"),\n\t       QBAnswerAssistHistoryMessage(role: .assistant, message: \"Hello! How can I assist you today?\")\n]\n\nlet result = try await QB.ai.answerAssist(withSmartChatAssistantId: smartChatAssistantId,\n\t\t\t\t\t  messageToAssist: messageToAssist,\n\t\t\t\t          history: history)\nlet answer = result.answer\n// handle answer\n```\n```objectivec\nNSString *smartChatAssistantId = @\"XXXXXXXXXXXXXXXXXXXXXXXX\";\nNSString *messageToAssist = @\"What is Quickblox?\";\n    \nNSArray *history = @[\n    [[QBAnswerAssistHistoryMessage alloc] initWithRole:QBAIRoleTypeAssistant message:@\"History message\"],\n    [[QBAnswerAssistHistoryMessage alloc] initWithRole:QBAIRoleTypeUser message:@\"Hi\"],\n    [[QBAnswerAssistHistoryMessage alloc] initWithRole:QBAIRoleTypeAssistant message:@\"Hello! How can I assist you today?\"]\n];\n    \n[QB.ai answerAssistWithSmartChatAssistantId:smartChatAssistantId\n\t\t\t    messageToAssist:messageToAssist\n\t\t                    history:history\n\t\t\t         completion:^(id\u003cQBAIAnswerAssistResultProtocol\u003e  _Nonnull result, NSError * _Nullable error) {\n    if (result) {\n        NSString *answer = result.answer;\n        // handle answer\n    }\n}];\n```\n\n| Parameter name       | Type            | Description                                                                                                                                                                                                                                          |\n| :------------------- | :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| smartChatAssistantId | String          | This field should hold your actual Smart Chat Assistant ID that you'll receive from the Quickblox account. This ID is used to authenticate your requests to the AI service.                                                                          |\n| messageToAssist      | String          | Message you want to get answer for.                                                                                                                                                                                                                  |\n| history              | Array of Object | Conversation history. Used to add context. Each object of array should have the two fields: 'role' and 'message'. The field role should contains one of next values: 'user' or 'assistant'.  The field message should be a string with chat message. |\n\n## AI Translate\n\nQuickBlox offers translation functionality that helps users easily translate text messages in chat, taking into account the context of the chat history.\n\n### How to use AI Translate\n\n```swift\nlet smartChatAssistantId = \"XXXXXXXXXXXXXXXXXXXXXXXX\"\nlet textToTranslate = \"Hola!\"\nlet languageCode = \"en\"\n        \nlet result = try await QB.ai.translate(withSmartChatAssistantId: smartChatAssistantId,\n\t\t\t\t       textToTranslate: textToTranslate,\n\t\t\t\t       languageCode: languageCode)\nlet answer = result.answer\n// handle answer\n```\n```objectivec\nNSString *smartChatAssistantId = @\"XXXXXXXXXXXXXXXXXXXXXXXX\";\nNSString *textToTranslate = @\"Hola!\";\nNSString *languageCode = @\"en\";\n    \n[QB.ai translateWithSmartChatAssistantId:smartChatAssistantId\n  \t\t\t textToTranslate:textToTranslate\n\t\t\t    languageCode:languageCode\n\t\t\t      completion:^(id\u003cQBAITranslateResultProtocol\u003e  _Nonnull result, NSError * _Nullable error) {\n    if (result) {\n        NSString *answer = result.answer;\n        // handle answer\n    }\n}];    \n```\n\n| Parameter name       | Type    | Description                                                                                                                                                                 |\n| :------------------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| smartChatAssistantId | String  | This field should hold your actual Smart Chat Assistant ID that you'll receive from the Quickblox account. This ID is used to authenticate your requests to the AI service. |\n| textToTranslate      | String  | Text to translate.                                                                                                                                                          |\n| languageCode         | Stringt | Translation language code.                                                                                                                                                  |\n\n# Requirements\n\nThe Swift Package Manager requires Xcode 11 or later and is only available for macOS and iOS projects.\n* XCode 12+\n* iOS 13+\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquickblox%2Fios-quickblox-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquickblox%2Fios-quickblox-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquickblox%2Fios-quickblox-sdk/lists"}