<!--
{
  "availability" : [
    "tvOS: 9.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "TVMLKit",
  "identifier" : "/documentation/TVMLKit",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "TVMLKit"
    ],
    "preciseIdentifier" : "TVMLKit"
  },
  "title" : "TVMLKit"
}
-->

# TVMLKit

Create client-server apps by incorporating JavaScript and TVML files in your binary app.

## Overview

The TVMLKit framework enables you to evaluate TVMLKit JS and TVML files from within your tvOS app. You can create TVML elements, styles, views, and view controllers through the JavaScript environment.

## Topics

### JavaScript Environment

[Implementing a Hybrid TV App with TVMLKit](/documentation/TVMLKit/implementing-a-hybrid-tv-app-with-tvmlkit)

Display content options with document view controllers and fetch and populate content with TVMLKit JS.

[`TVApplicationController`](/documentation/TVMLKit/TVApplicationController)

An object that bridges the UI, navigation stack, storage, and event handling from JavaScript.

[`TVApplicationControllerContext`](/documentation/TVMLKit/TVApplicationControllerContext)

Launch information provided to the TV application controller.

### Views and View Controllers

[`TVViewElement`](/documentation/TVMLKit/TVViewElement)

A representation of a read-only DOM node.

[`TVInterfaceCreating`](/documentation/TVMLKit/TVInterfaceCreating)

A protocol that defines methods used to create views and view controllers.

[`TVInterfaceFactory`](/documentation/TVMLKit/TVInterfaceFactory)

A factory for the creation of views and view controllers.

[`TVBrowserViewController`](/documentation/TVMLKit/TVBrowserViewController)

A view controller that presents content in a browsable, full-screen format.

[`TVDocumentViewController`](/documentation/TVMLKit/TVDocumentViewController)

A view controller that represents a TVMLKit document.

### Custom Elements

[`TVElementFactory`](/documentation/TVMLKit/TVElementFactory)

An object used to register new elements to extend the Apple TV Markup Language (TVML).

[`TVImageElement`](/documentation/TVMLKit/TVImageElement)

A representation of a read-only DOM node containing the attributes that describe an image element.

[`TVTextElement`](/documentation/TVMLKit/TVTextElement)

The textual content for the DOM element.

[Creating TVML Elements](/documentation/TVMLKit/creating-tvml-elements)

Avoid rewriting complex and often used elements by creating a simplified custom element.

### Custom Styles

[`TVViewElementStyle`](/documentation/TVMLKit/TVViewElementStyle)

A style applied to a view element.

[`TVStyleFactory`](/documentation/TVMLKit/TVStyleFactory)

An object used to register custom style properties.

[`TVColor`](/documentation/TVMLKit/TVColor)

The color data used by styles.

### Custom Player

[`TVMediaItem`](/documentation/TVMLKit/TVMediaItem)

A single audio or video item associated with the Apple TV JavaScript player.

[`TVPlaylist`](/documentation/TVMLKit/TVPlaylist)

A collection of media items associated with the Apple TV JavaScript player.

[`TVPlayer`](/documentation/TVMLKit/TVPlayer)

A customizable native media player used to control playback from the JavaScript player used in an Apple TV client-server app.

### Errors

[`TVMLKitErrorDomain`](/documentation/TVMLKit/TVMLKitErrorDomain)

An error occurred in TVMLKit.

[`TVMLKitError`](/documentation/TVMLKit/TVMLKitError)

Error codes for the TVMLKit error domain.

[`TVDocumentError`](/documentation/TVMLKit/TVDocumentError-swift.struct)

### Reference

[TVMLKit Enumerations](/documentation/TVMLKit/tvmlkit-enumerations)

[TVMLKit Constants](/documentation/TVMLKit/tvmlkit-constants)

This document defines constants in the TVMLKit framework that are not associated with a particular class.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)