Skip to main content

Panel Integration

Overview

This section walks you through integrating panels into your Maestro tvOS SDK implementation. Panels provide interactive modules that exist outside the main video player interface.

Integration Steps

MaestroPanel is a SwiftUI component that provides a panel view for you to add to your app's view hierarchy. The panel aggregates all panel components configured on your specific maestro.io page.

1. Initialize the MaestroEventDelegate interface

Before rendering the Maestro panel, you must implement the MaestroEventDelegate protocol. This protocol defines a set of methods that your application must implement to enable seamless communication between the Maestro tvOS SDK and your application.

let eventID = "your-event-id"
let delegate = MaestroEventDelegate() // Your implementation of MaestroEventDelegate

await MaestroManager.shared.userDidStartWatchingEvent(
eventID: eventID,
delegate: delegate,
hideBetsPanel: false,
hideBetsWagers: false,
disableBetsOverlays: false,
disableFantasyOverlays: false
)

2. Add MaestroPanel to your View Hierarchy

To display the Maestro panel in your tvOS application, add the MaestroPanel SwiftUI view to your view hierarchy.

import MaestroKit
import SwiftUI

struct ContentView: View {
var body: some View {
HStack {
// Your video player view
VideoPlayerView()

// Add the Maestro panel
MaestroPanel(width: 568)
}
}
}

MaestroPanel Component

MaestroPanel is a struct that provides a panel view for you to add to your app's view hierarchy.

struct MaestroPanel: View

Parameters

ParameterTypeDescription
widthCGFloat?An optional CGFloat defining the width of the panel.

Sample Usage

struct ContentView: View {
var body: some View {
MaestroPanel(
width: 568
)
}
}

Best Practices

  • Clean Up Your Events: When the user stops watching an event, make sure to clean up any resources using userDidStopWatchingEvent().
  • Configure Panels: Be sure to configure your panels on maestro.io before integrating them into your app.
  • Responsive Layout: Consider different screen sizes and adjust panel width accordingly for optimal viewing experience.