Quick Start

Getting Started / iOS

Check our public sample application for an actual implementation of the snippets below and how they can be utilized.

Overall Code

A quick start snippet will look something like this in your app's willFinishLaunchWithOptions:

import MoveSDK

func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
 
    MoveSDK.shared.setAuthStateUpdateListener { ... }
    MoveSDK.shared.setSDKStateListener { ... }
    MoveSDK.shared.setTripStateListener { ... }
    MoveSDK.shared.setServiceFailureListener { ... }
    MoveSDK.shared.setServiceWarningListener { ... }

    MoveSDK.shared.initialize(launchOptions: launchOptions)
}

Setup

Users will be need to be authenticated. This authentication will persist until shutdown is called. It will persist over the termination of the app. The configuration to enable functionality is passed here. startAutomaticDetection will start the services. This too will be persisted and services will be automatically started when launching the app from the background.

Let us break down the overall code block into the following:

SDK Authorization

The MoveAuth will look something like this:

An auth state listener must be implemented to fetch a new user token if necessary.

Authentication Expiry

SDK Configuration

MoveConfig allows host apps to configure which of the licensed Move services should be enabled. It could be based on each user preference or set from a remote server.

The MoveConfig will look something like this:

SDK State

The host app is expected to set its SDKStateListener before initializing the SDK to intercept the MoveSDKState changes caused by calling the initialize API.

The provided block could then start the SDK when MoveSDKState is ready or handle errors if occurred. The provided block could look something like this:

SDK Initialization

Warnings and Errors

When services are not running properly because they are missing permissions or are not authorized on the backend, warnings or errors will be reported in the corresponding listeners.

Last updated