# iOS SDK

## Overview

## Installation

## Start the SDK

## [Send Location Updates](https://docs.forter.com/mobile-sdks/send-location-updates)

## [iOS Webview](https://docs.forter.com/mobile-sdks/ios-webview)

## [Shopify Checkout Kit](https://docs.forter.com/mobile-sdks/shopify-checkout-kit)

## [Licensing](https://docs.forter.com/mobile-sdks/licensing)

## [Changelog](https://docs.forter.com/mobile-sdks/changelog)

# Android SDK

## [Android SDK Overview](https://docs.forter.com/mobile-sdks/android-sdk-overview)

## Installation

## Start the SDK

## [Integration Guide](https://docs.forter.com/mobile-sdks/integration-guide)

## [forterMobileUID](https://docs.forter.com/mobile-sdks/fortermobileuid)

## [Social Network IDs](https://docs.forter.com/mobile-sdks/social-network-ids)

## [Send Location Updates](https://docs.forter.com/mobile-sdks/Xkzu-send-location-updates)

## [Android Webview](https://docs.forter.com/mobile-sdks/android-webview)

## [Shopify Checkout Kit](https://docs.forter.com/mobile-sdks/ZN0Z-shopify-checkout-kit)

## [Play Store Compliance](https://docs.forter.com/mobile-sdks/play-store-compliance)

## [Changelog](https://docs.forter.com/mobile-sdks/kuHI-changelog)

# Integration Guide

## [Prerequisites](https://docs.forter.com/mobile-sdks/integration-guide#prerequisites)

The **ForterSDK** requires initialization from your application's main context. If you haven't set up an Application class yet:

1. Create an [Application class](https://developer.android.com/reference/android/app/Application.html "Application class")  
2. [Register it in your AndroidManifest.xml](http://stackoverflow.com/questions/2929562/register-application-class-in-manifest "Register it in your AndroidManifest.xml")

## [Integration Steps](https://docs.forter.com/mobile-sdks/integration-guide#integration-steps)

### [1. Initialize the SDK](https://docs.forter.com/mobile-sdks/integration-guide#1-initialize-the-sdk)
Add the following initialization code to your Application class's onCreate() method:

```java
// Get ForterSDK instance and initiate it with the application context
IForterSDK ftr = ForterSDK.getInstance();
ftr.init(this, AppConstants.FORTER_SITE_ID);
```

You will need to provide a valid Forter site ID (please use the test site ID only for debugging purposes)

Advanced configuration of the SDK can be done by initializing the SDK with a customized ForterSDKConfiguration. Please consult with your Forter Implementation Engineer before changing the default configuration.

### [2. Register Activity Lifecycle Callbacks](https://docs.forter.com/mobile-sdks/integration-guide#2-register-activity-lifecycle-callbacks)
After initializing the SDK in the onCreate() method of your application class, please register our built-in [activity lifecycle callbacks](https://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html "activity lifecycle callbacks"):

This step is only required for SDK versions **below 3.0.0**.

```java
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
    registerActivityLifecycleCallbacks(ftr.getActivityLifecycleCallbacks());
}
```

## [Complete Integration Example](https://docs.forter.com/mobile-sdks/integration-guide#complete-integration-example)
After performing the above steps, here's how your onCreate() method should look:

```java
@Override
public void onCreate(){
    super.onCreate();
    String mobileId = ForterIntegrationUtils.getDeviceUID(this);

// Get ForterClient instance and initiate it
    IForterSDK ftr = ForterSDK.getInstance();
    ftr.init(this, AppConstants.FORTER_SITE_ID // your unique Forter site ID);

// Start generic activity-based navigation tracking (ForterSDK < 3.0.0)
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
        registerActivityLifecycleCallbacks(ftr.getActivityLifecycleCallbacks());
    }
}
```
