what’s new in tvos - design and development videos › ... › 206 › 206_whats_new_in_tv… ·...

235
© 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. App Frameworks #WWDC16 Session 206 What’s New in tvOS Hans Kim tvOS Engineer

Upload: others

Post on 05-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

© 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

App Frameworks #WWDC16

Session 206

What’s New in tvOS

Hans Kim tvOS Engineer

Page 2: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Welcome

Page 3: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

First WWDC for tvOSWelcome

Page 4: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Agenda

Page 5: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Agenda

tvOS Overview

Page 6: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Agenda

tvOS OverviewNew in tvOS 10

Page 7: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Agenda

tvOS OverviewNew in tvOS 10Diving in

Page 8: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

OverviewtvOS

Page 9: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 10: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 11: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 12: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 13: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 14: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 15: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 16: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Asset storage

Page 17: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Asset storagePublic and private database

Page 18: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Asset storagePublic and private databaseiCloud authentication

Page 19: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Asset storagePublic and private databaseiCloud authenticationCloudKit JS

Page 20: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 21: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 22: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Faster initial launch

Page 23: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Faster initial launchMinimize wait time

Page 24: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Faster initial launchMinimize wait timeLarger apps

Page 25: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

.app

Page 26: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Page 27: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Page 28: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Asset Pack

Asset Pack

Asset Pack

Page 29: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Asset Pack

Initial Install Tags

Asset Pack

Asset Pack

Page 30: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Asset Pack

≤ 2 GB

Initial Install Tags

Asset Pack

Asset Pack

Page 31: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Asset Pack

≤ 2 GB

Initial Install Tags

Asset Pack

Asset Pack

Page 32: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Asset Pack

≤ 2 GB

Initial Install Tags

Asset Pack

Asset Pack

Asset Pack

Asset Pack

Asset Pack

Page 33: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Asset Pack

≤ 2 GB

Initial Install Tags

Asset Pack

Asset Pack

Asset Pack

Asset Pack

Asset Pack

Prefetch Tags

Page 34: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Asset Pack

≤ 2 GB

Initial Install Tags

Asset Pack

Asset Pack

Asset Pack

Asset Pack

Asset Pack

≤ 4 GB

Prefetch Tags

Page 35: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Asset Pack

≤ 2 GB

Initial Install Tags

Asset Pack

Asset Pack

Asset Pack

Asset Pack

Asset Pack

≤ 4 GB

Prefetch Tags

Page 36: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Asset Pack

≤ 2 GB

Initial Install Tags

Asset Pack

Asset Pack

Asset Pack

Asset Pack

Asset Pack

≤ 4 GB

Prefetch Tags

Asset Pack

Asset Pack

Asset Pack

Asset Pack

Page 37: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

• Executable • Resources

≤ 200 MB

.app

Asset Pack

≤ 2 GB

Initial Install Tags

Asset Pack

Asset Pack

Asset Pack

Asset Pack

Asset Pack

≤ 4 GB

Prefetch Tags

Asset Pack

Asset Pack

Asset Pack

Asset Pack

≤ 20 GB

Page 38: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

App Bundle + Content

Page 39: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

App Bundle + Content

20.2 GB

Page 40: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 41: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 42: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 43: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 44: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 45: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 46: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 47: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 48: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 49: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 50: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 51: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 52: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 53: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 54: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 55: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Asset Catalog

Page 56: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Asset Catalog Parallax Previewer

Page 57: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Asset Catalog Parallax Previewer Parallax Exporter

Page 58: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 59: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 60: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 61: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 62: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

1408 x 792

Page 63: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

The Future of TV is Apps

Page 64: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 65: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 66: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 67: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 68: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 69: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 70: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 71: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 72: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 73: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Core Audio

Core Animation

SpriteKit MapKit

Open AL

Mobile Core Services

System Configuration

Javascript Core

Core Location

Audio Toolbox

Speech FrameworkStore Kit

Foundation Core Data

AVFoundation

FairPlay Streaming

