An experiment with client-server apps on Apple tvOS

I've spent a little time digging into the SDK for the new Apple TV - tvOS - specifically using the client-server app architecture.

In about an hour I got a local Node.js server running to serve templates and JavaScript files to a native tvOS app...

Yes, client-server apps in tvOS is heavily based on web technologies. The native app is pretty much just a thin shell.

You can make it check if your server is responding, persist login tokens etc. but the basic concept is that you serve the main application state machine, and load documents remotely from your server!

It's quite refreshing to just point it at a URL, and be able to control everything from there.

Instead of HTML, there's a new XML based template language called TVML, where you declaratively build your markup - just like you'd expect from any kind of web page.

The app doesn't do anything :) - but looks like this:
tvOS Rating Template

The remote is actually quite cool. You hold down the Option/Alt key and hover the touch area to simulate swipes. Works very well, and app icons on the home screen produce a nice parallax effect when "hovering".

The code is available on Github  💻

TV networks

I hope TV networks will jump on this train and get going as fast as possible. Personally I hope to replace my cable subscription with on-demand services, but to be able to follow the english Premier League, there's still some work to do.

Sky Sports already have daily, weekly and monthly passes that I can access using services such as Unlocator - now they just need to make it available on the Apple TV.

In a perfect world, the football clubs would ditch the TV networks and provide their own services to distribute the games directly to consumers in a variety of ways. But that probably won't happen for another 10 years.

Martin H. Normark

Product and UX Hacker. Web and iOS developer.

Subscribe to Martin Normark's Blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!