An App Is Born: Thoughts On Developing An Apple TV App
Several years ago, my wife (artist Kelly Dietrich) experimented with creating animations based on her digital art. At the time, the technology needed to pull that off was in a very early stage. Full-screen, high-definition video was difficult to produce, and also difficult to deliver due to bandwidth limitations and costs.
The best that Kelly could do was to create a video podcast of her animations, which turned out to be rather popular. However, the goal of making her animations available on large screens was shelved.
Experimenting With Apple TV
Over the holiday break, I experimented with Swift to see what it would take to develop an Apple TV app. I had read that, if you know how to develop apps for iOS, then developing apps for tvOS isn't all that difficult. Sure enough, in no time at all, I had developed a couple of prototype Apple TV apps. I developed them in Swift, using familiar APIs such as UIKit, AVKit, and AVFoundation.
I then decided to explore TVML to see what it is like to develop an app using it. TVML (short for "TV Markup Language") is a form of XML that describes how elements are displayed in an Apple TV app. Apple provides a number of TVML templates that you can use to build an App.
When developing apps with TVML, part of the app runs on the Apple TV, and it loads an initial "boot" TVML template from a server. The rest of the app (including its content) loads when it is needed, in much the same way that you might link multiple pages and images when developing a Web site. In fact, this client-server development model is similar in many ways to Web development.
An Apple TV App Is Born
After experimenting with TVML, I realized that I could use it to develop an app for Kelly, and finally give her a way to make her animations widely availably.
Over the course of a weekend, I developed the app, Kelly created the UI components to go with it (icon, images, etc), and it was ready to go.
On Monday morning, I submitted the app to Apple for approval.
By Friday afternoon, the app was approved and in the Apple TV App store!
Thoughts And Observations
Here are some of my thoughts and observations on developing the Apple TV app...
While developing for the Apple TV is, in many ways, similar to developing for iOS devices, there are some big differences. The obvious difference is the size of the canvas that you have to work with. On iOS devices, space is extremely limited. On a TV, it seems like you have more than enough space to work with - and it's easy to think that you need to fill that space. The challenge is to avoid that temptation, and instead, keep the app as simple as possible.
Another difference is in how users interact with the device, and, ultimately, your app. The Siri remote is the primary input device, and as far as standard apps (meaning non-game apps) go, it really only gives users a way to navigate between options (buttons, etc) and make a selection. When you're designing an Apple TV app, you have to take that into consideration. So, again, keep the app simple. Limit the number of options that are available, and make navigation as easy as possible.
For apps that are content-oriented (and I suspect that most Apple TV apps will be), the speed and reliability of the content delivery is absolutely crucial. For Kelly's app, we have all of the videos and imagery hosted using Amazon S3.
TVML is a good choice for developing simple, content-oriented apps. While the TVML templates that Apple provides are limited, they are easy to use and reliable - and require very little coding. You really begin to see the power of TVML when you dynamically generate TVML templates.
Another benefit of TVML is that once your app has been approved by Apple and listed in the App Store, it's unlikely that you'll need to resubmit it. Content-related changes are easy to make, and any workflow or logic changes can typically be handled by adjusting the hosted TVML templates. So unless the app's icon or top-shelf image needs to be changed, there's no need to resubmit it to Apple.
I really enjoyed developing this first Apple TV app. So much so, in fact, that I am considering specializing in this area.
If you want to check out Kelly's app, search for "Mandala Meditations" on the Apple TV App Store. A few screenshots are included below.