Multipeer Connectivity

CoreText

OpenGL ES

Media Player Quartz Core

System Configuration Framework

Image IO Media Accessibility

Security Framework

UIKit

CloudKit

SceneKit

CoreFoundation

Page 74: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Core Audio

Core Animation

SpriteKit MapKit

Open AL

Mobile Core Services

System Configuration

Javascript Core

Core Location

Audio Toolbox

Speech FrameworkStore Kit

Foundation Core Data

AVFoundation

FairPlay Streaming

Multipeer Connectivity

CoreText

OpenGL ES

Media Player Quartz Core

System Configuration Framework

Image IO Media Accessibility

Security Framework

UIKit

CloudKit

SceneKit

CoreFoundation

Page 75: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 76: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 77: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 78: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 79: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 80: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 81: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 82: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Page 83: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Page 84: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Template-based

Page 85: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Template-basedJavascript

Page 86: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Template-basedJavascriptRapid development

Page 87: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Template-basedJavascriptRapid developmentPerformance-tuned

Page 88: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 89: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 90: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 91: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 92: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 93: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 94: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 95: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

New in tvOS 10

Page 96: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

NEW

Page 97: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

NEW

Page 98: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

NEW

Page 99: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 100: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 101: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 102: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 103: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

NEW

Page 104: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

1408 x 792

NEW

Page 105: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

NEW

Page 106: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

NEW

Page 107: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

NEW

Page 108: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UserNotification.framework

NEW

Page 109: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UserNotification.frameworkExternalAccessory.framework

NEW

Page 110: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

NEW

Page 111: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

NEW

Page 112: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Building Apps

Page 113: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UIKit

Page 114: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UIKit

Page 115: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UIKit

Full native development

Page 116: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UIKit

Full native developmentExisting iOS app

Page 117: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UIKit

Full native developmentExisting iOS app

Mastering UIKit on tvOS Presidio Wednesday 10:00AM

Focus Interaction on tvOS Mission Wednesday 4:00PM

Page 118: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Page 119: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Javascript and XML

Page 120: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Javascript and XML

TVMLKit

Page 121: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Javascript and XMLMix in UIKit

TVMLKit

Page 122: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

TVMLKit

Javascript and XMLMix in UIKit

Developing tvOS Apps Using TVMLKit: Part 1 Mission Wednesday 1:40PM

Developing tvOS Apps Using TVMLKit: Part 2 Mission Thursday 4:00PM

TVMLKit

Page 123: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Games

Page 124: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Games

Page 125: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Games

GameKit

What’s New in GameplayKit Pacific Heights Thursday 9:00AM

What’s New in SpriteKit Presidio Thursday 5:00PM

Page 126: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Diving In

Marshall Huss tvOS Engineer

Page 127: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Diving In

Remotes and devices

Page 128: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Diving In

Remotes and devicesNotifications

Page 129: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Diving In

Remotes and devicesNotificationsLight and dark appearance

Page 130: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Remotes and Devices

New Apple TV Remote app

Page 131: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Remotes and Devices

New Apple TV Remote appWorks just like the Siri Remote

Page 132: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Remotes and Devices

New Apple TV Remote appWorks just like the Siri RemoteIncludes game controller layout

Page 133: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

647 x 1150

Page 134: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

647 x 1150

Page 135: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

1176 x 660

Page 136: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

1176 x 660

Controlling Game Input for Apple TV Mission Wednesday 5:00PM

Page 137: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Notifications

Page 138: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Notifications

Page 139: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 140: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 141: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 142: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Remote Notifications

Use Apple Push Notification service to send remote notifications to your app

Page 143: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Remote Notifications

Use Apple Push Notification service to send remote notifications to your appSupported notification types

Page 144: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Remote Notifications

Use Apple Push Notification service to send remote notifications to your appSupported notification types• Badge

Page 145: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Remote Notifications

Use Apple Push Notification service to send remote notifications to your appSupported notification types• Badge• Content-available

