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
330
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
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
530
App Prototyping 101: From Paper to Product
jaythrash
1
290
AltConf 2014: Interaction Prototyping with Origami & Quartz Composer
jaythrash
1
130
Peer Pressure: Adventures in Multipeer Connectivity
jaythrash
0
250
Xcode Alchemy
jaythrash
3
230
Prototyping with Origami
jaythrash
1
870
Other Decks in Technology
See All in Technology
LLMに何を任せ、何を任せないか
cap120
6
2.2k
Phase05_ClaudeCode入門
overflowinc
0
1.8k
PostgreSQL 18のNOT ENFORCEDな制約とDEFERRABLEの関係
yahonda
0
100
契約書からの情報抽出を行うLLMのスループットを、バッチ処理を用いて最大40%改善した話
sansantech
PRO
1
150
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
310
A4)シラバスを超えて語る、テストマネジメント
moritamasami
0
120
Phase03_ドキュメント管理
overflowinc
0
2.2k
今日から始められるテスト自動化 〜 基礎知識から生成AI活用まで 〜
magicpod
1
120
スピンアウト講座04_ルーティン処理
overflowinc
0
1k
欠陥分析(ODC分析)における生成AIの活用プロセスと実践事例 / 20260320 Suguru Ishii & Naoki Yamakoshi & Mayu Yoshizawa
shift_evolve
PRO
0
340
FastMCP OAuth Proxy with Cognito
hironobuiga
3
150
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
4
340
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
141
7.4k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
91
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
490
Producing Creativity
orderedlist
PRO
348
40k
SEO for Brand Visibility & Recognition
aleyda
0
4.4k
Tell your own story through comics
letsgokoyo
1
870
Claude Code のすすめ
schroneko
67
220k
A Modern Web Designer's Workflow
chriscoyier
698
190k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.4k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
What's in a price? How to price your products and services
michaelherold
247
13k
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