The awesome @ipavelas makes a sweet introduction to tvOS
Intro to tvOShave they finally cracked it?@iPavleas
View Slide
What is it?Apps on TVDerived from iOSNew frameworks TVML, TVJSStorage limitationsNew UX (Indirect input)
FrameworksAccelerateAudioToolboxAudioUnitAVFoundationAVKitCFNetworkCloudKitCoreBluetoothCoreDataCoreFoundationCoreGraphicsCoreImageCoreLocationCoreMediaCoreSpotlightCoreTextCoreVideoDarwinFoundationGameControllerGameKitGameplayKitGLKiImageIOMachOMapKitMediaAccessibilityMediaPlayerMediaToolboxMetalMetalKitMetalPerformanceShadersMobileCoreServicesModelIOOpenGLESSceneKitSecuritysimdSpriteKitStoreKitSwift Standard LibrarySystemConfigurationUIKit
No PhotosNo AddressBookNo ContactsNo MessageUINo ReplayKitNo HomeKit
No WebKit
TVMLXML, HTML likeTemplates (formTemplate, menuBarTemplate)Elements (title, img, button)
TVJSJavaScriptStandard DOM classes + EventListenerObject, Keyboard, NavigationDocument etcCan exist on a serverCan bridge native code with JavaScript Core
TVML vs NativeSlowerLess customisableUpdates without app reviewStock apps look like TVML
NSUserDefaults (limited to 500KB)iCloud Key Value Storage (1MB per user, 1024 keys)CloudKitOwn serverLimited Persistent (local) Storage
tvOS app bundle < 200MB
New UX - Siri Remote“creates a unique, intimate connection with onscreen content”FocusParallax imagesGestures
Focus EngineUIFocusEnvironment protocolUIView, UIViewController, UIWindow, UIPresentationControllerprefferedFocusView
Focus EngineSwipe to move focus: left, right, up, downInternal picture of app’s UIshould/didUpdateFocusInContextsetNeedsFocusUpdate
Focus EngineUIFocusGuidebottomAnchor, leftAnchoretc
GesturesUITapGestureRecognizer:numberOfTaps, allowedPressTypesUILongPressGestureRecognizer:UISwipeGestureRecognizer:UIPanGestureRecognizer:
No MultiTouch
Existing ProjectsStandalone binaryUniversal purchaseShare code with existing iOS appsAdd new targetNew storyboards (1920x1080, scale 1x)TestFlight
Thank you!