Get Started

Quick Start

TapTalk.io help you to implement real-time chat to any type of your client app with speed and efficiency. Our iOS SDK provides you with various methods to initialize, configure, and build the chat from the client side - no server side implementation is required because our reliable infra management service is delivered with the SDK. This page presents a brief overview of the SDK’s structure and abilities, then lets you go through the preliminary steps of implementing the SDK in your own app.

Configure and Initialize TapTalk.io iOS SDK

Step 1: Create a new application from your dashboard

1.Login to TapTalk.io Dashboard, then choose Development -> Apps.

  1. Click New App Button, input App Name and choose Platform, and then click Create New App Button.
  1. A pop-up dialog will be shown with provided App Key ID & App Key Secret

Note: Please remember to save your App Key ID & your App Key Secret because it will only be shown once and will be used in TapTalk.io initialization

Step 2: Install TapTalk.io SDK

  1. You can install the TapTalk.io iOS SDK using CocoaPods like the following. If you are new to CocoaPods, you can see more information in Cocoapods guides. To create a Podfile, open a terminal window, navigate to your project directory, and then create a Podfile by running the following command:
$ pod init

Then Podfile will be created in your project directory. Open the Podfile and add the following lines to the Podfile.

//please make sure you define platform on your Podfile

//Make sure using ios 11.0 for minimum deployment target
platform :ios, '11.0'
use_frameworks!

target "YourProjectName" do
    pod 'TapTalk'
end

Note

Plese make sure you implement ios version 11.0 platform :ios, '11.0' for minimum deployment target to obtain latest update of TapTalk.io SDK

Next, install the TapTalk.io through CocoaPods.

$ pod install

Step 3: Grant permission in your application project

To make sure TapTalk.io have all permission to access user's media, file, location, and contact, the application needs to ask for permissions. Go to your info.plist, and add the following key-value pairs.

Information Property Key
Information Property Value

Privacy - Camera Usage Description

$(PRODUCT_NAME) needs to request access to your camera to take profile picture and to send image chat.

Privacy - Contacts Usage Description

$(PRODUCT_NAME) need your permission to access your contact, we will sync your contact to our server and automatically find your friend so it is easier for you to find your friends.

Privacy - Photo Library Additions Usage Description

$(PRODUCT_NAME) needs to request access to your photo library to save photo.

Privacy - Photo Library Usage Description

$(PRODUCT_NAME) needs to request access to your photo library to take profile picture and to send image chat.

Privacy - Location When In Use Usage Description

$(PRODUCT_NAME) needs to request access to your location to send location chat.

Note: You can change Information Property Value based on your own words and will be appears when the application needs the permission.

Step 4: Enable background modes

Background modes is required to handle background process in TapTalk.io. It is used to run some processes in the background before the app is killed. For more information about the processes, check out the background process section.

To enable background modes, go to Target -> Capabilities, then turn Background Modes toggle to ON, next select Background fetch and Remote notifications

After you turn on the Background Modes, Required background modes key will be added automatically in your Info.plist as shown below.

Step 5: Initialize Taptalk.io in your Application class

In order to use TapTalk.io, you must first initialize a TapTalk.io instance by passing the APP_KEY_ID, APP_KEY_SECRET, APP_BASE_URL, and IMPLEMENTATION_TYPE assigned to your application to the initWithAppKeyID:appKeySecret:apiURLString:implementationType: method as a parameter. Generally, initialization is implemented in the appDelegate application:didFinishLaunchingWithOptions: method.

Note: To get BASE_URL you can follow our documentation on how to get Base URL on TapTalk.io.

//  AppDelegate.m

//import TapTalk.io
#import <TapTalk/TapTalk.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 
  //Initialize TapTalk.io
  [[TapTalk sharedInstance] initWithAppKeyID:APP_KEY_ID appKeySecret:APP_KEY_SECRET apiURLString:APP_BASE_URL implementationType:IMPLEMENTATION_TYPE];
  
}

Parameters

APP_KEY_ID: (String) application key ID
APP_KEY_SECRET: (String) application key Secret
APP_BASE_URL: (String) base API URL
IMPLEMENTATION_TYPE: (enum) found in TapTalkImplentationType, more detailed information below

IMPLEMENTATION_TYPE

TapTalkImplementationType consists of 3 types which are:

  • TapTalkImplementationTypeUI: used for implementation with only TapUI
  • TapTalkImplementationTypeCore: used for implementation with only TapCore
  • TapTalkImplementationTypeCombine: used for implementation with both of TapCore and TapUI combined

Note: In the Event Delegate page, you can find detailed information on the usages of TapTalk iOS SDK's delegates and callbacks.

Step 6: Implement application delegate

To allow the iOS SDK to respond to the connection and state changes in your iOS client app, you have to implement all of our application delegate methods in your UIApplicationDelegate methods in appDelegate file. You can follow the instructions in Implement Application Delegate page.

Step 7: Authenticate to TapTalk.io

In order to use the abilities of the iOS SDK in your client app, a TapTalk instance must be initiated in each client app through user authentication with TapTalk.io server. An authenticated user account allows the instance to communicate and interact with the server. To authenticate your user with the server, follow the instructions in Authentication page.

Initialize Google Places API Key (Optional)

To enable location search result preview while sending location message, a Google Places API Key is required. To obtain the API key for your application, you can check the documentation provided by Google. To initialize, insert your obtained key using the initializeGooglePlacesApiKey() method.

#import <TapTalk/TapTalk.h>
  
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  
	//Initialize Google Places API Key
	[[TapTalk sharedInstance] initializeGooglePlacesAPIKey:GOOGLE_PLACES_API_KEY]; 
}

Parameters

GOOGLE_PLACES_API_KEY: (String) Google Places API Key

Open Your First Room List

To open room list view, simply initialize TAPRoomListViewController and choose to present or push the selected controller to your current view. Here we use TapUI to open room list view. Creating a user interface won't be necessary, because TapTalk.io have provided an integrated user interface to be used in your application. To use TapTalk.io's chat interface, simply initialize our TapUI method and you are good to go. For more information about TapUI and TapCore, please see TapUI and TapCore page.

//Import TAPRoomListViewController
#import <TapTalk/TAPRoomListViewController.h>
#import <TapTalk/TapUI.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  //Initialize TapTalk.io room list view controller here
  TAPRoomListViewController *roomListViewController = [[TapUI sharedInstance] 	roomListViewController]; 
  UINavigationController *roomListNavigationController = [[UINavigationController alloc] initWithRootViewController:roomListViewController];
  
  //You can choose to present or push view controller using this code
  //Present room list view
  [self presentViewController:roomListViewController animated:YES completion:^{
  //completion
  }];
  
  //Push room list view
  [self.navigationController pushViewController:roomListNavigationController animated:YES]; 
  
  //Or you can add to your window root view controller
   self.window.rootViewController = roomListNavigationController;
  
}

Note: For more information about Room List View for TapUI, please see Room List section.

Get Started


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.