tvOS SDK: An iOS Developer’s Initial Impressions

Check out what an iOS developer thinks of Apple’s newly released tvOS SDK – including details on development tools, TVML, the touch engine, and more! By Chris Wagner.

Leave a rating/review
Save for later
Share
You are currently viewing page 3 of 3 of this article. Click here to view the first page.

Limitations

Perhaps two of the most puzzling aspects of tvOS are the limitations imposed on local storage and app size.

Limitation: Local Storage

Starting with local storage… there is none! If your app needs to persist any user data you must do so using iCloud, CloudKit, or your own back-end service. Any data that you store on device is not guaranteed to be available the next time your app is opened. Furthermore if you want to synchronize data across devices you will need to store it somewhere else.

All your data is belong to us!

This is important to keep in mind as you design the architecture of your tvOS apps. Here are some rules of thumb:

  • If your data storage requirements are less than 1MB, iCloud’s key-value store is a valid option; just remember that iCloud KVS access is strictly limited to the owner and cannot be shared to other users.
  • If you need to share events or data with other users, CloudKit is a good option.
  • If you are making a cross-platform app or have specialized needs, you may wish to use your own back-end service.

Limitation: App Size

Another limitation is that your app size cannot exceed 200MB.

Flip Table

But before you flip your table, think back to WWDC 2015 and the “On-Demand Resources” APIs that were introduced – it’s almost as if Apple planned this! :]

These APIs provide the ability to reduce the initial installation size of your app by downloading resources on demand. Developers can tag assets in Xcode and the App Store will automatically split tagged content into downloadable bundles upon submission. When the user needs the tagged resources you can request them to be downloaded to the device. You would ideally anticipate the content needs and download them before the user needs them so they do not notice the load times.

A simple example of this approach is a game that has 10 levels. You may opt to include only the first 2 levels when the app is installed. Once the user finishes level 1 you send a request to download the assets required for level 3 so that when the user finishes level 2, level 3 is ready to go. You’d then continue to do this as the user progresses through the game.

While this may seem annoying and painful as a developer, you can think of the user benefit. Rather than waiting for your 1GB game to download, they can perhaps download 100MB and start playing right away. A possible unfortunate outcome is that the user has a poor Internet connection and prefers to queue up downloads overnight. Downloading the next 900MB of your game as they play through may result in a terrible experience. Unfortunately as tvOS developers our hands are tied in this scenario.

Where To Go From Here?

There is a lot that can and will be done on tvOS! So prepare your couch; if you don’t have a designated “groove”, you may before year’s end :]

And remember: this is only the beginning. iOS didn’t even have cut, copy, and paste until iOS 3.0!

I believe that this platform can truly reinvent the way we use our TVs. Aside from the obvious gaming and content viewing use-cases, there are many areas for developers to innovate.

Here are some resources to learn more about tvOS:

  • tvOS Documentation: Apple’s official tvOS documentation; a bit sparse at the moment but I’m sure more is coming soon.
  • RWDevCon: If you’d like to learn about tvOS, you should come to our upcoming conference; we’ll be having a tons of hands-on tvOS tutorials there and will get you up-to-speed.

What do you think of the Apple TV and tvOS? Please join us in the forum discussion below!

Chris Wagner

Contributors

Chris Wagner

Author

Over 300 content creators. Join our team.