Page 146: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Remote Notifications

Use Apple Push Notification service to send remote notifications to your appSupported notification types• Badge• Content-available

Notifications will not wake up your app in the background

Page 147: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

tvOS

When are they delivered?content-available

notif 1notif 3notif 2APNs

badge:

content-available: truebackground

Page 148: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

tvOS

When are they delivered?content-available

notif 1

1

notif 3notif 2APNs

badge:

content-available: truebackground

1

Page 149: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

tvOS

When are they delivered?content-available

notif 3 notif 2APNs

2

badge:

content-available: truebackground

2

Page 150: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

tvOS

When are they delivered?content-available

notif 3APNs

3

badge:

content-available: truebackground

3

Page 151: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

APNs

tvOS

When are they delivered?content-available

notif 3

3

foreground

Page 152: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

APNs

tvOS

When are they delivered?content-available

notif 3

foreground

Page 153: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UserNotification.framework NEW

Page 154: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UserNotification.framework

Use the new UserNotification.framework

NEW

Page 155: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UserNotification.framework

UIKit API for notifications prohibited on tvOS

Use the new UserNotification.framework

NEW

Page 156: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UserNotification.framework

UIKit API for notifications prohibited on tvOS

Use the new UserNotification.framework

NEW

Introduction to Notifications Pacific Heights Wednesday 9:00AM

Advanced Notifications Pacific Heights Wednesday 10:00AM

Page 157: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Appearance

Page 158: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 159: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 160: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 161: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Light / DarkOverview

System appearance is changed by the user

Page 162: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Light / DarkOverview

System appearance is changed by the userNew API on UITraitCollection

Page 163: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Light / DarkOverview

System appearance is changed by the userNew API on UITraitCollectionYou must opt-in for dark appearance

Page 164: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Light / DarkOverview

System appearance is changed by the userNew API on UITraitCollectionYou must opt-in for dark appearance• If you don’t, then your app will always use the light appearance

Page 165: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Adopting Appearance

Page 166: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Info.plist: user interface styleOpting In

Add new Info.plist key UIUserInterfaceStyle to opt in

Page 167: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Info.plist: user interface styleOpting In

Add new Info.plist key UIUserInterfaceStyle to opt in• “Light” resolves in always light option

Page 168: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Info.plist: user interface styleOpting In

Add new Info.plist key UIUserInterfaceStyle to opt in• “Light” resolves in always light option• “Dark” resolves in always dark option

Page 169: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Info.plist: user interface styleOpting In

Add new Info.plist key UIUserInterfaceStyle to opt in• “Light” resolves in always light option• “Dark” resolves in always dark option• “Automatic” resolves to the system setting

Page 170: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Info.plist: user interface styleOpting In

Add new Info.plist key UIUserInterfaceStyle to opt in• “Light” resolves in always light option• “Dark” resolves in always dark option• “Automatic” resolves to the system setting

New projects set to “Automatic” by default

Page 171: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

New property on UITraitCollection.userInterfaceStyle NEW

Page 172: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

New property on UITraitCollection.userInterfaceStyle

public enum UIUserInterfaceStyle : Int {

case unspecified

case light

case dark

}

NEW

Page 173: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Adopting Appearance

Developer tools support

Page 174: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Adopting Appearance

Developer tools supportStandard controls will automatically change their appearance

Page 175: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Adopting Appearance

Developer tools supportStandard controls will automatically change their appearanceAppearance proxy can customize based on UITraitCollection

Page 176: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Adopting Appearance

Developer tools supportStandard controls will automatically change their appearanceAppearance proxy can customize based on UITraitCollectionHandle changes in -traitCollectionDidChange: in your view and view controllers

Page 177: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Developer Tools Support

Specify colors based on user interface style in the Inspector

Page 178: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Developer Tools Support

Specify colors based on user interface style in the InspectorLight and dark style preview for storyboards

Page 179: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Developer Tools Support

Specify colors based on user interface style in the InspectorLight and dark style preview for storyboardsSimulator shortcut to quickly switch system appearance

