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
iPhone 5 and You! by Ameir Al-Zoubi
Search
Triangle Cocoa
September 27, 2012
Programming
0
180
iPhone 5 and You! by Ameir Al-Zoubi
Ameir discusses upgrading your app to support iPhone 5 at CocoaHeads September in Durham
Triangle Cocoa
September 27, 2012
Tweet
Share
More Decks by Triangle Cocoa
See All by Triangle Cocoa
App Store Secrets by Lawrence Ingraham
trianglecocoa
1
260
Grand Central Dispatch by Jody Hagins
trianglecocoa
2
470
Instruments: Leaks by Trevor Brown
trianglecocoa
5
140
Foundation Collections by Kevin Conner
trianglecocoa
3
240
Multithreaded Drawing by Eric Lanz
trianglecocoa
3
210
Unburdened ViewControllers by Jay Thrash
trianglecocoa
9
11k
Automated Acceptance Testing by Josh Johnson
trianglecocoa
4
170
Understanding UIResponder by Dirk Smith
trianglecocoa
5
290
Taming Xcode by Jay Thrash
trianglecocoa
3
130
Other Decks in Programming
See All in Programming
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
840
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
100
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
300
「ElixirでIoT!!」のこれまでとこれから
takasehideki
0
370
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
180
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
800
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
140
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
570
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
850
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
330
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
11
2k
XP, Testing and ninja testing
m_seki
3
180
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
GraphQLとの向き合い方2022年版
quramy
47
14k
GitHub's CSS Performance
jonrohan
1031
460k
Fireside Chat
paigeccino
37
3.5k
Become a Pro
speakerdeck
PRO
28
5.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Scaling GitHub
holman
459
140k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
670
Why Our Code Smells
bkeepers
PRO
337
57k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Transcript
The iPhone 5 and You! Tall is the new retina.
Not The Time To Procrastinate
Not The Time To Procrastinate • Early adopters tend to
pay for apps
Not The Time To Procrastinate • Early adopters tend to
pay for apps • Avoid the one star downvotes
Not The Time To Procrastinate • Early adopters tend to
pay for apps • Avoid the one star downvotes • It’s what Steve would have wanted
The Letterbox
The Letterbox • Include a new Default.png named
[email protected]
The Letterbox • Include a new Default.png named
[email protected]
•
Needs to be 640 × 1136 pixels
The Letterbox • Include a new Default.png named
[email protected]
•
Needs to be 640 × 1136 pixels • Thats it.
But Wait! My App is Broken!
But Wait! My App is Broken! • Xcode 4.5
But Wait! My App is Broken! • Xcode 4.5 •
iOS 6
But Wait! My App is Broken! • Xcode 4.5 •
iOS 6 • armV7s
The Window
The Window • Full screen at launch
The Window • Full screen at launch
The Window • Full screen at launch
The Window • self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
• Full screen at launch
The Window • self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
• Set root view controller • Full screen at launch
Rotation
Rotation • If all views rotate the same way, simply
set those in your plist
Rotation • If all views rotate the same way, simply
set those in your plist • shouldAutorotateToInterfaceOrientation
Rotation • If all views rotate the same way, simply
set those in your plist • shouldAutorotateToInterfaceOrientation • supportedInterfaceOrientations
Rotation • If all views rotate the same way, simply
set those in your plist • shouldAutorotateToInterfaceOrientation • supportedInterfaceOrientations • Checks the root view controller
Rotation • If all views rotate the same way, simply
set those in your plist • shouldAutorotateToInterfaceOrientation • supportedInterfaceOrientations • Checks the root view controller • Subclass UINavigationController and UITabBarController
Auto Layout
Auto Layout • It’s the bee’s knees
Auto Layout • It’s the bee’s knees • iOS 6
only
Auto Layout • It’s the bee’s knees • iOS 6
only • New xibs have it enabled by default
The Hard Way
The Hard Way • UIViewAutoresizingFlexibleHeight
The Hard Way • UIViewAutoresizingFlexibleHeight • Resize will occur in
viewWillAppear not viewDidLoad
The Hard Way • UIViewAutoresizingFlexibleHeight • Resize will occur in
viewWillAppear not viewDidLoad • ([[UIScreen mainScreen] bounds].size.height == 568)
The Hard Way • UIViewAutoresizingFlexibleHeight • Resize will occur in
viewWillAppear not viewDidLoad • ([[UIScreen mainScreen] bounds].size.height == 568) • New ratio
The Hard Way • UIViewAutoresizingFlexibleHeight • Resize will occur in
viewWillAppear not viewDidLoad • ([[UIScreen mainScreen] bounds].size.height == 568) • New ratio • CGRectIntegral
The March of Progress
The March of Progress • iPhone 5 supports the armV7s
instruction set
The March of Progress • iPhone 5 supports the armV7s
instruction set • Most statically compiled frameworks don’t
The March of Progress • iPhone 5 supports the armV7s
instruction set • Most statically compiled frameworks don’t • lipo -info binaryFile
The March of Progress • iPhone 5 supports the armV7s
instruction set • Most statically compiled frameworks don’t • lipo -info binaryFile • armV6 support dropped
The March of Progress • iPhone 5 supports the armV7s
instruction set • Most statically compiled frameworks don’t • lipo -info binaryFile • armV6 support dropped • iOS 4.3 and up
View Life Cycle • viewDidUnload and viewWillUnload no longer called
• didReceiveMemoryWarning • Don’t release your view
None
Maps
Maps • Simply replace http://maps.google.com with http://maps.apple.com
Maps • Simply replace http://maps.google.com with http://maps.apple.com • Backwards compatible
The Light at the End of the Tunnel
The Light at the End of the Tunnel • UIActivityViewController
The Light at the End of the Tunnel • UIActivityViewController
• UICollectionView
The Light at the End of the Tunnel • UIActivityViewController
• UICollectionView • NSAttributedString
The Light at the End of the Tunnel • UIActivityViewController
• UICollectionView • NSAttributedString • UIRefreshControl
The Light at the End of the Tunnel • UIActivityViewController
• UICollectionView • NSAttributedString • UIRefreshControl • Lots more
More Info • Twitter: @ameir • NSCoder