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
Jay Thrash
September 11, 2013
Technology
1
320
Airplay: Creating Apps with (Split) Personality
My presentation on Airplay given at 360iDev 2013 in Denver, CO
Jay Thrash
September 11, 2013
Tweet
Share
More Decks by Jay Thrash
See All by Jay Thrash
Dare to Be Square: Building Adaptive iOS Interfaces
jaythrash
1
210
Good Intentions II: Enemy of the State
jaythrash
1
340
Adventures in Multipeer Connectivity
jaythrash
0
170
Good Intentions: A Path to Better View Controllers
jaythrash
0
520
App Prototyping 101: From Paper to Product
jaythrash
1
280
AltConf 2014: Interaction Prototyping with Origami & Quartz Composer
jaythrash
1
120
Peer Pressure: Adventures in Multipeer Connectivity
jaythrash
0
240
Xcode Alchemy
jaythrash
3
220
Prototyping with Origami
jaythrash
1
870
Other Decks in Technology
See All in Technology
社内お問い合わせBotの仕組みと学び
nish01
1
510
AI時代こそ求められる設計力- AWSクラウドデザインパターン3選で信頼性と拡張性を高める-
kenichirokimura
3
170
英語は話せません!それでも海外チームと信頼関係を作るため、対話を重ねた2ヶ月間のまなび
niioka_97
0
130
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
1
540
AIツールでどこまでデザインを忠実に実装できるのか
oikon48
6
2.9k
三菱電機・ソニーグループ共同の「Agile Japan企業内サテライト」_2025
sony
0
110
Why Governance Matters: The Key to Reducing Risk Without Slowing Down
sarahjwells
0
120
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
4
300
大規模サーバーレスAPIの堅牢性・信頼性設計 〜AWSのベストプラクティスから始まる現実的制約との向き合い方〜
maimyyym
4
3.1k
OpenAI gpt-oss ファインチューニング入門
kmotohas
2
1.1k
生成AIとM5Stack / M5 Japan Tour 2025 Autumn 東京
you
PRO
0
240
Function calling機能をPLaMo2に実装するには / PFN LLMセミナー
pfn
PRO
0
990
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Writing Fast Ruby
sferik
629
62k
How GitHub (no longer) Works
holman
315
140k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Agile that works and the tools we love
rasmusluckow
331
21k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
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