Page 180: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

UIKit Controls

Page 181: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 182: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 183: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 184: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 185: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 186: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 187: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Customizing textUILabel & UITextView

UILabel and UITextView will change their text color on appearance change

Page 188: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Customizing textUILabel & UITextView

UILabel and UITextView will change their text color on appearance change• Black for light appearance

Page 189: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Customizing textUILabel & UITextView

UILabel and UITextView will change their text color on appearance change• Black for light appearance• White for dark appearance

Page 190: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Customizing textUILabel & UITextView

UILabel and UITextView will change their text color on appearance change• Black for light appearance• White for dark appearance

If you set a text color you’re responsible for light and dark colors

Page 191: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Prominent and regularBlurs

Page 192: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Prominent and regularBlurs

New automatic blur styles• UIBlurEffectStyleRegular• UIBlurEffectStyleProminent

Page 193: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Prominent and regularBlurs

New automatic blur styles• UIBlurEffectStyleRegular• UIBlurEffectStyleProminent

Light Dark

.regular .light .dark

.prominent .extraLight .extraDark

Page 194: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Appearance Proxy

Page 195: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Appearance Proxy

UIButton.appearance().setTitleColor(.red(), for: [])

Page 196: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Appearance Proxy

UIButton.appearance().setTitleColor(.red(), for: [])

let light = UITraitCollection(userInterfaceStyle: .light)

let dark = UITraitCollection(userInterfaceStyle: .dark)

UIButton.forTraitCollection(light).setTitleColor(.red(), for: [])

UIButton.forTraitCollection(dark).setTitleColor(.blue(), for: [])

Page 197: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Responding to Changes Directly

Page 198: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

traitCollectionDidChangeResponding to Changes Directly

Page 199: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

traitCollectionDidChangeResponding to Changes Directly

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {

super.traitCollectionDidChange(previousTraitCollection)

}

Page 200: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

traitCollectionDidChangeResponding to Changes Directly

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {

super.traitCollectionDidChange(previousTraitCollection)

}

// Is userInterfaceStyle available?

