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
Airplay: Creating Apps with (Split) Personality
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Jay Thrash
September 11, 2013
Technology
330
1
Share
Airplay: Creating Apps with (Split) Personality
My presentation on Airplay given at 360iDev 2013 in Denver, CO
Jay Thrash
September 11, 2013
More Decks by Jay Thrash
See All by Jay Thrash
Dare to Be Square: Building Adaptive iOS Interfaces
jaythrash
1
230
Good Intentions II: Enemy of the State
jaythrash
1
350
Adventures in Multipeer Connectivity
jaythrash
0
180
Good Intentions: A Path to Better View Controllers
jaythrash
0
540
App Prototyping 101: From Paper to Product
jaythrash
1
300
AltConf 2014: Interaction Prototyping with Origami & Quartz Composer
jaythrash
1
130
Peer Pressure: Adventures in Multipeer Connectivity
jaythrash
0
250
Xcode Alchemy
jaythrash
3
240
Prototyping with Origami
jaythrash
1
880
Other Decks in Technology
See All in Technology
レビューしきれない?それは「全て人力でのレビュー」だからではないでしょうか
amixedcolor
0
350
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
3
3.7k
実践ハーネスエンジニアリング:TAKTで実現するAIエージェント制御 / Practical Harness Engineering: AI Agent Control Enabled by TAKT
nrslib
12
4.8k
CloudTrail を見つめ直してみる
kazzpapa3
1
120
Percolatorを廃止し、マルチ検索サービスへ刷新した話 / Search Engineering Tech Talk 2026 Spring
visional_engineering_and_design
0
140
AI: Making Admin and Users, Lives Better
kbmsg
0
110
データを"持てない"環境でのアノテーション基盤設計
sansantech
PRO
1
140
弁護士ドットコム株式会社 エンジニア職向け 会社紹介資料
bengo4com
1
180
[最強DB講義]推薦システム | 評価編
recsyslab
PRO
0
100
扱える不確実性を増やしていく - スタートアップEMが考える「任せ方」
kadoppe
0
320
ServiceNow Knowledge 26 の歩き方
manarobot
0
150
Claude Code を安全に使おう勉強会 / Claude Code Security Basics
masahirokawahara
12
36k
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
320
Building Adaptive Systems
keathley
44
3k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Fireside Chat
paigeccino
42
3.9k
Raft: Consensus for Rubyists
vanstee
141
7.4k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
270
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.8k
WENDY [Excerpt]
tessaabrams
10
37k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
69
39k
How to Ace a Technical Interview
jacobian
281
24k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
140
Rails Girls Zürich Keynote
gr2m
96
14k
Transcript
AirPlay: Creating Apps with (Split) Personality 360iDev September 2013 Denver,
CO Jay Thrash @jaythrash jaythrash.com Wednesday, September 11, 13
Airplay Modes Images: http://www.apple.com/airplay/ Wednesday, September 11, 13
Airplay Modes Images: http://www.apple.com/airplay/ Wednesday, September 11, 13
Airplay Modes Images: http://www.apple.com/airplay/ Wednesday, September 11, 13
Agenda •Detection •Interrogation •Initialization •Implementation Wednesday, September 11, 13
Detection (Active) Wednesday, September 11, 13
Detection (Active) if ([[UIScreen screens] count] > 1) { //
You have an external screen! } Wednesday, September 11, 13
Detection (Passive) Wednesday, September 11, 13
Detection (Passive) [center addObserver:self selector:@selector(screenConnected:) name:UIScreenDidConnectNotification object:nil]; Wednesday, September 11,
13
Detection (Passive) [center addObserver:self selector:@selector(screenConnected:) name:UIScreenDidConnectNotification object:nil]; [center addObserver:self selector:@selector(screenDisconnected:)
name:UIScreenDidDisconnectNotification object:nil]; Wednesday, September 11, 13
Demo PhotoScroll w/FingerPrints Wednesday, September 11, 13
Interrogation (screen characteristics) UIScreenMode • size (resolution) • pixelAspectRatio Wednesday,
September 11, 13
Interrogation (screen characteristics) Wednesday, September 11, 13
Interrogation (screen characteristics) [UIScreen screens][1].availableModes; Wednesday, September 11, 13
Interrogation (screen characteristics) [UIScreen screens][1].availableModes; [UIScreen screens][1].preferredMode; Wednesday, September 11,
13
Initialization (do my bidding!) Wednesday, September 11, 13
Initialization (do my bidding!) externalScreen.currentMode = selectedMode; Wednesday, September 11,
13
Initialization (do my bidding!) externalScreen.currentMode = selectedMode; CGRect windowFrame =
CGRectZero; windowFrame.size = selectedMode.size; UIWindow *externalWindow = [[UIWindow alloc]init]; externalWindow.screen = externalScreen; externalWindow.frame = windowFrame; Wednesday, September 11, 13
Demo MultiScreen Wednesday, September 11, 13
Implementation UIKit App? • externalWindow addSubview: to draw elements on
externally • manually scale & position assets relative to screen resolution (@2x only applies to mainScreen) Wednesday, September 11, 13
Implementation Perfomance App? (Game) • UIScreenOverscanCompensation handles pixel loss at
screen edges • displayLinkWithTarget:selector sync drawing with refresh rate Wednesday, September 11, 13
Simulator → TV Out is your friend! Wednesday, September 11,
13
Demo Phamily Pheud Wednesday, September 11, 13
Wednesday, September 11, 13
Wednesday, September 11, 13
Wednesday, September 11, 13
Demo Phamily Pheud Wednesday, September 11, 13
Don’t Forget... A+++!!! Would watch again! Wednesday, September 11, 13
Don’t Forget... No Angry Birds demo. Lame. Wednesday, September 11,
13
360iDev September 2013 Denver, CO Jay Thrash @jaythrash jaythrash.com Thanks!
Wednesday, September 11, 13