Three distinct types of tvOS apps?

I'm gathering that there are three distinct types of apps supported by tvOS. The first type is TVMLKit-based (https://developer.apple.com/library/prerelease/tvos/samplecode/TVMLCatalog/Introduction/Intro.html & https://developer.apple.com/library/prerelease/tvos/documentation/General/Conceptual/AppleTV_PG/YourFirstAppleTVApp.html). The second is UIKit-based (https://developer.apple.com/library/prerelease/tvos/samplecode/UICatalogFortvOS/Introduction/Intro.html). And, the third is SpritKit-based (https://developer.apple.com/library/prerelease/tvos/samplecode/DemoBots/Introduction/Intro.html).


And, I'm gathering that the UIKit and SpriteKit apps can be written entirely in Swift while the TVMLKit apps are primarily JavaScript apps. Am I understanding the documention correctly?

Accepted Reply

Also I'd wouldn't really call a "SpriteKit app" a unique category of app per se. TVML notwithstanding, apps on tvOS are developed just like on iOS. They can use UIKit (most do), SpriteKit, SceneKit, Metal, AVKit, OpenAL, AudioToolbox, StoreKit, and/or any of the few dozen different frameworks provided. Just like on iOS, they can be written in Objective-C, Swift, C, C++, etc.

Replies

A followup question would be are there features in TVMLKit that are unavailable in UIKit. I'm trying to understand whether we can build a complete app for tvOS entirely in Swift. So far, it looks like it to me.

Have you accounted for the new definition of 'Universal' app that was introduced today?

You can chose to build an app using TVMLKit which uses javascript or UIKit. SpriteKit and UIKit can both be used at the same time in a binary app.

"Now for developers, they can create universal apps. So, a single purchase gives you the app on your iPhone, your iPad, and your Apple TV." is what I remember hearing today.


My guess is that refers to any apps built with SpriteKit or UIKit and targeted to tvOS.

Good info, thanks.

Yes - you can build an app entirely in Swift or Objective-C. TVML offers a template based approach for rapid development of media centric applications.

This refers to the notion of "Universal Purchase", whereby the same Bundle and App ID are used for both tvOS and iOS platforms, and therefore the purchase or download of an app on either platform makes it available on both. More information on Universal Purchase will be made available soon.

Also I'd wouldn't really call a "SpriteKit app" a unique category of app per se. TVML notwithstanding, apps on tvOS are developed just like on iOS. They can use UIKit (most do), SpriteKit, SceneKit, Metal, AVKit, OpenAL, AudioToolbox, StoreKit, and/or any of the few dozen different frameworks provided. Just like on iOS, they can be written in Objective-C, Swift, C, C++, etc.

I would be curious how In App Purchases play into this. I think the tv forces persistent storage using the Cloud, but most apps have restore buttons.

So far, I haven't found out if I could mix and match UIKit and TVMLKit within one app. Do the basics in TVML, do something more custom in UIKit. How would I piece that together, if possible at all?