iOS SDK

MGA SDK for iOS is library for iOS providing a powerful high-level webview abstractions to interact with the IMGA web app.

Installation

IMGA SDK supports multiple methods for installing the library in a project.

Installation with CocoaPods

To integrate IMGA SDK into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'IMGASDK', :git => 'git@github.com:IMGARENA/front-row-seat-ios-cocoapod.git', :tag => 'v0.8'

Installation with SPM

To integrate IMGA SDK into your Swift project using SPM, specify it in your Package.swift

dependencies: [
    .package(url: "https://github.com/IMGARENA/front-row-seat-ios-cocoapod", from: "0.8.0")
],

Requirements

IMGA SDK requires iOS 14 and xCode 14.1

Usage

Creating an instance

 let imga = IMGASDK(logLevel: .debug)

Initialiasing de SDK (launch)

Launching the SDK with raw data

let eventCentreData:IMGAData = [
            "operator": "[OPERATOR-NAME]",
            "sport": "ufc",
            "targetModule": "full",
            "eventId": "667",
            "language": "en",
            "version": "5.x",
            "targetElementSelector": "#img-arena-event-centre",
            "options":["videoPlaybackEnabled": "true"]
        ]
//Launch with the event centre data
try? imga.launch(with: eventCentreData) { imgaView in
    if let newView = imgaView {
        //Do something with the imgaView
    }
}

Launching the SDK with IMGAEventCentreParams object

let initialContex:IMGAData = [
          view: "Fight",
          fightId: "fightID"]
        
let eventCentreDataParams = IMGAEventCentreParams(operatorName: "operatorName",
                                         sport: "sport",
                                         version: "version",
                                         eventId: "eventId",
                                         language: "language",
                                         theme: "theme",
                                         targetModule: "targetModule",
                                         initialContext: initialContex,
                                         options: nil,
                                         targetElementSelector: "targetElementSelector")

//Launch with the event centre data
try? imga.launch(with: eventCentreDataParams) { imgaView in
    if let newView = imgaView {
        //Do something with the imgaView
    }
}

Launching the SDK and append the IMGA View to a container

let initialContex:IMGAData = [
view: "Fight",
fightId: "fightID"]

let eventCentreDataParams = IMGAEventCentreParams(operatorName: "operatorName",
                        sport: "sport",
                        version: "version",
                        eventId: "eventId",
                        language: "language",
                        theme: "theme",
                        targetModule: "targetModule",
                        initialContext: initialContex,
                        options: nil,
                        targetElementSelector: "targetElementSelector")

//Container where to add the IMGA view
let myContainer = UIView()

//Launch with the event centre data
try? imga.launch(andAddTo: myContainer, with: eventTest1)

Subscribing to status changes

//Instance the sdk
let imga = IMGASDK(logLevel: .debug)
//Subscribe to the sdk status changes
imga.onStatusChange = {status, error in
    print("Status:\(status)")
    if let e = error {
        print("Error on status:\(e)")
    }
}

Subscribing to new messages

There are several types of messages/topics

  • CONTEXT_UPDATE: Topic for covering general UI state updates, for example navigation changes or the user selecting a player in the UI.

  • HANDSHAKE_FAILED: Topic to signify the handshake between Event Centre and your site failed to complete.

//Instance the sdk
let imga = IMGASDK(logLevel: .debug)
imga.onNewMessage = {name, message, error in
    print("New Message:\(name)-\(message)")
    if let e = error {
        print("Error on message:\(e.description)")
    }
}

Stop the sdk

//Instance the sdk
let imga = IMGASDK(logLevel: .debug)
//Stop the instance
imga.stop()

Video Streaming Authentication

Please reference the doc here.

Credits

IMGA SDK is owned and maintained by the IMGA Development team.

License

IMG Media Limited

Last updated

Was this helpful?