Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bring your apps to the big screen 📺

Bring your apps to the big screen 📺

An introduction to building tvOS apps, given at Swift Summit SF 2015.

Boris Bügling

October 30, 2015
Tweet

More Decks by Boris Bügling

Other Decks in Programming

Transcript

  1. “‘I’d like to create an integrated television set that is

    completely easy to use,’ he told me. [...] ‘It will have the simplest user interface you could imagine. I finally cracked it.’”
  2. NIBS ! If you feel like copy-pasting stuff between NIBs

    ! https://github.com/neonichu/DOOM-IOS2/tree/tvos
  3. STORAGE LIMITATIONS ▸ app is limited to 200 MB ▸

    500 KB of persistent storage (NSUserDefaults) ▸ Use iCloud ▸ Use On-Demand resources
  4. FOCUS ENGINE UIButton().canBecomeFocused() // == true or false UIButton().focused //

    == true or false UIScreen.mainScreen().focusedView // nil or the view in focus
  5. REACTING TO FOCUS CHANGES func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator)

    context.nextFocusedView // the view which gets the focus context.previouslyFocusedView // the view which had the focus func addCoordinatedAnimations(_ animations: (() -> Void)?, completion completion: (() -> Void)?)
  6. NSNotificationCenter.defaultCenter().addObserverForName(GCControllerDidConnectNotification, object: nil, queue: nil) { (note) in if let

    controller = note.object as? GCController { if let microPad = controller.microGamepad { microPad.dpad.valueChangedHandler = { (_, x, y) in if let paddle = self.childNodeWithName("Paddle") { paddle.position.y += CGFloat(y) } } } } }
  7. SIRI REMOTE IS ALSO A GAME CONTROLLER ▸ Profile GCMicroGamepad

    ▸ Touch surface is a dpad ▸ Two action buttons ▸ Motion (GCMotion) ▸ Seems not to work in the simulator
  8. 2.27 If your app’s core functionality doesn’t work with the

    Siri remote it will be rejected. The app may, however, provide enhanced functionality in connection with a game controller or other peripheral
  9. A maximum of two game controllers (plus one remote) can

    be connected to an Apple TV at any given time.
  10. CONCLUSION ▸ tvOS works very well ▸ If you know

    UIKit, it's easy to start ▸ Think about interaction
  11. RESOURCES ▸ https://developer.apple.com/tvos/human-interface-guidelines/ ▸ "Ich glotz TV", @avbelow, Macoun 2015

    ▸ https://github.com/contentful/tvful ▸ http://nerds.airbnb.com/tvos-focus-engine/ ▸ https://eternalstorms.wordpress.com/2015/10/05/pair-the-apple- tv-developer-kit-siri-remote-with-xcodes-simulator/