Skip to content

iOS Quick Start

Installation

Add the Squad Sports SDK via Swift Package Manager:

File > Add Package Dependencies...
URL: https://github.com/withyoursquad/squad-sports-ios.git
Version: 1.6.0

Or in Package.swift:

dependencies: [
    .package(url: "https://github.com/withyoursquad/squad-sports-ios.git", from: "1.6.0"),
]

Basic Integration

import UIKit
import SquadSportsSDK

class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?

    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        window = UIWindow(frame: UIScreen.main.bounds)

        Task {
            try await SquadSDK.setup(
                partnerId: "acme-sports",
                apiKey: "sqk_live_...",
                pushToken: deviceToken
            )

            await MainActor.run {
                let vc = SquadSDK.shared.createExperienceViewController()
                window?.rootViewController = vc
                window?.makeKeyAndVisible()
            }
        }

        return true
    }
}

With Partner Auth (No Login Screen)

try await SquadSDK.setup(
    partnerId: "acme-sports",
    apiKey: "sqk_live_...",
    userData: PartnerUserData(
        email: currentUser.email,
        displayName: currentUser.name,
        externalUserId: currentUser.id
    )
)

With Ticketmaster SSO

try await SquadSDK.setup(
    partnerId: "acme-sports",
    apiKey: "sqk_live_...",
    ssoToken: tmAccessToken,
    ssoProvider: .ticketmaster
)

Embedding in a Tab

let squadVC = SquadSDK.shared.createExperienceViewController()
tabBarController.viewControllers = [
    homeVC,
    squadVC,  // Squad as a tab
    settingsVC,
]

SwiftUI

import SwiftUI
import SquadSportsSDK

struct ContentView: View {
    var body: some View {
        SquadExperienceView()
            .task {
                try? await SquadSDK.setup(
                    partnerId: "acme-sports",
                    apiKey: "sqk_live_..."
                )
            }
    }
}

Requirements

  • iOS 16.0+
  • Xcode 15+
  • Swift 5.9+