What s New in tvos 12
|
|
- Lawrence Bennett
- 5 years ago
- Views:
Transcription
1 #WWDC18 What s New in tvos 12 Session 208 Hans Kim, tvos Engineering 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
2 Agenda
3 Agenda Password AutoFill
4 Agenda Password AutoFill Focus Engine enhancement
5 Agenda Password AutoFill Focus Engine enhancement UI patterns
6 Password AutoFill Alex Sanciangco, tvos Engineering Conrad Shultz, tvos Engineering
7
8 Demo
9
10 Ensure QuickType bar appears
11 Ensure QuickType bar appears Get your app s credentials on the QuickType bar
12 Ensure QuickType bar appears Get your app s credentials on the QuickType bar Enable one-tap sign in
13 Ensure QuickType Bar Appears Adopt UITextContentType
14 Ensure QuickType Bar Appears Adopt UITextContentType tvos will try to automatically detect username and password fields
15 Ensure QuickType Bar Appears Adopt UITextContentType tvos will try to automatically detect username and password fields Explicitly mark the text field types
16 Ensure QuickType Bar Appears Adopt UITextContentType tvos will try to automatically detect username and password fields Explicitly mark the text field types let usernamefield = UITextField() let passwordfield = UITextField() usernamefield.textcontenttype =.username passwordfield.textcontenttype =.password
17
18
19
20
21 QuickType Bar Suggestions Associated Domains
22 QuickType Bar Suggestions Associated Domains Powers many other features
23 QuickType Bar Suggestions Associated Domains Powers many other features Strong relationship between app and website
24 QuickType Bar Suggestions Associated Domains Powers many other features Strong relationship between app and website Introducing Password AutoFill for Apps WWDC 2017
25
26
27 Enable One-Tap Sign In Implement preferredfocusenvironments
28 Enable One-Tap Sign In Implement preferredfocusenvironments AutoFill will perform a focused button s action after filling
29 Enable One-Tap Sign In Implement preferredfocusenvironments AutoFill will perform a focused button s action after filling Implement preferredfocusenvironments to provide your login button for focus
30 // Sample Implementation override var preferredfocusenvironments: [UIFocusEnvironment] { if let username = usernametextfield.text, let password = passwordtextfield.text { return [loginbutton] } else { return [usernametextfield] } }
31 // Sample Implementation override var preferredfocusenvironments: [UIFocusEnvironment] { if let username = usernametextfield.text, let password = passwordtextfield.text { return [loginbutton] } else { return [usernametextfield] } }
32 // Sample Implementation override var preferredfocusenvironments: [UIFocusEnvironment] { if let username = usernametextfield.text, let password = passwordtextfield.text { return [loginbutton] } else { return [usernametextfield] } }
33 // Sample Implementation override var preferredfocusenvironments: [UIFocusEnvironment] { if let username = usernametextfield.text, let password = passwordtextfield.text { return [loginbutton] } else { return [usernametextfield] } }
34 // Sample Implementation override var preferredfocusenvironments: [UIFocusEnvironment] { if let username = usernametextfield.text, let password = passwordtextfield.text { return [loginbutton] } else { return [usernametextfield] } }
35 Summary
36 Summary Reduce the friction of signing into your app with Password AutoFill
37 Summary Reduce the friction of signing into your app with Password AutoFill Tag your text fields with appropriate UITextContentType
38 Summary Reduce the friction of signing into your app with Password AutoFill Tag your text fields with appropriate UITextContentType Adopt Associated Domains
39 Summary Reduce the friction of signing into your app with Password AutoFill Tag your text fields with appropriate UITextContentType Adopt Associated Domains Implement preferredfocusenvironments
40 Focus Enhancements Ada Turner, tvos Engineering
41 Focus on tvos
42 Focus on tvos
43 Focus on tvos UIKit
44 Focus on tvos UIKit SpriteKit
45 Focus on tvos UIKit SpriteKit SceneKit
46 NEW Focus Engine now supports apps regardless of how they are rendered.
47 What s Included
48 What s Included State management
49 What s Included State management Focus item geometry
50 What s Included State management Focus item geometry Accessibility
51 What s Included State management Focus item geometry Accessibility tvos s native feel Momentum during swipes Scrolling inertia Focus movement hinting
52 Focus Components
53 Focus Components UIFocusEnvironment
54 Focus Components UIFocusEnvironment UIFocusItem
55 Focus Components UIFocusEnvironment UIFocusSystem UIFocusItem
56 Focus Components UIFocusEnvironment UIFocusSystem UIFocusItem Focus Interaction in tvos 11 WWDC 2017
57 New Focus Features
58 New Focus Features UIFocusEnvironment UIFocusSystem UIFocusItem
59 New Focus Features NEW UIFocusEnvironment UIFocusSystem UIFocusItem
60 New Focus Features NEW UIFocusItemContainer UIFocusEnvironment UIFocusSystem UIFocusItem
61 New Focus Features NEW UIFocusItemContainer UIFocusEnvironment UIFocusSystem UIFocusItem
62 New Focus Features NEW UIFocusItemContainer UIFocusEnvironment UIFocusSystem UIFocusItemScrollable Container UIFocusItem
63 New Focus Features NEW UIFocusItemContainer UIFocusEnvironment UIFocusSystem UIFocusItemScrollable Container UIFocusItem UIFocusMovementHint
64 Adopting New Focus API
65 UIFocusEnvironment NEW UIFocusEnvironment
66 UIFocusEnvironment NEW UIFocusEnvironment Hooking into the focus engine weak var parentfocusenvironment: UIFocusEnvironment? var focusitemcontainer: UIFocusItemContainer?
67 UIFocusEnvironment NEW UIFocusEnvironment Hooking into the focus engine weak var parentfocusenvironment: UIFocusEnvironment? var focusitemcontainer: UIFocusItemContainer? Controlling and reacting to focus updates var preferredfocusenvironments: [UIFocusEnvironment] func shouldupdatefocus(in context: UIFocusUpdateContext) -> Bool func didupdatefocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator)
68 UIFocusEnvironment NEW UIFocusEnvironment Focus updating functions
69 UIFocusEnvironment NEW UIFocusEnvironment Focus updating functions func setneedsfocusupdate() { } UIFocusSystem(for: self)?.requestfocusupdate(to: self) func updatefocusifneeded() { } UIFocusSystem(for: self)?.updatefocusifneeded()
70 UIFocusItemContainer NEW UIFocusEnvironment UIFocusItemContainer
71 UIFocusItemContainer NEW UIFocusEnvironment Provide a coordinatespace UIFocusItemContainer UIView provides itself
72 UIFocusItemContainer NEW UIFocusEnvironment Provide a coordinatespace UIFocusItemContainer UIView provides itself Implement focusitems(in rect: CGRect) Return Focus Items whose frames intersect with rect rect is expressed in coordinatespace Focus Items frames must also be expressed in coordinatespace
73 UIFocusItem NEW UIFocusEnvironment UIFocusItemContainer UIFocusItem UIFocusItem UIFocusItem
74 UIFocusItem NEW UIFocusEnvironment Inherits from UIFocusEnvironment UIFocusItemContainer UIFocusItem UIFocusItem UIFocusItem
75 UIFocusItem NEW UIFocusEnvironment Inherits from UIFocusEnvironment UIFocusItemContainer Implement canbecomefocused UIFocusItem UIFocusItem UIFocusItem
76 UIFocusItem NEW UIFocusEnvironment Inherits from UIFocusEnvironment UIFocusItemContainer Implement canbecomefocused UIFocusItem Implement didhintfocusmovement(_ hint: UIFocusMovementHint) UIFocusItem UIFocusItem
77 UIFocusItem NEW UIFocusEnvironment Inherits from UIFocusEnvironment UIFocusItemContainer Implement canbecomefocused UIFocusItem Implement didhintfocusmovement(_ hint: UIFocusMovementHint) Provide a frame UIFocusItem Same coordinate space as its containing UIFocusItemContainer UIFocusItem
78 UIFocusMovementHint NEW 1 class UIFocusMovementHint : NSObject, NSCopying { var movementdirection: CGVector { get } var perspectivetransform: CATransform3D { get } var rotation: CGVector { get } var translation: CGVector { get } -1 1 var interactiontransform: CATransform3D { get } } -1
79 UIFocusMovementHint NEW 1 class UIFocusMovementHint : NSObject, NSCopying { var movementdirection: CGVector { get } var perspectivetransform: CATransform3D { get } var rotation: CGVector { get } var translation: CGVector { get } -1 1 var interactiontransform: CATransform3D { get } } -1
80 UIFocusMovementHint NEW 1 class UIFocusMovementHint : NSObject, NSCopying { var movementdirection: CGVector { get } var perspectivetransform: CATransform3D { get } var rotation: CGVector { get } var translation: CGVector { get } -1 1 var interactiontransform: CATransform3D { get } }. -1
81 UIFocusMovementHint NEW 1 class UIFocusMovementHint : NSObject, NSCopying { var movementdirection: CGVector { get } var perspectivetransform: CATransform3D { get } var rotation: CGVector { get } var translation: CGVector { get } -1 1 var interactiontransform: CATransform3D { get } }. -1
82 UIFocusMovementHint NEW 1 class UIFocusMovementHint : NSObject, NSCopying { var movementdirection: CGVector { get } var perspectivetransform: CATransform3D { get } var rotation: CGVector { get } var translation: CGVector { get } -1 1 var interactiontransform: CATransform3D { get } } -1
83 UIFocusMovementHint NEW 1 class UIFocusMovementHint : NSObject, NSCopying { var movementdirection: CGVector { get } var perspectivetransform: CATransform3D { get } var rotation: CGVector { get } var translation: CGVector { get } -1 1 var interactiontransform: CATransform3D { get } } -1
84 UIFocusMovementHint NEW 1 class UIFocusMovementHint : NSObject, NSCopying { var movementdirection: CGVector { get } var perspectivetransform: CATransform3D { get } var rotation: CGVector { get } var translation: CGVector { get } -1 1 var interactiontransform: CATransform3D { get } } -1
85 UIFocusItemScrollableContainer NEW UIFocusEnvironment ScrollableContainer UIFocusItem UIFocusItem UIFocusItem UIFocusItem
86 UIFocusItemScrollableContainer NEW UIFocusEnvironment Inherits from UIFocusItemContainer ScrollableContainer UIFocusItem UIFocusItem UIFocusItem UIFocusItem
87 UIFocusItemScrollableContainer NEW UIFocusEnvironment Inherits from UIFocusItemContainer Three additional properties ScrollableContainer UIFocusItem UIFocusItem UIFocusItem UIFocusItem
88 UIFocusItemScrollableContainer NEW UIFocusEnvironment Inherits from UIFocusItemContainer Three additional properties ScrollableContainer UIFocusItem var contentoffset: CGPoint { get set } UIFocusItem UIFocusItem UIFocusItem
89 UIFocusItemScrollableContainer NEW UIFocusEnvironment Inherits from UIFocusItemContainer Three additional properties ScrollableContainer UIFocusItem var contentoffset: CGPoint { get set } var contentsize: CGSize { get } UIFocusItem UIFocusItem UIFocusItem
90 UIFocusItemScrollableContainer NEW UIFocusEnvironment Inherits from UIFocusItemContainer Three additional properties ScrollableContainer UIFocusItem var contentoffset: CGPoint { get set } var contentsize: CGSize { get } UIFocusItem var visiblesize: CGSize { get } UIFocusItem UIFocusItem
91 UIFocusItemScrollableContainer NEW UIFocusEnvironment Inherits from UIFocusItemContainer Three additional properties ScrollableContainer UIFocusItem var contentoffset: CGPoint { get set } var contentsize: CGSize { get } UIFocusItem var visiblesize: CGSize { get } contentoffset is set automatically UIFocusItem UIFocusItem
92 UIFocusItemScrollableContainer NEW UIFocusEnvironment Inherits from UIFocusItemContainer Three additional properties ScrollableContainer UIFocusItem var contentoffset: CGPoint { get set } var contentsize: CGSize { get } UIFocusItem var visiblesize: CGSize { get } contentoffset is set automatically UIFocusItem UIFocusItem
93 Accessibility
94 Accessibility It s incredibly easy!
95 Accessibility It s incredibly easy! Implement UIFocusItemContainer.focusItems(in rect: CGRect)
96 Accessibility It s incredibly easy! Implement UIFocusItemContainer.focusItems(in rect: CGRect) Set accessibilitylabel and accessibilityhint on your Focus Items
97 Accessibility It s incredibly easy! Implement UIFocusItemContainer.focusItems(in rect: CGRect) Set accessibilitylabel and accessibilityhint on your Focus Items What s New in Accessibility WWDC 2016
98 Demo Focus-powered Metal app Paul Schneider, tvos Engineering
99 Summary
100 Summary Implement custom UIFocusEnvironments and UIFocusItems
101 Summary Implement custom UIFocusEnvironments and UIFocusItems Even with non-uikit components!
102 Summary Implement custom UIFocusEnvironments and UIFocusItems Even with non-uikit components! Support Focus movement with UIFocusItemContainer
103 Summary Implement custom UIFocusEnvironments and UIFocusItems Even with non-uikit components! Support Focus movement with UIFocusItemContainer Hint at interaction with UIFocusMovementHint
104 Summary Implement custom UIFocusEnvironments and UIFocusItems Even with non-uikit components! Support Focus movement with UIFocusItemContainer Hint at interaction with UIFocusMovementHint Automatically scroll with UIFocusItemScrollableContainer
105 Summary Implement custom UIFocusEnvironments and UIFocusItems Even with non-uikit components! Support Focus movement with UIFocusItemContainer Hint at interaction with UIFocusMovementHint Automatically scroll with UIFocusItemScrollableContainer Full accessibility support
106 Summary Implement custom UIFocusEnvironments and UIFocusItems Even with non-uikit components! Support Focus movement with UIFocusItemContainer Hint at interaction with UIFocusMovementHint Automatically scroll with UIFocusItemScrollableContainer Full accessibility support Available in the Developer Beta
107 UI Patterns Hans Kim, tvos Engineering
108
109
110 Text Scrolling Marquee
111 Text Scrolling Marquee Present variable-length strings in fixed geometry
112 Text Scrolling Marquee NEW Present variable-length strings in fixed geometry Visually highlights current focus
113
114
115 UILabel Marquee label.enablesmarqueewhenancestorfocused = true
116 UILabel Marquee NEW label.enablesmarqueewhenancestorfocused = true
117 NEW Label Label Label
118 NEW Label Label Label
119 NEW Label string too long for label string too lon Label
120 NEW Label string too long for label string too lon Label
121
122
123
124
125
126
127
128
129 TVUIKit
130 TVUIKit NEW
131 Poster NEW
132 NEW Poster Caption Button
133 Poster Caption Button Card NEW
134 Poster Caption Button Card Monogram NEW
135
136
137 TVPosterView NEW
138 TVPosterView NEW image
139 TVPosterView NEW image title subtitle
140 TVPosterView NEW image title subtitle
141 TVPosterView NEW image title subtitle
142 TVPosterView NEW image title subtitle
143 TVPosterView NEW image title subtitle
144 TVPosterView NEW image title subtitle
145 TVPosterView NEW image title subtitle
146 TVPosterView NEW image title subtitle
147
148
149
150
151 TVCaptionButtonView NEW
152 TVCaptionButtonView NEW content
153 TVCaptionButtonView NEW content title subtitle
154 TVCaptionButtonView NEW content title subtitle
155 TVCaptionButtonView NEW title subtitle
156 TVCaptionButtonView NEW $9.99 title subtitle
157 TVCaptionButtonView NEW $9.99 title subtitle
158 TVCaptionButtonView NEW $9.99 title subtitle
159 TVCaptionButtonView NEW $9.99 title subtitle
160 TVCaptionButtonView NEW $9.99 title subtitle
161 TVCaptionButtonView NEW $9.99 title subtitle
162
163
164
165
166 TVCardView NEW
167 TVCardView NEW
168 TVCardView NEW
169 TVCardView NEW
170 TVCardView NEW
171
172
173
174
175 TVMonogramView NEW
176 TVMonogramView NEW content image
177 TVMonogramView NEW content image title subtitle
178 TVMonogramView NEW title subtitle
179 TVMonogramView NEW John Appleseed title subtitle
180 TVMonogramView NEW JA John Appleseed title subtitle
181 TVMonogramView NEW JA title subtitle
182 TVMonogramView NEW JA title subtitle
183 TVMonogramView NEW title subtitle
184 TVMonogramView NEW title subtitle
185
186
187 NEW
188 Poster Caption Button Card Monogram NEW
189 Common Theme NEW content
190 Common Theme NEW header content footer
191 Common Theme NEW header content footer
192 Common Theme NEW header content footer
193 TVPosterView TVCaptionButton TVCardView TVMonogramView NEW
194 TVPosterView TVCaptionButton TVCardView TVMonogramView NEW
195 NEW TVLockupView TVPosterView TVCaptionButton TVCardView TVMonogramView
196 TVLockupView NEW header content footer
197 TVLockupView NEW header content footer
198 TVLockupView NEW header content footer
199 TVLockupView NEW header content footer
200 TVLockupView NEW header content footer
201 TVLockupView Custom content NEW
202 TVLockupView Custom content 12.0, *) public protocol TVLockupViewComponent : NSObjectProtocol { optional public func updateappearance(forlockupviewstate state: UIControl.State) }
203 TVLockupView Custom content 12.0, *) public protocol TVLockupViewComponent : NSObjectProtocol { optional public func updateappearance(forlockupviewstate state: UIControl.State) }
204 TVLockupView NEW
205 TVLockupView NEW Your own widget that responds to focus
206 TVLockupView NEW Your own widget that responds to focus Customize 4 special purpose subclasses TVPosterView TVCaptionButtonView TVCardView TVMonogramView
207
208
209 TVDigitEntryViewController NEW
210 TVDigitEntryViewController NEW
211 TVDigitEntryViewController NEW
212 TVDigitEntryViewController NEW
213 TVDigitEntryViewController NEW
214 TVDigitEntryViewController NEW
215 @available(tvos 12.0, *) NEW open class TVDigitEntryViewController : UIViewController { open var entrycompletionhandler: (String) -> Swift.Void open var titletext: String? open var prompttext: String? open var issecuredigitentry: Bool open var numberofdigits: UInt } open func clearentry(animated: Bool)
216 @available(tvos 12.0, *) NEW open class TVDigitEntryViewController : UIViewController { open var entrycompletionhandler: (String) -> Swift.Void open var titletext: String? open var prompttext: String? open var issecuredigitentry: Bool open var numberofdigits: UInt } open func clearentry(animated: Bool)
217 @available(tvos 12.0, *) NEW open class TVDigitEntryViewController : UIViewController { open var entrycompletionhandler: (String) -> Swift.Void open var titletext: String? open var prompttext: String? open var issecuredigitentry: Bool open var numberofdigits: UInt } open func clearentry(animated: Bool)
218 @available(tvos 12.0, *) NEW open class TVDigitEntryViewController : UIViewController { open var entrycompletionhandler: (String) -> Swift.Void open var titletext: String? open var prompttext: String? open var issecuredigitentry: Bool open var numberofdigits: UInt } open func clearentry(animated: Bool)
219 Demo Marshall Huss, tvos Engineering
220 TVUIKit NEW
221 TVUIKit NEW Easy adoption of common UI patterns
222 TVUIKit NEW Easy adoption of common UI patterns Built-in support for localization and accessibility
223 TVUIKit NEW Easy adoption of common UI patterns Built-in support for localization and accessibility Developer Beta
224 Summary
225 Summary Password AutoFill
226 Summary Password AutoFill Focus Engine enhancement
227 Summary Password AutoFill Focus Engine enhancement TVUIKit
228 More Information tvos Lab Technology Lab 7 Wednesday 9:00AM tvos Lab Technology Lab 7 Thursday 1:00PM
229 More Information Safari, WebKit, and Password AutoFill Lab Technology Lab 3 Wednesday 2:00PM Safari, WebKit, and Password AutoFill Lab Technology Lab 4 Friday 2:45PM
230
Introducing Password AutoFill for Apps
Session App Frameworks #WWDC17 Introducing Password AutoFill for Apps Reducing friction for your users 206 Ricky Mondello, ios Engineer 2017 Apple Inc. All rights reserved. Redistribution or public display
More informationWhat s New in tvos #WWDC16. App Frameworks. Session 206. Hans Kim tvos Engineer
App Frameworks #WWDC16 What s New in tvos Session 206 Hans Kim tvos Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. Welcome
More informationExtending Your Apps with SiriKit
App Frameworks #WWDC16 Extending Your Apps with SiriKit Session 225 Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering Scott Andrus SiriKit Engineering 2016 Apple Inc. All rights reserved.
More informationAutomatic Strong Passwords and Security Code AutoFill
Session #WWDC18 Automatic Strong Passwords and Security Code AutoFill 204 Chelsea Pugh, ios Engineer Reza Abbasian, ios Engineer Harris Papadopoulos, ios Engineer 2018 Apple Inc. All rights reserved. Redistribution
More informationMastering UIKit on tvos
App Frameworks #WWDC16 Mastering UIKit on tvos Session 210 Justin Voss UIKit Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from
More informationUsing and Extending the Xcode Source Editor
Developer Tools #WWDC16 Using and Extending the Xcode Source Editor Session 414 Mike Swingler Xcode Infrastructure and Editors Chris Hanson Xcode Infrastructure and Editors 2016 Apple Inc. All rights reserved.
More informationModern User Interaction on ios
App Frameworks #WWDC17 Modern User Interaction on ios Mastering the UIKit UIGesture System Session 219 Dominik Wagner, UIKit Engineer Michael Turner, UIKit Engineer Glen Low, UIKit Engineer 2017 Apple
More informationEnhancing your apps for the next dimension of touch
App Frameworks #WWDC16 A Peek at 3D Touch Enhancing your apps for the next dimension of touch Session 228 Tyler Fox UIKit Frameworks Engineer Peter Hajas UIKit Frameworks Engineer 2016 Apple Inc. All rights
More informationios Accessibility Developing for everyone Session 201 Ian Fisch ios Accessibility
App Frameworks #WWDC15 ios Accessibility Developing for everyone Session 201 Ian Fisch ios Accessibility 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written
More informationQuick Interaction Techniques for watchos
App Frameworks #WWDC16 Quick Interaction Techniques for watchos Session 211 Tom Witkin watchos Engineer Miguel Sanchez watchos Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display
More informationLeveraging Touch Input on ios
App Frameworks #WWDC16 Leveraging Touch Input on ios And getting the most out of Apple Pencil Session 220 Dominik Wagner UIKit Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display
More informationSeamless Linking to Your App
App Frameworks #WWDC15 Seamless Linking to Your App Session 509 Conrad Shultz Safari and WebKit Software Engineer Jonathan Grynspan Core Services Software Engineer 2015 Apple Inc. All rights reserved.
More informationWhat's New in UIKit Dynamics and Visual Effects Session 229
App Frameworks #WWDC15 What's New in UIKit Dynamics and Visual Effects Session 229 Michael Turner UIKit Engineer David Duncan UIKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public
More informationMedia and Gaming Accessibility
Session System Frameworks #WWDC17 Media and Gaming Accessibility 217 Greg Hughes, Software Engineering Manager Charlotte Hill, Software Engineer 2017 Apple Inc. All rights reserved. Redistribution or public
More informationWhat s New in MapKit. App Frameworks #WWDC17. Fredrik Olsson
Session App Frameworks #WWDC17 What s New in MapKit 237 Fredrik Olsson 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. MKMapView.mapType.standard
More informationImplementing UI Designs in Interface Builder
Developer Tools #WWDC15 Implementing UI Designs in Interface Builder Session 407 Kevin Cathey Interface Builder Engineer Tony Ricciardi Interface Builder Engineer 2015 Apple Inc. All rights reserved. Redistribution
More informationWhat s New in SpriteKit
Graphics and Games #WWDC16 What s New in SpriteKit Session 610 Ross Dexter Games Technologies Engineer Clément Boissière Games Technologies Engineer 2016 Apple Inc. All rights reserved. Redistribution
More informationWhat s New in imessage Apps
Session App Frameworks #WWDC17 What s New in imessage Apps 234 Eugene Bistolas, Messages Engineer Jay Chae, Messages Engineer Stephen Lottermoser, Messages Engineer 2017 Apple Inc. All rights reserved.
More informationData Delivery with Drag and Drop
Session App Frameworks #WWDC17 Data Delivery with Drag and Drop 227 Dave Rahardja, UIKit Tanu Singhal, UIKit 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without
More informationAccessibility on ios. Developing for everyone. Frameworks #WWDC14. Session 210 Clare Kasemset ios Accessibility
Frameworks #WWDC14 Accessibility on ios Developing for everyone Session 210 Clare Kasemset ios Accessibility 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without
More informationMastering Drag and Drop
Session App Frameworks #WWDC17 Mastering Drag and Drop 213 Tom Adriaenssen, UIKit Wenson Hsieh, WebKit Robb Böhnke, UIKit 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted
More informationUsing Grouped Notifications
#WWDC18 Using Grouped Notifications Session 711 Michele Campeotto, ios User Notifications 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationAccessibility on OS X
Frameworks #WWDC14 Accessibility on OS X New Accessibility API Session 207 Patti Hoa Accessibility Engineer! Chris Dolan Accessibility Engineer 2014 Apple Inc. All rights reserved. Redistribution or public
More informationIntroducing the Modern WebKit API
Frameworks #WWDC14 Introducing the Modern WebKit API Session 206 Anders Carlsson Safari and WebKit Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written
More informationGetting the Most out of Playgrounds in Xcode
#WWDC18 Getting the Most out of Playgrounds in Xcode Session 402 Tibet Rooney-Rabdau, Xcode Engineer Alex Brown, Core OS Engineer TJ Usiyan, Xcode Engineer 2018 Apple Inc. All rights reserved. Redistribution
More informationAdvanced Notifications
System Frameworks #WWDC16 Advanced Notifications Session 708 Michele Campeotto ios Notifications 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationMonetize and Promote Your App with iad
Media #WWDC15 Monetize and Promote Your App with iad From design to launch Session 503 Carol Teng Shashank Phadke 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without
More informationBuilding Apps with Dynamic Type
Session App Frameworks #WWDC17 Building Apps with Dynamic Type 245 Clare Kasemset, Software Engineering Manager Nandini Sundar, Software Engineer 2017 Apple Inc. All rights reserved. Redistribution or
More informationNew UIKit Support for International User Interfaces
App Frameworks #WWDC15 New UIKit Support for International User Interfaces Session 222 Sara Radi Internationalization Software Engineer Aaltan Ahmad Internationalization Software Engineer Paul Borokhov
More informationWhat s New in watchos
Session App Frameworks #WWDC17 What s New in watchos 205 Ian Parks, watchos Engineering 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from
More informationAdvanced Scrollviews and Touch Handling Techniques
Frameworks #WWDC14 Advanced Scrollviews and Touch Handling Techniques Session 235 Josh Shaffer ios Apps and Frameworks Engineer Eliza Block ios Apps and Frameworks Engineer 2014 Apple Inc. All rights reserved.
More informationWhat s New in Xcode App Signing
Developer Tools #WWDC16 What s New in Xcode App Signing Developing and distributing Session 401 Joshua Pennington Tools Engineering Manager Itai Rom Tools Engineer 2016 Apple Inc. All rights reserved.
More informationCocoa Touch Best Practices
App Frameworks #WWDC15 Cocoa Touch Best Practices Session 231 Luke Hiesterman UIKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationWhat s New in NSCollectionView Session 225
App Frameworks #WWDC15 What s New in NSCollectionView Session 225 Troy Stephens Application Frameworks Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without
More informationView Controller Advancements for ios8
Frameworks #WWDC14 View Controller Advancements for ios8 Session 214 Bruce D. Nilo Manager, UIKit Fundamentals 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without
More informationimessage Apps and Stickers, Part 2
App Frameworks #WWDC16 imessage Apps and Stickers, Part 2 Interactive Messages Session 224 Alex Carter Messages Engineer Stephen Lottermoser Messages Engineer 2016 Apple Inc. All rights reserved. Redistribution
More informationIntroduction to Siri Shortcuts
#WWDC8 Introduction to Siri Shortcuts Session 2 Ari Weinstein, Siri Willem Mattelaer, Siri 208 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationTouch Bar Fundamentals
Session App Frameworks #WWDC17 Touch Bar Fundamentals 211 Chris Dreessen John Tegtmeyer 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from
More informationDesigning Great Apple Watch Experiences
Design #WWDC16 Designing Great Apple Watch Experiences Session 804 Mike Stern User Experience Evangelist 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written
More informationBuilding Visually Rich User Experiences
Session App Frameworks #WWDC17 Building Visually Rich User Experiences 235 Noah Witherspoon, Software Engineer Warren Moore, Software Engineer 2017 Apple Inc. All rights reserved. Redistribution or public
More informationINTRODUCTION TO ARCHITECTING YOUR IOS APP
INTRODUCTION TO ARCHITECTING YOUR IOS APP AGENDA Goals of software architecture Design guidelines Practical tips GOALS OF SOFTWARE ARCHITECTURE GOALS OF SOFTWARE ARCHITECTURE Code is comprehensible for
More informationWhat s New in Testing
#WWDC18 What s New in Testing Session 403 Honza Dvorsky, Xcode Engineer Ethan Vaughan, Xcode Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written
More informationWhat s New in Foundation for Swift Session 207
App Frameworks #WWDC16 What s New in Foundation for Swift Session 207 Tony Parker Foundation, Apple Michael LeHew Foundation, Apple 2016 Apple Inc. All rights reserved. Redistribution or public display
More informationWhat s New in Cocoa for macos
Session #WWDC18 What s New in Cocoa for macos 209 Ali Ozer, Cocoa Frameworks Chris Dreessen, Cocoa Frameworks Jesse Donaldson, Cocoa Frameworks 2018 Apple Inc. All rights reserved. Redistribution or public
More informationStanford CS193p. Developing Applications for ios. Winter CS193p. Winter 2017
Stanford Developing Applications for ios Today Views Custom Drawing Demo FaceView Views A view (i.e. UIView subclass) represents a rectangular area Defines a coordinate space For drawing And for handling
More informationWhat s New in Core Data?
Session App Frameworks #WWDC17 What s New in Core? Persisting since 2004 210 Melissa Turner, Core Engineer Rishi Verma, Core Engineer 2017 Apple Inc. All rights reserved. Redistribution or public display
More informationStanford CS193p. Developing Applications for ios. Spring CS193p. Spring 2016
Stanford Developing Applications for ios Today Views Custom Drawing Demo FaceView Views A view (i.e. UIView subclass) represents a rectangular area Defines a coordinate space For drawing And for handling
More informationSceneKit in Swift Playgrounds
Session Graphics and Games #WWDC17 SceneKit in Swift Playgrounds 605 Michael DeWitt, Gem Collector Lemont Washington, Draw Call Blaster 2017 Apple Inc. All rights reserved. Redistribution or public display
More informationEnabling Your App for CarPlay
Session App Frameworks #WWDC17 Enabling Your App for CarPlay 719 Albert Wan, CarPlay Engineering 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationWhat s New in CloudKit
System Frameworks #WWDC15 What s New in CloudKit Session 704 Olivier Bonnet icloud Client Eric Krugler icloud Server 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted
More informationBuilding for Voice with Siri Shortcuts
#WWDC18 Building for Voice with Siri Shortcuts Session 214 Amit Jain, Siri Ayaka Nonaka, Siri 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationlecture 10 UI/UX and Programmatic Design cs : spring 2018
lecture 10 UI/UX and Programmatic Design cs198-001 : spring 2018 1 Announcements custom app progress form due before lab (~1 minute) will be released after lecture only 2 labs left (both very important)
More informationSceneKit: What s New Session 604
Graphics and Games #WWDC17 SceneKit: What s New Session 604 Thomas Goossens, SceneKit engineer Amaury Balliet, SceneKit engineer Anatole Duprat, SceneKit engineer Sébastien Métrot, SceneKit engineer 2017
More informationBuilding Faster in Xcode
#WWDC18 Building Faster in Xcode Session 408 David Owens, Xcode Engineer Jordan Rose, Swift Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written
More informationWhat s New in ARKit 2
Session #WWDC18 What s New in ARKit 2 602 Arsalan Malik, ARKit Engineer Reinhard Klapfer, ARKit Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written
More informationBuilding Watch Apps #WWDC15. Featured. Session 108. Neil Desai watchos Engineer
Featured #WWDC15 Building Watch Apps Session 108 Neil Desai watchos Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. Agenda
More informationWhat's New in Core Spotlight
Session System Frameworks #WWDC17 What's New in Core Spotlight Search on macos and ios 231 John Hörnkvist, Spotlight Lyn Fong, Spotlight 2017 Apple Inc. All rights reserved. Redistribution or public display
More informationNew Ways to Work with Workouts
Session #WWDC18 New Ways to Work with Workouts 707 Niharika Bedekar, Fitness Software Engineer Karim Benhmida, Health Software Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display
More informationIntroducing On Demand Resources
App Frameworks #WWDC15 Introducing On Demand Resources An element of App Thinning Session 214 Steve Lewallen Frameworks Engineering Tony Parker Cocoa Frameworks 2015 Apple Inc. All rights reserved. Redistribution
More informationStanford CS193p. Developing Applications for ios. Winter CS193p. Winter 2017
Stanford Developing Applications for ios Today Error Handling in Swift try Extensions A simple, powerful, but easily overused code management syntax Protocols Last (but certainly not least important) typing
More informationWhat s New in SiriKit
Session App Frameworks #WWDC17 What s New in SiriKit 214 Sirisha Yerroju, SiriKit Engineer Tin Tran, SiriKit Engineer 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted
More informationCore ML in Depth. System Frameworks #WWDC17. Krishna Sridhar, Core ML Zach Nation, Core ML
System Frameworks #WWDC17 Core ML in Depth Krishna Sridhar, Core ML Zach Nation, Core ML 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from
More informationIntroducing the Contacts Framework
App Frameworks #WWDC15 Introducing the Contacts Framework For OS X, ios, and watchos Session 223 Bruce Stadnyk ios Contacts Engineer Dave Dribin OS X Contacts Engineer Julien Robert ios Contacts Engineer
More informationWatchKit In-Depth, Part 2
App Frameworks #WWDC15 WatchKit In-Depth, Part 2 Session 208 Nathan de Vries watchos Engineer Chloe Chang watchos Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted
More informationGetting the Most Out of HealthKit
App Frameworks #WWDC16 Getting the Most Out of HealthKit What s new and best practices Session 209 Matthew Salesi ios Software Engineer Joefrey Kibuule ios Software Engineer 2016 Apple Inc. All rights
More informationManaging Documents In Your ios Apps
Session #WWDC18 Managing Documents In Your ios Apps 216 Brandon Tennant, Software Engineer Thomas Deniau, Software Engineer Rony Fadel, Software Engineer 2018 Apple Inc. All rights reserved. Redistribution
More informationImproving your Existing Apps with Swift
Developer Tools #WWDC15 Improving your Existing Apps with Swift Getting Swifty with It Session 403 Woody L. in the Sea of Swift 2015 Apple Inc. All rights reserved. Redistribution or public display not
More informationGetting Started with CareKit
App Frameworks #WWDC16 Getting Started with CareKit Session 237 Umer Khan Software Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationStanford CS193p. Developing Applications for ios. Spring CS193p. Spring 2016
Stanford Developing Applications for ios Today Memory Management for Reference Types Controlling when things leave the heap Closure Capture Closures capture things into the heap too Extensions A simple,
More informationWhat s New in Notifications
System Frameworks #WWDC15 What s New in Notifications Session 720 Michele Campeotto ios Notifications Gokul Thirumalai Apple Push Notification Service 2015 Apple Inc. All rights reserved. Redistribution
More informationWhat s New in Swift Playgrounds
Session Developer Tools #WWDC17 What s New in Swift Playgrounds 408 Connor Wakamo, Playgrounds Engineer Grace Kendall, Playgrounds Engineer Najla Bulous, Playgrounds Engineer 2017 Apple Inc. All rights
More informationIntegrating Apps and Content with AR Quick Look
Session #WWDC18 Integrating Apps and Content with AR Quick Look 603 David Lui, ARKit Engineering Dave Addey, ARKit Engineering 2018 Apple Inc. All rights reserved. Redistribution or public display not
More informationIntroducing Swift Playgrounds
Developer Tools #WWDC16 Introducing Swift Playgrounds Exploring with Swift on ipad Session 408 Matt Patenaude Playgrounds Engineer Maxwell Swadling Playgrounds Engineer Jonathan Penn Playgrounds Engineer
More informationCreating Content with iad JS
Creating Content with iad JS Part 2 The iad JS Framework Antoine Quint iad JS Software Engineer ios Apps and Frameworks 2 Agenda Motivations and Features of iad JS Core JavaScript Enhancements Working
More informationAdvances in AVFoundation Playback
Media #WWDC16 Advances in AVFoundation Playback Waiting, looping, switching, widening, optimizing Session 503 Sam Bushell Media Systems Architect 2016 Apple Inc. All rights reserved. Redistribution or
More informationValidating HTTP Live Streams
Media #WWDC16 Validating HTTP Live Streams Session 510 Eryk Vershen Media Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
More informationWhat s New in TVMLKit
#WWDC18 What s New in TVMLKit Session 238 Jeremy Foo, tvos Engineering 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. Web Inspector
More informationA Better MVC. 300 line view controllers or bust. Dave A guy who thinks too deeply about stuff
A Better MVC 300 line view controllers or bust Dave DeLong @davedelong A guy who thinks too deeply about stuff Heads Up This is all my opinion (! hi legal & pr teams!) Lots of similar terminology View
More informationCreating Extensions for Safari
Creating Extensions for Safari Part One Timothy Hatcher Safari and WebKit Engineer 2 3 HTML5 CSS3 JavaScript Native Code 4 Cross Platform Secure Crashes 5 What You ll Learn When to make a Safari Extension
More informationMysteries of Auto Layout, Part 1
App Frameworks #WWDC15 Mysteries of Auto Layout, Part 1 Session 218 Jason Yao Interface Builder Engineer Kasia Wawer ios Keyboards Engineer 2015 Apple Inc. All rights reserved. Redistribution or public
More informationVision Framework. Building on Core ML. Media #WWDC17. Brett Keating, Apple Manager Frank Doepke, He who wires things together
Session Media #WWDC17 Vision Framework Building on Core ML 506 Brett Keating, Apple Manager Frank Doepke, He who wires things together 2017 Apple Inc. All rights reserved. Redistribution or public display
More informationCore Data Best Practices
#WWDC18 Core Data Best Practices Session 224 Scott Perry, Engineer Nick Gillett, Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationDesigning for Apple Watch
Design #WWDC15 Designing for Apple Watch Session 802 Mike Stern User Experience Evangelist 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationWhat s New in HomeKit
App Frameworks #WWDC15 What s New in HomeKit Session 210 Anush Nadathur HomeKit Engineer Naveen Kommareddi HomeKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted
More informationCreating Complications with ClockKit Session 209
App Frameworks #WWDC15 Creating Complications with ClockKit Session 209 Eliza Block watchos Engineer Paul Salzman watchos Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display
More informationView Controller Lifecycle
View Controller Lifecycle View Controllers have a Lifecycle A sequence of messages is sent to them as they progress through it Why does this matter? You very commonly override these methods to do certain
More informationCarPlay Audio and Navigation Apps
#WWDC18 CarPlay Audio and Navigation Apps Tunes and turns Jonathan Hersh, ios Car Experience Albert Wan, ios Car Experience Mike Knippers, ios Car Experience 2018 Apple Inc. All rights reserved. Redistribution
More informationStanford CS193p. Developing Applications for ios. Winter CS193p! Winter 2015
Stanford CS193p Developing Applications for ios Today Objective-C Compatibility Bridging Property List NSUserDefaults Demo: var program in CalculatorBrain Views Custom Drawing Demo FaceView Bridging Objective-C
More informationWhat s New in Device Configuration, Deployment, and Management
Session Distribution #WWDC17 What s New in Device Configuration, Deployment, and Management 304 Todd Fernandez, Senior Manager, Device Management and Server 2017 Apple Inc. All rights reserved. Redistribution
More informationCreating Great App Previews
Services #WWDC14 Creating Great App Previews Session 304 Paul Turner Sr. Operations Manager itunes Digital Supply Chain Engineering 2014 Apple Inc. All rights reserved. Redistribution or public display
More informationIntroducing SiriKit. Hey Siri, say hello to apps #WWDC16. App Frameworks. Session 217
App Frameworks #WWDC16 Introducing SiriKit Hey Siri, say hello to apps Session 217 Robby Walker SiriKit Engineering Brandon Newendorp SiriKit Engineering Corey Peterson SiriKit Design 2016 Apple Inc. All
More informationMobile Application Programing: ios. Messaging
Mobile Application Programing: ios Messaging Application Model View Controller (MVC) Application Controller User Action Update View Notify Update Model Messaging Controller User Action Update Notify Update
More informationLocalizing with Xcode 9
Session Developer Tools #WWDC17 Localizing with Xcode 9 401 Sara Radi, Software Engineer Aya Siblini, Software Engineer Chris Hanson, Software Engineer 2017 Apple Inc. All rights reserved. Redistribution
More informationSwift API Design Guidelines
Developer Tools #WWDC16 Swift API Design Guidelines The Grand Renaming Session 403 Doug Gregor Swift Engineer Michael Ilseman Swift Engineer 2016 Apple Inc. All rights reserved. Redistribution or public
More informationAnnouncements. Today s Topics
Announcements Lab 2 is due tonight by 11:59 PM Late policy is 10% of lab total per day late So -7.5 points per day late for lab 2 Labs 3 and 4 are posted on the course website Extensible Networking Platform
More informationApp Extension Best Practices
App Frameworks #WWDC15 App Extension Best Practices Session 224 Sophia Teutschler UIKit Engineer Ian Baird CoreOS Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted
More informationLocalization Best Practices on tvos
Session App Frameworks #WWDC17 Localization Best Practices on tvos 248 Joaquim Lobo Silva, Internationalization Software Engineer 2017 Apple Inc. All rights reserved. Redistribution or public display not
More informationAdapting to the New UI of OS X Yosemite
Frameworks #WWDC14 Adapting to the New UI of OS X Yosemite Session 209 Mike Stern User Experience Evangelist! Rachel Goldeen Cocoa Software Engineer! Patrick Heynen Cocoa Engineering Manager 2014 Apple
More informationContent Protection for HTTP Live Streaming
Media #WWDC15 Content Protection for HTTP Live Streaming Session 502 Roger Pantos HTTP Live Streaming Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without
More informationLogin Troubleshooting
Login Troubleshooting Scenario #1: I cannot log into my account and I am pretty sure I am using the correct credentials. Problem Solving Steps: 1. Check with your scheduler to ensure you are using the
More information