Skip to content

iOS Ignite/Ticketmaster SDK, Tickets framework demo integration

License

Notifications You must be signed in to change notification settings

ticketmaster/iOS-TicketsDemoApp

Repository files navigation

iOS Tickets SDK Application Integration Demo

This is an example integration of the Ticketmaster Ignite SDK, Tickets framework.

Change Log

Demo App Screenshots

Main Menu Login Events Listing Page Tickets Listing Page

What's New

SwiftUI Integration - Complete SwiftUI support with 4 working examples:

  • TicketsView.swift - UIViewControllerRepresentable wrapper
  • TicketsViewExamples.swift - Modal, full screen, push, and tab view examples
  • SwiftUIIntegrationGuide.md - Comprehensive integration documentation

Code Quality Improvements - Refactored for better clarity and maintainability:

  • Extracted duplicate code into reusable helper methods
  • Replaced magic strings with typed constants
  • Improved code organization and readability

Getting Started

  1. Open TicketsSDKDemoIntegration.xcodeproj using Swift 5.9+ or Swift 6.0.3+ (Xcode 16.2+ or Xcode 26+) for development and iOS 17.0+ as your release target
    1. This will also download the required .xcframeworks using Swift Package Manager
  2. In Configuration.swift, replace the apiKey value with your own API key from https://developer.ticketmaster.com/explore/
  3. Update TicketsSDKDemoIntegration target's Signing & Capabilities with your own Apple Developer certificate from https://developer.apple.com/
  4. Build and Run TicketsSDKDemoIntegration target

Example Code

Configuration

  1. Update your API key and branding colors in Configuration.Swift

  2. Authentication SDK is configured using settings from Configuration.Swift

  3. Tickets SDK inherits it's configuration from Authentication SDK

A basic example of this is provided in MainMenuVC+Config.swift

Presentation

UIKit Integration

There are 3 different ways to present the Tickets SDK in UIKit apps:

  • Push on Navigation stack (requires a UINavigationController in your app) - Recommended
  • Modal presentation on top of your own UIViewController (easiest to integrate) - Recommended
  • Embedded presentation within your own UIViewController (advanced use cases)

Basic examples of all 3 UIKit methods are provided in MainMenuVC+TableViewDelegate.swift

SwiftUI Integration

There are 4 complete SwiftUI integration examples:

  • SwiftUI Basic (Push) - Push TicketsView onto NavigationView stack
  • SwiftUI Modal - Present with .sheet modifier
  • SwiftUI Full Screen - Present with .fullScreenCover modifier
  • SwiftUI Tab View - Embed in TabView with multiple tabs

All SwiftUI examples demonstrate proper bridging from UIKit using UIHostingController and include Close buttons with dismiss functionality.

Examples are provided in:

  • TicketsView.swift - UIViewControllerRepresentable wrapper
  • TicketsViewExamples.swift - Four complete integration examples
  • SwiftUIIntegrationGuide.md - Full documentation with code examples
  • MainMenuVC+TableViewDelegate.swift - UIKit menu showing how to present SwiftUI views

Recommendation

UIKit apps: Use TMTicketsViewController with push or modal presentation

SwiftUI apps: Use TicketsView wrapper with any of the 4 presentation patterns

Hybrid apps: Use UIHostingController to bridge between UIKit and SwiftUI (see examples in MainMenuVC+TableViewDelegate.swift)

Authentication

While not required, your application may want to control login-related processes directly.

  • Login
  • Member Info
  • Logout

Tickets SDK handles Login/Logout on it's own, so there is no need for you to manually call any of these methods.

However, basic examples of calling Login, MemberInfo, or Logout have been provided in MainMenuVC+TableViewDelegate.

Information

While not required, your application may want to be informed of operations and use behavior with Authentication and Tickets SDKs.

This information is provided via delegate protocols, basic examples are provided.

  • TMTicketsOrderDelegate: optional delegate to be informed of non-analytics User-actions
    • see: MainMenuVC+OrderDelegate.swift
  • TMTicketsAnalyticsDelegate: optional delegate to be informed of User behavior
    • see: MainMenuVC+AnalyticsDelegate.swift
  • TMAuthenticationDelegate: optional delegate to recieve login state change information
    • see: MainMenuVC+AuthDelegate.swift

Custom Modules

Custom Modules

While not required, your application may want to use Prebuilt Modules or even create your Custom Modules to display underneath the Tickets on the Tickets Listing page.

  • TMTicketsModuleDelegate: optional delegate to implement prebuilt and custom TMTicketsModule to be rendered on the Tickets listing page
    • see: MainMenuVC+ModuleDelegate.swift

Additional Documentation

CLAUDE.md - Project documentation for AI coding assistants

  • Architecture overview and key implementation details
  • SDK configuration flow and presentation patterns
  • SwiftUI integration summary and bridging patterns

SwiftUIIntegrationGuide.md - Complete SwiftUI integration guide

  • Basic to advanced usage patterns
  • UIKit to SwiftUI bridging with UIHostingController
  • Prerequisites and SDK configuration for SwiftUI apps
  • Four working examples with code snippets

About

iOS Ignite/Ticketmaster SDK, Tickets framework demo integration

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages