iOS Swift/Objective-c adapter

Overview

Follow this step-by-step tutorial to implement the Watch Together video chat sample application.

While the client-side application will take care of most of the functionality, in order to make this sample application work, you will need to get an access token from the Cluster Authentication Server (CAS).

Requirements

To complete this guide successfully the following prerequisites are required:

Authentication

An Access Token is needed in order to allow a client to connect to a Session.

  • To learn how to acquire an Access Token please look at the Cluster Authentication Server (CAS) reference

  • To simplify the tutorial, in the section below you can see an example of getting an Access Token

Acquiring an Access Token

TheAccess Tokenis a JWT token - more about JWT you can read - here.

A successful response will look like that:

You can get your API_KEY and API_SECRET in your private area, here.

Going to production

‌To go to production you will need to implement your own authentication server. Using the server the Access Token will be shared to your various clients (Web, Android, and iOS). With this valid Access Token you will be able to use the service.

For that you will need:

  • API_KEY, and API_SECRET - can be retrieved in your private area once you login

  • Your own working authentication server - Authentication overview

Creating a new project

  • Open Xcode and create a new project

  • Choose a Single View application

  • Configure your product organization, bundle, and team names

  • Set the application location on your computer and press "create"

Adding Watch Together iOS SDK library to the project

In case you require to use an Objective-c project, please add the WatchTogetherAdapter to your project

  • Download the library (Private area) package and unpack it

  • Create a folder with the name "WatchTogether" in the root of the project

  • Copy all files ("WatchTogether.framework","WatchTogether.podspec") to created folder

  • [When using the Objective-c adapater] - do the following extra steps

    • Create a folder named "WatchTogetherAdapter" in the root of the project

    • Copy all the files unpacked from the SDK ("WatchTogetherAdapter.framework","WatchTogetherAdapter.podspec") to "WatchTogetherAdapter" folder

  • Open folder with your project in Terminal

    • Print the command "pod init"

    • Print the command "open Podfile"

    • In the opened file paste this string pod 'WatchTogether', :path => './WatchTogether' after "target 'Your project name' do" and save file

    • [When using the Objective-c adapater] - do the following extra steps

      • In the opened file paste the following strings pod 'WatchTogetherAdapter', :path => './WatchTogetherAdapter' pod 'WatchTogether', :path => './WatchTogether'

    • In the terminal write the command "pod install"

    • To get more information about Cocoapod go to this site https://cocoapods.org

  • Disable application Bitcode.

    • Build Settings → Build Options → Enable Bitcodes → Set to "NO"

  • To mock a video for the simulator you will need to add an mp4 video file to your main bundle and rename it to simulator_mock.mp4

Granting access to camera and microphone

  • Go to the info.plist file, add the following properties

    • Add the property "Privacy - Camera Usage Description" and the value "$(PRODUCT_NAME) uses the camera"

    • Add the property "Privacy - Microphone Usage Description" and the value "$(PRODUCT_NAME) uses the microphone"

Initialize a Session

  • Import the library to the view controller

  • Set the minimal log level

  • Create a session instance

    • username - a display name

    • delegate - an object conforming to SessionDelegate protocol

  • Get the local participant instance

  • Connect to the session

    • Access token - an authentication token received from the Authentication Server

  • Disconnect from the session

Using the SessionDelegate

Using the Participant object

  • To get Participant video use the method getVideo()

  • To get Participant display name use the method getDisplayName()

  • To get Participant id use the method getId()

Using the ParticipantDelegate object

Working with the LocalParticipant object

LocalParticipant class implements the Participant protocol

  • Camera preview

Running the application

Once coding is finished, you should be able to run the application.

You can view the complete Watch Together sample application here - Swift.

Next steps

Support

Need technical support? contact us at [email protected].

Last updated

Was this helpful?