guard(traitCollection.responds(to: #selector(getter: UITraitCollection.userInterfaceStyle)))

else { return }

Page 201: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

traitCollectionDidChangeResponding to Changes Directly

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {

super.traitCollectionDidChange(previousTraitCollection)

}

// Is userInterfaceStyle available?

guard(traitCollection.responds(to: #selector(getter: UITraitCollection.userInterfaceStyle)))

else { return } // Did the userInterfaceStyle change?

guard(traitCollection.userInterfaceStyle != previousTraitCollection?.userInterfaceStyle)

else { return }

Page 202: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

traitCollectionDidChangeResponding to Changes Directly

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {

super.traitCollectionDidChange(previousTraitCollection)

}

// Is userInterfaceStyle available?

guard(traitCollection.responds(to: #selector(getter: UITraitCollection.userInterfaceStyle)))

else { return }

if traitCollection.userInterfaceStyle == .dark {

// Handle .dark

}

else {

// Handle .light

}

// Did the userInterfaceStyle change?

guard(traitCollection.userInterfaceStyle != previousTraitCollection?.userInterfaceStyle)

else { return }

Page 203: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Overriding Trait Collections

Page 204: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 205: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 206: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Overriding Trait Collections

Page 207: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Overriding Trait Collections

public func setOverrideTraitCollection(

_ collection: UITraitCollection?,

forChildViewController childViewController: UIViewController

)

Page 208: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

class AppearanceViewController: UIViewController {

var style: UIUserInterfaceStyle = .light

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {…}

required init?(coder aDecoder: NSCoder) {…}

var viewController: UIViewController {

get { return self }

set {

// override trait collection

let traitCollection = UITraitCollection(userInterfaceStyle: style)

self.setOverrideTraitCollection(traitCollection, forChildViewController: newValue)

// add child view controller

self.addChildViewController(newValue)

newValue.view.frame = view.bounds

self.view.addSubview(newValue.view)

newValue.didMove(toParentViewController: self)

}

}

Page 209: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

class AppearanceViewController: UIViewController {

var style: UIUserInterfaceStyle = .light

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {…}

required init?(coder aDecoder: NSCoder) {…}

var viewController: UIViewController {

get { return self }

set {

// override trait collection

let traitCollection = UITraitCollection(userInterfaceStyle: style)

self.setOverrideTraitCollection(traitCollection, forChildViewController: newValue)

// add child view controller

self.addChildViewController(newValue)

newValue.view.frame = view.bounds

self.view.addSubview(newValue.view)

newValue.didMove(toParentViewController: self)

}

}

Page 210: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

class AppearanceViewController: UIViewController {

var style: UIUserInterfaceStyle = .light

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {…}

required init?(coder aDecoder: NSCoder) {…}

var viewController: UIViewController {

get { return self }

set {

// override trait collection

let traitCollection = UITraitCollection(userInterfaceStyle: style)

self.setOverrideTraitCollection(traitCollection, forChildViewController: newValue)

// add child view controller

self.addChildViewController(newValue)

newValue.view.frame = view.bounds

self.view.addSubview(newValue.view)

newValue.didMove(toParentViewController: self)

}

}

Page 211: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

class AppearanceViewController: UIViewController {

var style: UIUserInterfaceStyle = .light

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {…}

required init?(coder aDecoder: NSCoder) {…}

var viewController: UIViewController {

get { return self }

set {

// override trait collection

let traitCollection = UITraitCollection(userInterfaceStyle: style)

self.setOverrideTraitCollection(traitCollection, forChildViewController: newValue)

// add child view controller

self.addChildViewController(newValue)

newValue.view.frame = view.bounds

self.view.addSubview(newValue.view)

newValue.didMove(toParentViewController: self)

}

}

Page 212: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

class AppearanceViewController: UIViewController {

var style: UIUserInterfaceStyle = .light

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {…}

required init?(coder aDecoder: NSCoder) {…}

var viewController: UIViewController {

get { return self }

set {

// override trait collection

let traitCollection = UITraitCollection(userInterfaceStyle: style)

self.setOverrideTraitCollection(traitCollection, forChildViewController: newValue)

// add child view controller

self.addChildViewController(newValue)

newValue.view.frame = view.bounds

self.view.addSubview(newValue.view)

newValue.didMove(toParentViewController: self)

}

}

Page 213: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

class AppearanceViewController: UIViewController {

var style: UIUserInterfaceStyle = .light

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {…}

required init?(coder aDecoder: NSCoder) {…}

var viewController: UIViewController {

get { return self }

set {

// override trait collection

let traitCollection = UITraitCollection(userInterfaceStyle: style)

self.setOverrideTraitCollection(traitCollection, forChildViewController: newValue)

// add child view controller

self.addChildViewController(newValue)

newValue.view.frame = view.bounds

self.view.addSubview(newValue.view)

newValue.didMove(toParentViewController: self)

}

}

Page 214: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing
Page 215: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

let appearanceViewController = AppearanceViewController()

appearanceViewController.style = .dark

appearanceViewController.viewController = viewController;

navController.pushViewController(appearanceViewController, animated: true)

Page 216: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

let appearanceViewController = AppearanceViewController()

appearanceViewController.style = .dark

appearanceViewController.viewController = viewController;

navController.pushViewController(appearanceViewController, animated: true)

Page 217: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

let appearanceViewController = AppearanceViewController()

appearanceViewController.style = .dark

appearanceViewController.viewController = viewController;

navController.pushViewController(appearanceViewController, animated: true)

Page 218: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

let appearanceViewController = AppearanceViewController()

appearanceViewController.style = .dark

appearanceViewController.viewController = viewController;

navController.pushViewController(appearanceViewController, animated: true)

Page 219: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

let appearanceViewController = AppearanceViewController()

appearanceViewController.style = .dark

appearanceViewController.viewController = viewController;

navController.pushViewController(appearanceViewController, animated: true)

Page 220: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

DemoAdopting system appearance

Brandon Kieft tvOS Engineer

Page 221: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Summary

Page 222: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Summary

Familiar frameworks, tools, and services

Page 223: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Summary

Familiar frameworks, tools, and servicesFocus-based Interaction, Layered Images, Top Shelf

Page 224: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Summary

Familiar frameworks, tools, and servicesFocus-based Interaction, Layered Images, Top ShelfUniversal Purchase, Auto Download

Page 225: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Summary

Familiar frameworks, tools, and servicesFocus-based Interaction, Layered Images, Top ShelfUniversal Purchase, Auto DownloadNew Apple TV Remote app

Page 226: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Summary

Familiar frameworks, tools, and servicesFocus-based Interaction, Layered Images, Top ShelfUniversal Purchase, Auto DownloadNew Apple TV Remote appReplayKit, and SpriteKit support in Focus Engine

Page 227: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Summary

Familiar frameworks, tools, and servicesFocus-based Interaction, Layered Images, Top ShelfUniversal Purchase, Auto DownloadNew Apple TV Remote appReplayKit, and SpriteKit support in Focus EngineLight and dark system appearance

Page 228: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Related Sessions

Mastering UIKit on tvOS Presidio Wednesday 10:00AM

Developing tvOS Apps Using TVMLKit: Part 1 Mission Wednesday 1:40PM

Focus Interaction on tvOS Mission Wednesday 4:00PM

Developing tvOS Apps Using TVMLKit: Part 2 Mission Thursday 4:00PM

Page 229: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Related Sessions

Go Live with ReplayKit Mission Tuesday 10:00AM

Introduction to Notifications Pacific Heights Wednesday 9:00AM

Advanced Notifications Pacific Heights Wednesday 10:00AM

Controlling Game Input for Apple TV Mission Wednesday 5:00PM

Optimizing On-Demand Resources Mission Thursday 10:00AM

AVKit on tvOS Presidio Friday 11:00AM

Page 230: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

tvOS Tech Talks

Kickoff Tech Talks 2016

Designing for Apple TV Tech Talks 2016

Focus-Driven Interfaces with UIKit Tech Talks 2016

Siri Remote and Game Controllers Tech Talks 2016

On-Demand Resources and Data Storage Tech Talks 2016

Media Playback Tech Talks 2016

Page 231: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

tvOS Tech Talks

Introduction to TVMLKit Tech Talks 2016

Best Practices for Designing tvOS Apps Tech Talks 2016

Tuning Your tvOS App Tech Talks 2016

The Top Shelf Tech Talks 2016

App Store Distribution and Marketing Tech Talks 2016

Page 232: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

tvOS Tech Talks

Introduction to TVMLKit Tech Talks 2016

Best Practices for Designing tvOS Apps Tech Talks 2016

Tuning Your tvOS App Tech Talks 2016

The Top Shelf Tech Talks 2016

App Store Distribution and Marketing Tech Talks 2016

https://developer.apple.com/videos/techtalks-apple-tv/

Page 233: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

Labs

tvOS Lab Frameworks Lab A Tuesday 4:00PM

tvOS Graphics and Games Lab Graphics, Games, and Media Lab B Wednesday 12:00PM

tvOS Lab Frameworks Lab D Wednesday 2:00PM

TVMLKit Lab Graphics, Games, and Media Lab B Wednesday 3:00PM

tvOS Lab Frameworks Lab D Thursday 9:00AM

On-Demand Resources Lab Frameworks Lab B Thursday 11:00AM

TVMLKit Lab Graphics, Games, and Media Lab C Friday 9:00AM

Page 234: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing

More Information

https://developer.apple.com/wwdc16/206

Page 235: What’s New in tvOS - Design and Development Videos › ... › 206 › 206_whats_new_in_tv… · Full native development Existing iOS app. UIKit Full native development Existing