Developing for Apple TV: First thoughts

There is no local storage. Get ready to master iCloud. There is no persistent local storage for apps on Apple TV. This means that every app developed for the new Apple TV must be able to store data in iCloud and retrieve it in a way that provides a great customer experience. Plan your app’s full lifetime from launch, to pause, to resume, to shut-down.

Be parsimonious. You must download app resources as on-demand. The maximum AppleTV app is limited to 200 MB

The app sources feel just like iOS apps with a few quirks. Add app icons (how iOS 7!), launch images, and top shelf images. The icon uses front, middle, back variations.

The simulator is bigWay to sell more 5K monitors, Apple. I am very glad my mac has a dual-head display.

Think multi-user. An Apple TV app is intrinsically something you want to support for many people at once.

Remotes are game controllers. Each Apple TV Remote is a GCController, supporting both GCMotion and GCMicrogamepad input, so I’m thinking you can wiimote these babies. The touch pad on each remote offers analog input data, can be used either in portrait or landscape, can be tapped (it’s BUTTON A, people). Also available is the play/pause button (BUTTON X), and there’s a pause/resume handler for the menu button.

The simulated remote feels awfulMaybe it’s just because I’m really bad at manual coordination but using this with a mouse is pretty bad. You use standard UIGestureRecognizers to detect most input as far as I can tell. There’s a new UIPress class for remote buttons and I assume like UITouch, each press has identifiers to map its lifetime.

Siri input is supported according to the docs Apple TV does not have a mouse that allows users to directly select and interact with an app. Nor are users able to use gestures and touch to interact with an app. Instead, users use the new Siri Remote or a game controller to move around the screen but I haven’t figured out yet what this actually means.

More as I get some time to kick the wheels. I have a Swift book to wrap up that has priority.



  • How exactly do you simulate the remote? I have an apple mouse and of course the touchpad on my macbook pro. Ive tried adding UIGestureRecoginizers to my skview, but not seeing any input. Any help much appreciated! 🙂

    • Hover your cursor over the remote. Press option on the keyboard. Move the remote.

      • Wow, you are fast! You know, just as I left the comment I realized my problem. I though that I would be using the mouse or touchpad to simulate, but quickly realized there was a virtual remote…. :(. Thanks again for you help.

  • Hi Erica, just started to play with my new Simulator-Toy, but calling “GCController.controllers().count” the result is 0, why? My remote simulator is opened. Thanks.

  • The remote seems easier to control using the touchpad, at least in my experience.