Menu

Expand
Rate this page:

Programmable Chat Client SDKs

We intend to sunset the Programmable Chat API on July 25, 2022 to focus on the next generation of chat: the Twilio Conversations API. Learn more. We have also prepared this Migration Guide to assist in the transition from Chat to Conversations.

Twilio Programmable Chat provides client-side SDKs for browser-based web applications as well as for native iOS and Android applications.

JavaScript SDK

The latest version of the JavaScript SDK for Chat is available on Twilio’s CDN. To include it on your web page, simply add the following script tag:

<script src="https://media.twiliocdn.com/sdk/js/chat/v4.0/twilio-chat.min.js"></script>

The Twilio.Chat namespace should then be available in the window scope of your JavaScript application.

The JS Programmable Chat SDK is also available from NPM: Twilio Chat SDK.

iOS SDK

The Programmable Chat SDK for iOS is available for integration using CocoaPods, Carthage, or as a direct download.

We ship .dSYM files which can assist in crash reporting for versions of Programmable Chat for iOS 2.3.2 and above. You can read more about integrating these dSYMs. If you use Google Firebase Crashlytics in your application, you are encouraged to perform these additional steps when integrating Programmable Chat.

CocoaPods

To install the SDK with Cocoapods, add the following to your Podfile, changing MyTarget to the name of your target:

source 'https://github.com/CocoaPods/Specs'

target 'MyTarget' do
  pod 'TwilioChatClient', '~> 4.0'
end

Carthage

We support integration using Carthage binary frameworks. You can add Programmable Chat for iOS by adding the following line to your Cartfile:

github "twilio/twilio-chat-ios"

Now run carthage bootstrap (or carthage update if you are updating your SDKs.)

The .framework file(s) will be downloaded to the Carthage/Build/iOS directory. Now follow the complete framework integration steps below.

Direct download

We also offer the frameworks for direct download if your project does not use CocoaPods or Carthage. To add Programmable Chat to your project, download the Chat Client framework.

Expand the .tar.gz file. You will find the .framework file(s) inside the directory created. Now follow the complete framework integration steps below.

Complete framework integration

These steps are done for you if you are using CocoaPods, but are required if you are using either Carthage or direct integration.

Drag the .framework file(s) into your project, making sure they are dropped in the Embedded Binaries section of your project target’s settings. Select Copy items if needed when prompted. If the framework files do not appear in the Embedded Binaries for your target, you will receive a Reason: image not found error during compilation.

In the target’s settings’ Linked Frameworks section, please also add libc++.tbd as a dependency to your target if it is not already there.

Our frameworks include both device and simulator versions of the SDK to ease integration at development time. The iOS App Store only supports device symbols at submission time, so you must remove the simulator symbols at export time, or you will receive an Unsupported Architectures error during app submission. We include a script, called remove_archs, to help with this inside the framework which your project can use during packaging:

  1. Open your target’s settings.
  2. Select Build Phases.
  3. Add a new Run Script phase, move it to below the Embed Frameworks step if it is not added there automatically.
  4. Set the command to run:
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/TwilioChatClient.framework/remove_archs"

You will need to repeat these steps to add a Run Script step that calls remove_archs for Twilio AccessManager if you are using it in your project too.

Android SDK

The Android SDK is distributed as a direct download from Twilio’s CDN. It can also be installed directly within a Gradle build file using Maven Central.

Direct CDN

Maven Central

Gradle

To install via a Gradle build file, include the following in your Gradle build file:

allprojects {
    repositories {
        mavenCentral()
    }
}

/**
 * Declare dependencies
 * @see http://www.gradle.org/docs/current/userguide/userguide_single.html#sec:how_to_declare_your_dependencies
 */
dependencies {
    implementation 'com.twilio:chat-android:6.2.1'
}

Demo and reference client applications

Core Chat SDKs

A demo client implementation for each of the SDKs is available freely via GitHub. These are updated to use the latest SDK versions and implement almost all the available functionality. These implementations are intended for reference purposes only.

Other SDKs/Tools

Additional third-party bindings and reference implementations are available for the following frameworks.

Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.

        
        
        

        Thank you for your feedback!

        We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        Refer us and get $10 in 3 simple steps!

        Step 1

        Get link

        Get a free personal referral link here

        Step 2

        Give $10

        Your user signs up and upgrade using link

        Step 3

        Get $10

        1,250 free SMSes
        OR 1,000 free voice mins
        OR 12,000 chats
        OR more