Apple TV & JW Player

AppleTV.svg

This week, Apple started taking pre-orders for the new Apple TV. Previously, the devices had only been available to developers.

Shortly after the Apple TV announcement in September, I received my developer device from Apple. Like most people, I have been very impressed with the device and development environment, but have found some crucial functionality missing from the new tvOS. But more on that in a minute.

After years in the market, Apple is finally taking Apple TV seriously–it is no longer a “hobby” as Steve Jobs famously called the first version of the device. The hardware is more powerful, the remote control includes new touch and gaming capabilities, and Siri has been added to make content discover as easy as saying, “Find movies starring Bradley Cooper.”

Most importantly for JW Player, however, Apple has created tvOS, a modified version of iOS. In previous generations of Apple TV, app development was by invitation and generally only to large services like Netflix and Disney. With the new Apple TV and tvOS, any developer is able to create Apple TV apps in XCode and make them available in the App Store.

First of all some technical details that we think worth mentioning:

  • The most exciting news is tvOS is based on iOS, which for developers mean there is very little additional education required. Any developer who has iOS experience can jump right in and start developing tvOS apps.
  • TVML (TV Markup Language) is a new markup language introduced in tvOS. It allows developers and not-so-technical folks to create Apple TV application screens using highly customizable templates.
  • In addition to traditional apps, tvOS also supports an interesting client-server app architecture that leverages web platform technologies. A native client app is still installed on the Apple TV, but it’s basically just a shell to host a JavaScript “launcher” file, which fetches additional JavaScript, TVML and other data over HTTP to build the screens that are presented to the user. This is really powerful because it enables you to update your app’s internals at any time without requiring a refresh of your app package in the App Store and a software update on the user’s Apple TV.
  • Televisions don’t have touch user interfaces, so Apple has introduced a new type of interaction in tvOS called Focus. Focus represents one element on the screen that is, well…in focus. In other words, as the user swipes on the touch area of the new Apple TV remote, focus jumps from one element to another, allowing the user to highlight an element on screen and select it.
  • As I already mentioned, the new Apple TV has Siri, and navigation using Siri is even more powerful than navigation using Focus. Apple recently announced that all Apple TV applications must support Siri to get approved for the App Store (perhaps bad news for people like me whose Russian accents seem to confuse Siri).

Are there any iOS features we won’t see in Apple TV? Absolutely. Some things a developer must keep in mind in iOS development are irrelevant for tvOS:

  • There is no portrait to landscape rotation handling (you are not planning to rotate your TV, are you?)
  • There is only one screen size, which saves us a lot of time. All iOS developers know the pain of tweaking autolayout constraints for different iPhone and iPad screen sizes.

Now, for what’s missing. An important omission for us here at JW Player: WebKit. We put a lot of time and effort into writing reusable code. Not just “reusable” in the usual sense, but reusable in cross-platform manner. There are big chunks of code in our iOS and Android SDKs we adopted from JW Player for web. For instance, our iOS SDK uses the same parsing algorithms for closed captions and VAST advertisement tags as our HTML5 JW Player. We also reuse the same CSS skinning model, which helps our customers implement a consistent look and feel on both web and mobile platforms. The absence of WebKit makes it impossible for us to reuse our HTML and CSS code on tvOS. But there is so much other great stuff in tvOS, we can work around the WebKit limitation.

We’re very excited about the new Apple TV. It’s more open development model will allow us to create a solution that enables our JW Platform customers to get their content on Apple TV quickly and affordably, with little to no app coding required. We’re refining our product plans for Apple TV, so stay tuned for more details!

Max Mikheyenko, Lead Software Engineer, JW Player