Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Bring your apps to the big screen 📺
Search
Boris Bügling
October 30, 2015
Programming
650
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
More Decks by Boris Bügling
See All by Boris Bügling
Testing ⌚️ Apps and Other Extensions
neonichu
1
4.7k
Cross-platform Swift
neonichu
4
18k
Building better API clients in Swift
neonichu
1
360
Cross-platform Swift
neonichu
3
960
Swift Package Manager
neonichu
2
380
Swift Package Manager
neonichu
0
86
📺
neonichu
0
2.1k
Cross-Platform Swift
neonichu
0
140
Swift Package Manager
neonichu
6
4.5k
Other Decks in Programming
See All in Programming
仕様駆動開発の消費期限
watany
20
9.1k
VibeCodingからAgenticWorkflowへ
starfish719
0
940
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
110
リアルな遅延を測る仕様
kota_yata
1
130
ALB ログから Trace を気合で繋げる技術
fohte
7
770
React本体のコードリーディング
high_g_engineer
1
160
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
120
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
530
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
200
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
270
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
580
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
370
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
820
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
The Limits of Empathy - UXLibs8
cassininazir
1
620
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
The browser strikes back
jonoalderson
0
1.6k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
430
Six Lessons from altMBA
skipperchong
29
4.5k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Transcript
BRING YOUR APP TO THE BIG SCREEN SWIFT SUMMIT, OCTOBER
2015 BORIS BÜGLING - @NEONACHO
None
COCOAPODS
CONTENTFUL
None
None
“‘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.’”
OCTOBER 21, 2011
SEPTEMBER 9, 2015
None
None
The future of TV is iOS
Accelerate AudioToolbox AudioUnit AVFoundation AVKit CFNetwork CloudKit CoreBluetooth CoreData CoreFoundation
CoreGraphics
CoreImage CoreLocation CoreMedia CoreSpotlight CoreText CoreVideo Darwin Foundation GameController GameKit
GameplayKit
GLKit ImageIO MachO MediaAccessibility MediaPlayer MediaToolbox Metal MetalKit MetalPerformanceShaders MobileCoreServices
ModelIO OpenGLES SceneKit Security simd SpriteKit StoreKit Swift Standard Library
SystemConfiguration UIKit
WEBKIT
MULTIPEERCONNE CTIVITY
PORTING EXISTING APPS
COCOAPODS ▸ Supports tvOS since 0.39.0 ▸ New platform: platform
:tvos, '9.0'
PODS SUPPORTING TVOS ["AFNetworking","Alamofire","CocoaLumberjack","SwiftyJSON","Charts", "Quick","Bolts","SnapKit","RxBlocking","RxCocoa","RxSwift","Nimble", "Argo","UICKeyChainStore","AsyncSwift","DTFoundation","Sync", "KeychainAccess","upnpx","AlamofireImage"] If you are
adventurous ! https://github.com/orta/cocoapods-expert-difficulty
SPRITEKIT EXAMPLE
DOOM CLASSIC ▸ UIKit changes (UIAlertView, UISlider) ▸ AudioSession isn't
available ▸ Newer C++ compiler
NIBS ! If you feel like copy-pasting stuff between NIBs
! https://github.com/neonichu/DOOM-IOS2/tree/tvos
STORAGE LIMITATIONS ▸ app is limited to 200 MB ▸
500 KB of persistent storage (NSUserDefaults) ▸ Use iCloud ▸ Use On-Demand resources
NO DIRECT MANIPULATION
FOCUS ENGINE UIButton().canBecomeFocused() // == true or false UIButton().focused //
== true or false UIScreen.mainScreen().focusedView // nil or the view in focus
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)?)
DEMO
SIRI?
GAME CONTROLLERS
None
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) } } } } }
GAME CONTROLLERS WORK WITH UIKIT COMPONENTS
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
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
A maximum of two game controllers (plus one remote) can
be connected to an Apple TV at any given time.
DEMO
TVML
APP REVIEW !
CONCLUSION ▸ tvOS works very well ▸ If you know
UIKit, it's easy to start ▸ Think about interaction
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/
THANKS!
@NeoNacho
[email protected]
http://buegling.com/talks