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
310
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
200
Good Intentions II: Enemy of the State
jaythrash
1
330
Adventures in Multipeer Connectivity
jaythrash
0
160
Good Intentions: A Path to Better View Controllers
jaythrash
0
510
App Prototyping 101: From Paper to Product
jaythrash
1
270
AltConf 2014: Interaction Prototyping with Origami & Quartz Composer
jaythrash
1
120
Peer Pressure: Adventures in Multipeer Connectivity
jaythrash
0
230
Xcode Alchemy
jaythrash
3
190
Prototyping with Origami
jaythrash
1
860
Other Decks in Technology
See All in Technology
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
2
880
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
1k
生成AIの利活用を加速させるための取り組み「prAIrie-dog」/ Shibuya_AI_1
visional_engineering_and_design
1
140
君はPostScriptなウィンドウシステム 「NeWS」をご存知か?/sunnews
koyhoge
0
720
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
110
Datadog APM におけるトレース収集の流れ及び Retention Filters のはなし / datadog-apm-trace-retention-filters
k6s4i53rx
0
320
2.5Dモデルのすべて
yu4u
2
610
AWSでRAGを実現する上で感じた3つの大事なこと
ymae
3
1k
10分で紹介するAmazon Bedrock利用時のセキュリティ対策 / 10-minutes introduction to security measures when using Amazon Bedrock
hideakiaoyagi
0
170
個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
yusukeiwaki
11
2.7k
スクラムのイテレーションを導入してチームの雰囲気がより良くなった話
eccyun
0
110
サーバーレスアーキテクチャと生成AIの融合 / Serverless Meets Generative AI
_kensh
12
3k
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
29
4.6k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
The Invisible Side of Design
smashingmag
299
50k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
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