What s New in Cocoa. App Frameworks #WWDC17. Ali Ozer Daphne Larose
|
|
- Leonard Black
- 6 years ago
- Views:
Transcription
1 Session App Frameworks #WWDC17 What s New in Cocoa 207 Ali Ozer Daphne Larose 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
2 API Refinements AppKit Foundation
3 API Refinements Ali Ozer, Director, Cocoa
4 API Refinements Properties Nullability Generics Swift naming guidelines String enumerations Nested types
5 API Refinements Properties Nullability Generics Swift naming guidelines String enumerations Nested types
6 String Enumerations and Nested Types // NSSharingService, Swift 3 public let NSSharingServiceNameCompose String public let NSSharingServiceNameComposeMessage: String public let NSSharingServiceNameSendViaAirDrop: String public let NSSharingServiceNameAddToSafariReadingList: String... open class NSSharingService : NSObject {... public init?(named servicename: String) }
7 String Enumerations and Nested Types // NSSharingService, Swift 3 public let NSSharingServiceNameCompose String public let NSSharingServiceNameComposeMessage: String public let NSSharingServiceNameSendViaAirDrop: String public let NSSharingServiceNameAddToSafariReadingList: String... open class NSSharingService : NSObject {... public init?(named servicename: String) }
8 String Enumerations and Nested Types // NSSharingService, Swift 3 public let NSSharingServiceNameCompose String public let NSSharingServiceNameComposeMessage: String public let NSSharingServiceNameSendViaAirDrop: String public let NSSharingServiceNameAddToSafariReadingList: String... open class NSSharingService : NSObject {... public init?(named servicename: String) }
9 // NSSharingService, Swift 4 open class NSSharingService : NSObject {... public struct Name : RawRepresentable, Equatable, Hashable { }... public init?(named servicename: NSSharingService.Name) } extension NSSharingService.Name { public static let compose NSSharingService.Name public static let composemessage: NSSharingService.Name public static let sendviaairdrop: NSSharingService.Name public static let addtosafarireadinglist: NSSharingService.Name... }
10 // NSSharingService, Swift 4 open class NSSharingService : NSObject {... public struct Name : RawRepresentable, Equatable, Hashable { }... public init?(named servicename: NSSharingService.Name) } extension NSSharingService.Name { public static let compose NSSharingService.Name public static let composemessage: NSSharingService.Name public static let sendviaairdrop: NSSharingService.Name public static let addtosafarireadinglist: NSSharingService.Name... }
11 // NSSharingService, Swift 4 open class NSSharingService : NSObject {... public struct Name : RawRepresentable, Equatable, Hashable { }... public init?(named servicename: NSSharingService.Name) } extension NSSharingService.Name { public static let compose NSSharingService.Name public static let composemessage: NSSharingService.Name public static let sendviaairdrop: NSSharingService.Name public static let addtosafarireadinglist: NSSharingService.Name... }
12 // NSSharingService, Swift 4 open class NSSharingService : NSObject {... public struct Name : RawRepresentable, Equatable, Hashable { }... public init?(named servicename: NSSharingService.Name) } extension NSSharingService.Name { public static let compose NSSharingService.Name public static let composemessage: NSSharingService.Name public static let sendviaairdrop: NSSharingService.Name public static let addtosafarireadinglist: NSSharingService.Name... }
13 // Swift 3 let s = NSSharingService(named: NSSharingServiceNameCompose ) // Swift 4 let s = NSSharingService(named:.compose )
14 // Swift 3 let s = NSSharingService(named: NSSharingServiceNameCompose ) // Swift 4 let s = NSSharingService(named:.compose )
15 // Swift 3 let s = NSSharingService(named: NSSharingServiceNameCompose ) // Swift 4 let s = NSSharingService(named:.compose )
16 // Swift 3 let s = NSSharingService(named: NSSharingServiceNameCompose ) // Swift 4 let s = NSSharingService(named:.compose )
17 // Swift 3 let s = NSSharingService(named: NSSharingServiceNameCompose ) // Swift 4 let s = NSSharingService(named:.compose )
18 Source Compatibility Objective-C
19 Source Compatibility Objective-C typedef NSString *NSSharingServiceName NS_EXTENSIBLE_STRING_ENUM; APPKIT_EXTERN NSSharingServiceName const NSSharingServiceNameCompose ; APPKIT_EXTERN NSSharingServiceName const NSSharingServiceNameComposeMessage; APPKIT_EXTERN NSSharingServiceName const NSSharingServiceNameSendViaAirDrop; APPKIT_EXTERN NSSharingServiceName const NSSharingServiceNameAddToSafariReadingList;...
20 Source Compatibility Objective-C typedef NSString *NSSharingServiceName NS_EXTENSIBLE_STRING_ENUM; APPKIT_EXTERN NSSharingServiceName const NSSharingServiceNameCompose ; APPKIT_EXTERN NSSharingServiceName const NSSharingServiceNameComposeMessage; APPKIT_EXTERN NSSharingServiceName const NSSharingServiceNameSendViaAirDrop; APPKIT_EXTERN NSSharingServiceName const NSSharingServiceNameAddToSafariReadingList;... Source compatible
21 Source Compatibility Swift
22 Source Compatibility Swift // Swift 3 public let NSSharingServiceNameCompose String...
23 Source Compatibility Swift // Swift 3 public let NSSharingServiceNameCompose String... // Swift 4 public static let compose NSSharingService.Name...
24 Source Compatibility Swift // Swift 3 public let NSSharingServiceNameCompose String... // Swift 4 public static let compose NSSharingService.Name... Source compatible in Swift 3 mode
25 Source Compatibility Swift // Swift 3 public let NSSharingServiceNameCompose String... // Swift 4 public static let compose NSSharingService.Name... Source compatible in Swift 3 mode Migrator for moving to Swift 4
26 AppKit
27
28 Touch Bar
29 Touch Bar Escape Control Strip
30 Touch Bar Escape Application Region Control Strip
31 Multi-Touch Input Device with Retina Display
32 Multi-Touch Input Device with Retina Display
33 Context Sensitive
34 Context Sensitive
35 Context Sensitive
36 Context Sensitive
37 Context Sensitive
38 Context Sensitive
39 Customizable
40 Customizable
41 Customizable
42 Customizable
43 Customizable
44 Customizable
45 Customizable
46 Customizable
47 Customizable
48
49
50
51
52 Unobstructed Access to Content
53 Unobstructed Access to Content
54 Touch Bar Updates NSColorPickerTouchBarItem NSGroupTouchBarItem Playground
55 Touch Bar Color Pickers
56 Touch Bar Color Pickers
57 Touch Bar Color Pickers
58 New Color Pickers
59 New Color Pickers
60 New Color Pickers
61 New Color Pickers
62 New Color Pickers
63 New Color Pickers
64 New Color Pickers
65 New Color Pickers
66 New Color Pickers
67 NSColorPickerTouchBarItem
68 NSColorPickerTouchBarItem open class NSColorPickerTouchBarItem : NSTouchBarItem {... open var allowedcolorspaces: [NSColorSpace]? }
69 NSColorPickerTouchBarItem
70 NSColorPickerTouchBarItem colorpicker.allowedcolorspaces = [.genericcmyk]
71 NSColorPickerTouchBarItem colorpicker.allowedcolorspaces = [.genericcmyk] colorpicker.allowedcolorspaces = [.genericgamma22gray]
72 NSGroupTouchBarItem Constructor for alert style
73 NSGroupTouchBarItem Constructor for alert style
74 NSGroupTouchBarItem Constructor for alert style
75 NSGroupTouchBarItem Constructor for alert style open class NSGroupTouchBarItem... {... public init(alertstylegroupitemwithidentifier: NSTouchBarItem.Identifier) }
76 NSGroupTouchBarItem Constructor for alert style Ability to specify compression options
77 NSGroupTouchBarItem Constructor for alert style Ability to specify compression options
78 NSGroupTouchBarItem Constructor for alert style Ability to specify compression options
79 NSGroupTouchBarItem Constructor for alert style Ability to specify compression options
80 NSGroupTouchBarItem Constructor for alert style Ability to specify compression options open class NSGroupTouchBarItem... {... open var prioritizedcompressionoptions: [NSUserInterfaceCompressionOptions] }
81 NSGroupTouchBarItem Constructor for alert style Ability to specify compression options Support for right-to-left interfaces
82 NSGroupTouchBarItem Constructor for alert style Ability to specify compression options Support for right-to-left interfaces
83 NSGroupTouchBarItem Constructor for alert style Ability to specify compression options Support for right-to-left interfaces
84 NSGroupTouchBarItem Constructor for alert style Ability to specify compression options Support for right-to-left interfaces
85 NSGroupTouchBarItem Constructor for alert style Ability to specify compression options Support for right-to-left interfaces open class NSGroupTouchBarItem... {... open var groupuserinterfacelayoutdirection: NSUserInterfaceLayoutDirection }
86 Playground Support
87
88
89 NSTouchBar Sessions and Lab Touch Bar Fundamentals Grand Ballroom A Wednesday 10:00AM Advanced Touch Bar Grand Ballroom A Wednesday 5:10PM Cocoa Touch Bar Lab Technology Lab C Thursday 9:00-11:00AM
90 Document Sharing In Sierra, we introduced: public static let cloudsharing: NSSharingService.Name
91
92
93
94
95
96
97
98
99
100
101
102 Zero
103
104
105 Document Sharing
106 Document Sharing open class NSDocument... {... open var allowsdocumentsharing: Bool { get } open func share(with sharingservice: NSSharingService, completionhandler: ((Bool) -> Void)? = nil) open func prepare(_ sharingservicepicker: NSSharingServicePicker) }
107 Document Sharing open class NSDocument... {... open var allowsdocumentsharing: Bool { get } open func share(with sharingservice: NSSharingService, completionhandler: ((Bool) -> Void)? = nil) open func prepare(_ sharingservicepicker: NSSharingServicePicker) }
108 Document Sharing open class NSDocument... {... open var allowsdocumentsharing: Bool { get } open func share(with sharingservice: NSSharingService, completionhandler: ((Bool) -> Void)? = nil) open func prepare(_ sharingservicepicker: NSSharingServicePicker) }
109 Document Sharing open class NSDocument... {... open var allowsdocumentsharing: Bool { get } open func share(with sharingservice: NSSharingService, completionhandler: ((Bool) -> Void)? = nil) open func prepare(_ sharingservicepicker: NSSharingServicePicker) }
110 Document Sharing open class NSDocument... {... open var allowsdocumentsharing: Bool { get } open func share(with sharingservice: NSSharingService, completionhandler: ((Bool) -> Void)? = nil) open func prepare(_ sharingservicepicker: NSSharingServicePicker) } open class NSDocumentController... {... open var allowsautomaticsharemenu: Bool { get } open func standardsharemenuitem() -> NSMenuItem }
111 Document Sharing open class NSDocument... {... open var allowsdocumentsharing: Bool { get } open func share(with sharingservice: NSSharingService, completionhandler: ((Bool) -> Void)? = nil) open func prepare(_ sharingservicepicker: NSSharingServicePicker) } open class NSDocumentController... {... open var allowsautomaticsharemenu: Bool { get } open func standardsharemenuitem() -> NSMenuItem }
112 Document Sharing open class NSDocument... {... open var allowsdocumentsharing: Bool { get } open func share(with sharingservice: NSSharingService, completionhandler: ((Bool) -> Void)? = nil) open func prepare(_ sharingservicepicker: NSSharingServicePicker) } open class NSDocumentController... {... open var allowsautomaticsharemenu: Bool { get } open func standardsharemenuitem() -> NSMenuItem }
113 Tabbed Windows
114 Tabbed Windows
115 Tabbed Windows
116 Tab Overview
117 Tab Overview
118 Tab Overview
119 Tab Overview
120 NSWindowTab open class NSWindowTab : NSObject { open var title: open var attributedtitle: NSAttributedString? open var tooltip: String! open var accessoryview: NSView? }
121 NSWindowTab open class NSWindowTab : NSObject { open var title: open var attributedtitle: NSAttributedString? open var tooltip: String! open var accessoryview: NSView? }
122 NSWindowTab open class NSWindowTab : NSObject { open var title: open var attributedtitle: NSAttributedString? open var tooltip: String! open var accessoryview: NSView? }
123 NSWindowTab open class NSWindowTab : NSObject { open var title: open var attributedtitle: NSAttributedString? open var tooltip: String! open var accessoryview: NSView? }
124 NSWindowTab open class NSWindowTab : NSObject { open var title: open var attributedtitle: NSAttributedString? open var tooltip: String! open var accessoryview: NSView? }
125 NSWindowTabGroup open class NSWindowTabGroup : NSObject { open var identifier: NSWindow.TabbingIdentifier { get } open var isoverviewvisible: Bool open var istabbarvisible: Bool { get } open var windows: [NSWindow] { get } weak open var selectedwindow: NSWindow? } open func addwindow(_ window: NSWindow) open func insertwindow(_ window: NSWindow, at index: Int) open func removewindow(_ window: NSWindow)
126 NSWindowTabGroup open class NSWindowTabGroup : NSObject { open var identifier: NSWindow.TabbingIdentifier { get } open var isoverviewvisible: Bool open var istabbarvisible: Bool { get } open var windows: [NSWindow] { get } weak open var selectedwindow: NSWindow? } open func addwindow(_ window: NSWindow) open func insertwindow(_ window: NSWindow, at index: Int) open func removewindow(_ window: NSWindow)
127 NSWindowTabGroup open class NSWindowTabGroup : NSObject { open var identifier: NSWindow.TabbingIdentifier { get } open var isoverviewvisible: Bool open var istabbarvisible: Bool { get } open var windows: [NSWindow] { get } weak open var selectedwindow: NSWindow? } open func addwindow(_ window: NSWindow) open func insertwindow(_ window: NSWindow, at index: Int) open func removewindow(_ window: NSWindow)
128 NSWindowTabGroup open class NSWindowTabGroup : NSObject { open var identifier: NSWindow.TabbingIdentifier { get } open var isoverviewvisible: Bool open var istabbarvisible: Bool { get } open var windows: [NSWindow] { get } weak open var selectedwindow: NSWindow? } open func addwindow(_ window: NSWindow) open func insertwindow(_ window: NSWindow, at index: Int) open func removewindow(_ window: NSWindow)
129 Opening URLs
130 Opening URLs public protocol NSApplicationDelegate {... optional func application(_ application: NSApplication, open urls: [URL]) }
131 NSCollectionView Prefetching
132 NSCollectionView
133 NSCollectionView Visible Items
134 NSCollectionView Visible Items
135 NSCollectionView Visible Items
136 NSCollectionView Visible Items Prefetched Items
137 NSCollectionView Prefetching open class NSCollectionView... {... weak open var prefetchdatasource: NSCollectionViewPrefetching? }
138 NSCollectionView Prefetching open class NSCollectionView... {... weak open var prefetchdatasource: NSCollectionViewPrefetching? } public protocol NSCollectionViewPrefetching... { public func collectionview(_ collectionview: NSCollectionView, prefetchitemsat: [IndexPath]) optional public func collectionview(_ collectionview: NSCollectionView, cancelprefetchingforitemsat: [IndexPath]) }
139 NSCollectionView Prefetching open class NSCollectionView... {... weak open var prefetchdatasource: NSCollectionViewPrefetching? } public protocol NSCollectionViewPrefetching... { public func collectionview(_ collectionview: NSCollectionView, prefetchitemsat: [IndexPath]) optional public func collectionview(_ collectionview: NSCollectionView, cancelprefetchingforitemsat: [IndexPath]) }
140 NSCollectionView Prefetching open class NSCollectionView... {... weak open var prefetchdatasource: NSCollectionViewPrefetching? } public protocol NSCollectionViewPrefetching... { public func collectionview(_ collectionview: NSCollectionView, prefetchitemsat: [IndexPath]) optional public func collectionview(_ collectionview: NSCollectionView, cancelprefetchingforitemsat: [IndexPath]) }
141 System Colors
142 System Colors open class NSColor... {... open class var systemblue: NSColor { get } open class var systembrown: NSColor { get } open class var systemgray: NSColor { get } open class var systemgreen: NSColor { get } open class var systemorange: NSColor { get } open class var systempink: NSColor { get } open class var systempurple: NSColor { get } open class var systemred: NSColor { get } open class var systemyellow: NSColor { get } }
143 System Colors open class NSColor... {... open class var systemblue: NSColor { get } open class var systembrown: NSColor { get } open class var systemgray: NSColor { get } open class var systemgreen: NSColor { get } open class var systemorange: NSColor { get } open class var systempink: NSColor { get } open class var systempurple: NSColor { get } open class var systemred: NSColor { get } open class var systemyellow: NSColor { get } }
144 Older Standard Colors Now in srgb
145 Older Standard Colors Now in srgb open class NSColor... { open class var red: NSColor { get } /* 1.0, 0.0, 0.0 RGB */ open class var green: NSColor { get } /* 0.0, 1.0, 0.0 RGB */ open class var yellow: NSColor { get } /* 1.0, 1.0, 0.0 RGB */... open class var gray: NSColor { get } /* 0.5 white */ open class var lightgray: NSColor { get } /* white */ open class var white: NSColor { get } /* 1.0 white */ }
146 Older Standard Colors Now in srgb open class NSColor... { open class var red: NSColor { get } /* 1.0, 0.0, 0.0 RGB */ open class var green: NSColor { get } /* 0.0, 1.0, 0.0 RGB */ open class var yellow: NSColor { get } /* 1.0, 1.0, 0.0 RGB */... open class var gray: NSColor { get } /* 0.5 white */ open class var lightgray: NSColor { get } /* white */ open class var white: NSColor { get } /* 1.0 white */ } These now use srgb or genericgamma22gray
147 Older Standard Colors Now in srgb open class NSColor... { open class var red: NSColor { get } /* 1.0, 0.0, 0.0 RGB */ open class var green: NSColor { get } /* 0.0, 1.0, 0.0 RGB */ open class var yellow: NSColor { get } /* 1.0, 1.0, 0.0 RGB */... open class var gray: NSColor { get } /* 0.5 white */ open class var lightgray: NSColor { get } /* white */ open class var white: NSColor { get } /* 1.0 white */ } These now use srgb or genericgamma22gray For apps linked against the SDK or later
148 Older Standard Colors Now in srgb Generic RGB open class NSColor... { open class var red: NSColor { get } /* 1.0, 0.0, 0.0 RGB */ open class var green: NSColor { get } /* 0.0, 1.0, 0.0 RGB */ open class var yellow: NSColor { get } /* 1.0, 1.0, 0.0 RGB */... open class var gray: NSColor { get } /* 0.5 white */ open class var lightgray: NSColor { get } /* white */ open class var white: NSColor { get } /* 1.0 white */ } These now use srgb or genericgamma22gray For apps linked against the SDK or later
149 Older Standard Colors Now in srgb Generic RGB srgb open class NSColor... { open class var red: NSColor { get } /* 1.0, 0.0, 0.0 RGB */ open class var green: NSColor { get } /* 0.0, 1.0, 0.0 RGB */ open class var yellow: NSColor { get } /* 1.0, 1.0, 0.0 RGB */... open class var gray: NSColor { get } /* 0.5 white */ open class var lightgray: NSColor { get } /* white */ open class var white: NSColor { get } /* 1.0 white */ } These now use srgb or genericgamma22gray For apps linked against the SDK or later
150 Colors in Asset Catalogs
151 Colors in Asset Catalogs
152 Colors in Asset Catalogs
153 Colors in Asset Catalogs open class NSColor... {... public init?(named name: NSColor.Name) public init?(named name: NSColor.Name, bundle: NSBundle?) }
154 NSAccessibilityCustomRotor
155 NSAccessibilityCustomRotor
156 NSAccessibilityCustomRotor public protocol NSAccessibility... {... func accessibilitycustomrotors() -> [NSAccessibilityCustomRotor] }
157 Property Clean-Up
158 Property Clean-Up // // NSWindow unowned(unsafe) open var firstresponder: NSResponder { get } // NSBox unowned(unsafe) open var contentview: NSView?...
159 Property Clean-Up // // NSWindow unowned(unsafe) open var firstresponder: NSResponder { get } // NSBox unowned(unsafe) open var contentview: NSView?... // // NSWindow weak open var firstresponder: NSResponder? { get } // NSBox open var contentview: NSView?...
160 Property Clean-Up // // NSWindow unowned(unsafe) open var firstresponder: NSResponder { get } // NSBox unowned(unsafe) open var contentview: NSView?... // // NSWindow weak open var firstresponder: NSResponder? { get } // NSBox open var contentview: NSView?...
161 Text
162 Text Improved handling of orphan text in NSTextField
163 Text Improved handling of orphan text in NSTextField CGGlyph-based APIs in NSFont, NSBezierPath
164 Text Improved handling of orphan text in NSTextField CGGlyph-based APIs in NSFont, NSBezierPath NSFontAssetRequest for downloading fonts
165 Text Improved handling of orphan text in NSTextField CGGlyph-based APIs in NSFont, NSBezierPath NSFontAssetRequest for downloading fonts Nastaliq script
166 Text Improved handling of orphan text in NSTextField CGGlyph-based APIs in NSFont, NSBezierPath NSFontAssetRequest for downloading fonts Nastaliq script
167 Text Improved handling of orphan text in NSTextField CGGlyph-based APIs in NSFont, NSBezierPath NSFontAssetRequest for downloading fonts Nastaliq script
168 Honorable Mentions
169 Honorable Mentions NSSegmentedControl alignment and distribution properties
170 Honorable Mentions NSSegmentedControl alignment and distribution properties NSLevelIndicator new look and API refinements
171 Honorable Mentions NSSegmentedControl alignment and distribution properties NSLevelIndicator new look and API refinements NSMenuItem allowskeyequivalentwhenhidden
172 Honorable Mentions NSSegmentedControl alignment and distribution properties NSLevelIndicator new look and API refinements NSMenuItem allowskeyequivalentwhenhidden NSTableView automatic variable row heights
173 Honorable Mentions NSSegmentedControl alignment and distribution properties NSLevelIndicator new look and API refinements NSMenuItem allowskeyequivalentwhenhidden NSTableView automatic variable row heights Asynchronous restorable state encoding
174 Honorable Mentions NSSegmentedControl alignment and distribution properties NSLevelIndicator new look and API refinements NSMenuItem allowskeyequivalentwhenhidden NSTableView automatic variable row heights Asynchronous restorable state encoding Improved handling of large items during dragging
175 Honorable Mentions NSSegmentedControl alignment and distribution properties NSLevelIndicator new look and API refinements NSMenuItem allowskeyequivalentwhenhidden NSTableView automatic variable row heights Asynchronous restorable state encoding Improved handling of large items during dragging Drawers - drop them
176 Container Views in Cocoa
177 Container Views in Cocoa NSBrowser NSTableView NSOutlineView NSCollectionView NSStackView NSGridView
178 Container Views in Cocoa NSBrowser NSTableView NSOutlineView NSCollectionView NSStackView NSGridView Choosing the Right Cocoa Container View Grand Ballroom A Wednesday 3:10PM
179
180 print(obj)
181
182 NSView and NSWindow.print() Renamed open class NSView... { }... open func printview(_ sender: Any?) open class NSWindow... { }... open func printwindow(_ sender: Any?)
183 NSView and NSWindow.print() Renamed open class NSView... { }... open func printview(_ sender: Any?) open class NSWindow... { }... open func printwindow(_ sender: Any?) Cocoa Development Tips Hall 2 Friday 9:00AM
184 Tweet Your Tips! Cocoa Development Tips Hall 2 Friday 9:00AM
185 Tweet Your Tips! Use #WWDC17 and #cocoatip Cocoa Development Tips Hall 2 Friday 9:00AM
186 Foundation Daphne Larose, Foundation
187 What s New in Foundation
188 What s New in Foundation Better support for key paths
189 What s New in Foundation Better support for key paths Encoding and Decoding in Swift
190 Improved Key Paths
191 Improved Key Paths New literal syntax
192 Improved Key Paths New literal syntax Type-safe
193 Improved Key Paths New literal syntax Type-safe Performant
194 Improved Key Paths New literal syntax Type-safe Performant #keypath(basetype.propertyname)
195 Improved Key Paths New literal syntax Type-safe Performant #keypath(basetype.propertyname) \BaseType.propertyName
196 Block-based Key-Value class DogOwner : NSObject dynamic var name: dynamic var dog: Dog? } var daphne = DogOwner(name: "Daphne") let observation = daphne.observe(\dogowner.dog) { (observed, change) in print("congrats on your new puppy \(observed.dogname)!") }
197 Block-based Key-Value class DogOwner : NSObject dynamic var name: dynamic var dog: Dog? } var daphne = DogOwner(name: "Daphne") let observation = daphne.observe(\dogowner.dog) { (observed, change) in print("congrats on your new puppy \(observed.dogname)!") }
198 Encoding and Decoding in Swift
199 Encoding and Decoding in Swift Swift types JSON, Property lists, etc.
200 Encoding and Decoding in Swift Swift types JSON, Property lists, etc. Deeply customizable
201 Encoding and Decoding in Swift Swift types JSON, Property lists, etc. Deeply customizable Easy to use
202 Encoding and Decoding in Swift Swift types JSON, Property lists, etc. Deeply customizable Easy to use struct Dog : Codable { let dogname: String let breed: BreedType }
203 Encoding and Decoding in Swift Swift types JSON, Property lists, etc. Deeply customizable Easy to use struct Dog : Codable { let dogname: String let breed: BreedType }
204 Related Session What s New in Foundation Hall 2 Wednesday 11:00AM
205 What s New in Foundation What s New in Foundation Hall 2 Wednesday 11:00AM
206 What Else is New in Foundation
207 What Else is New in Foundation New and enhanced API Available on both macos and ios
208 NSXPCConnection Can advertise intent to publish progress
209 NSXPCConnection Can advertise intent to publish MyServerProtocol -(void)performrequestwithreply:(void(^)(bool
210 NSXPCConnection Can advertise intent to publish MyServerProtocol -(NSProgress *)performrequestwithreply:(void(^)(bool
211 NSXPCConnection Can advertise intent to publish MyServerProtocol -(NSProgress *)performrequestwithreply:(void(^)(bool
212 NSXPCConnection Can advertise intent to publish MyServerProtocol -(NSProgress *)performrequestwithreply:(void(^)(bool Return progress before you reply
213 NSXPCConnection Can advertise intent to publish MyServerProtocol -(NSProgress *)performrequestwithreply:(void(^)(bool Return progress before you reply Updates performed asynchronously
214 URLSession
215 URLSession var sessionconfig = URLSessionConfiguration.default sessionconfig.waitsforconnectivity = true
216 URLSession var sessionconfig = URLSessionConfiguration.default sessionconfig.waitsforconnectivity = true Multipath TCP now available on ios
217 URLSession var sessionconfig = URLSessionConfiguration.default sessionconfig.waitsforconnectivity = true Multipath TCP now available on ios URLSessionTask supports NSProgressReporting protocol
218 URLSession var sessionconfig = URLSessionConfiguration.default sessionconfig.waitsforconnectivity = true Multipath TCP now available on ios URLSessionTask supports NSProgressReporting protocol Advances in Networking, Part 2 Executive Ballroom Wednesday 4:10PM
219 NSFileProviderService
220 NSFileProviderService Apps File Providers
221 NSFileProviderService Apps File Providers Discover file providers for any URL with NSFileManager
222 NSFileProviderService Apps File Providers Discover file providers for any URL with NSFileManager Apps can use file provider s specialized services
223 NSFileProviderService Apps File Providers Discover file providers for any URL with NSFileManager Apps can use file provider s specialized services File Provider Enhancements Hall 3 Friday 11:00AM
224 File Provider Communication
225 File Provider MyServerProtocol -(NSProgress *)performrequestwithreply:(void(^)(bool
226 File Provider Communication App File Provider
227 File Provider Communication App performrequestwithreply: File Provider
228 File Provider Communication App File Provider
229 File Provider Communication App Returns NSProgress File Provider
230 File Provider Communication App File Provider
231 File Provider Communication Downloads file App File Provider
232 File Provider Communication Downloads file App Updates progress File Provider
233 File Provider Communication App File Provider
234 File Provider Communication Download finishes App File Provider
235 File Provider Communication Download finishes App Updates progress File Provider
236 File Provider Communication App File Provider
237 File Provider Communication App File Provider Replies with requested file
238 Improved Available Storage Space API Check for available space more accurately public struct URLResourceValues { public var volumeavailablecapacityforimportantusage: Int64? { get } public var volumeavailablecapacityforopportunisticusage: Int64? { get } }
239 Improved Available Storage Space API Free Opportunistic Important
240 Improved Available Storage Space API Free Opportunistic Important
241 Improved Available Storage Space API Free Opportunistic Important
242 Improved Available Storage Space API Free Opportunistic Important
243 Improved Available Storage Space API Preflight check let fileurl = URL(fileURLWithPath: "/Path/to/file") let set: Set<URLResourceKey> = [URLResourceKey.volumeAvailableCapacityForOpportunisticUsageKey] if let fileresourcevalues = try? fileurl.resourcevalues(forkeys: set) { if (fileresourcevalues.volumeavailablecapacityforopportunisticusagekey > ) { // download additional file } }
244 Improved Available Storage Space API Preflight check let fileurl = URL(fileURLWithPath: "/Path/to/file") let set: Set<URLResourceKey> = [URLResourceKey.volumeAvailableCapacityForOpportunisticUsageKey] if let fileresourcevalues = try? fileurl.resourcevalues(forkeys: set) { if (fileresourcevalues.volumeavailablecapacityforopportunisticusagekey > ) { // download additional file } }
245 NSLinguisticTagger
246 NSLinguisticTagger Tagging a unit
247 NSLinguisticTagger Tagging a unit "Foundation is really cool. We write lots of code.\n"
248 NSLinguisticTagger Tagging a unit "Foundation is really cool. We write lots of code.\n" Word
249 NSLinguisticTagger Tagging a unit "Foundation is really cool. We write lots of code.\n" Sentence
250 NSLinguisticTagger Tagging a unit "Foundation is really cool. We write lots of code.\n" Paragraph
251 NSLinguisticTagger Tagging a unit be lot "Foundation is really cool. We write lots of code.\n" Lemmatization
252 NSLinguisticTagger
253 NSLinguisticTagger Redone and improved
254 NSLinguisticTagger Redone and improved Common case convenience methods added
255 NSLinguisticTagger Redone and improved Common case convenience methods added let text = "Ich weiß nicht was soll es bedeuten." let language = NSLinguisticTagger.dominantLanguage(for: text) // "de"
256 NSLinguisticTagger Redone and improved Common case convenience methods added let text = "Ich weiß nicht was soll es bedeuten." let language = NSLinguisticTagger.dominantLanguage(for: text) // "de" Natural Language Processing and your Apps Hall 3 Wednesday 9:00AM
257 JSONSerialization Supports sorted keys
258 JSONSerialization Supports sorted keys let dict = ["a": 1, "b": 2, "c": 3, "d": 4]
259 JSONSerialization Supports sorted keys let dict = ["a": 1, "b": 2, "c": 3, "d": 4] var data = try JSONSerialization.data(withJSONObject: dict, options: []) // {"b":2,"a":1,"c":3,"d":4}
260 JSONSerialization Supports sorted keys let dict = ["a": 1, "b": 2, "c": 3, "d": 4] var data = try JSONSerialization.data(withJSONObject: dict, options: []) // {"b":2,"a":1,"c":3,"d":4} data = try JSONSerialization.data(withJSONObject: dict, options:.sortedkeys)
261 JSONSerialization Supports sorted keys let dict = ["a": 1, "b": 2, "c": 3, "d": 4] var data = try JSONSerialization.data(withJSONObject: dict, options: []) // {"b":2,"a":1,"c":3,"d":4} data = try JSONSerialization.data(withJSONObject: dict, options:.sortedkeys) // {"a":1,"b":3,"c":4,"d":2}
262 NSItemProvider More explicit operations Supports progress and cancellation Enhance your custom classes to work with multiple representations
263 NSItemProvider More explicit operations Supports progress and cancellation Enhance your custom classes to work with multiple representations Data Delivery with Drag and Drop Hall 2 Thursday 10:00AM
264 NSUserActivity open class NSUserActivity : NSObject { open var webpageurl: URL?
265 NSUserActivity open class NSUserActivity : NSObject { open var webpageurl: URL? open var referrerurl: URL? // Set URL of webpage that referred webpageurl }
266 Failable APIs Better error handling Additional convenience methods that take URLs
267 Process Launching // NSTask +(nullable NSTask *)launchedtaskwithexecutableurl:(nsurl *)url arguments:(nsarray<nsstring *> *)arguments error:(out NSError ** _Nullable)error terminationhandler:(void(^_nullable)(nstask *))terminationhandler; // Process, Swift 4 open class func run(_ url: URL, arguments: [String], terminationhandler: ((Process) -> Void)? = nil) throws -> Process
268 NSDictionary and NSArray +(nullable NSDictionary<NSString*, ObjectType>*)dictionaryWithContentsOfURL:(NSURL *)url error:(nserror **)error; +(nullable NSArray<ObjectType>*)arrayWithContentsOfURL:(NSURL *)url error:(nserror **)error; -(BOOL)writeToURL:(NSURL *)url error:(nserror **)error;
269 NSLocalizedFailureErrorKey Customize what failed while keeping why it failed
270 NSLocalizedFailureErrorKey Customize what failed while keeping why it failed
271 NSLocalizedFailureErrorKey Customize what failed while keeping why it failed
272 NSRange Range let greeting: String = "hello there swift" let re = NSRegularExpression(pattern: "[sw]ift") var found: String = ""
273 NSRange Range let greeting: String = "hello there swift" let re = NSRegularExpression(pattern: "[sw]ift") var found: String = "" let nsrange = NSRange(string.indices, in: string) for match in re.matches(in: string, range: nsrange) {
274 NSRange Range let greeting: String = "hello there swift" let re = NSRegularExpression(pattern: "[sw]ift") var found: String = "" let nsrange = NSRange(string.indices, in: string) for match in re.matches(in: string, range: nsrange) {
275 NSRange Range let greeting: String = "hello there swift" let re = NSRegularExpression(pattern: "[sw]ift") var found: String = "" let nsrange = NSRange(string.indices, in: string) for match in re.matches(in: string, range: nsrange) {
276 NSRange Range let greeting: String = "hello there swift" let re = NSRegularExpression(pattern: "[sw]ift") var found: String = "" let nsrange = NSRange(string.indices, in: string) for match in re.matches(in: string, range: nsrange) {
277 NSRange Range let greeting: String = "hello there swift" let re = NSRegularExpression(pattern: "[sw]ift") var found: String = "" let nsrange = NSRange(string.indices, in: string) for match in re.matches(in: string, range: nsrange) {
278 NSRange Range let greeting: String = "hello there swift" let re = NSRegularExpression(pattern: "[sw]ift") var found: String = "" let nsrange = NSRange(string.indices, in: string) for match in re.matches(in: string, range: nsrange) { found.append(range(match.rangeat(1), in: string)!) }
279 Performance Improvements
280 Performance Improvements Copy-on-write NSArray, NSDictionary, NSSet
281 Performance Improvements Copy-on-write NSArray, NSDictionary, NSSet struct Data inlining
282 Performance Improvements Copy-on-write NSArray, NSDictionary, NSSet struct Data inlining Faster calendrical calculations with lower peak memory
283 Performance Improvements Copy-on-write NSArray, NSDictionary, NSSet struct Data inlining Faster calendrical calculations with lower peak memory Faster bridging of NSNumber to and from Swift
284 Performance Improvements Copy-on-write NSArray, NSDictionary, NSSet struct Data inlining Faster calendrical calculations with lower peak memory Faster bridging of NSNumber to and from Swift Efficient Interactions with Frameworks Hall 2 Friday 1:50PM
285 NSArchiver and NSUnarchiver NSArchiver and NSUnarchiver replaced in 10.4 Now formally deprecated Old formats still supported Use NSKeyedArchiver
286 Additional Mentions
287 Additional Mentions Core Data highlights
288 Additional Mentions Core Data highlights Core Spotlight available on macos
289 Additional Mentions Core Data highlights Core Spotlight available on macos Thermal Notifications available on ios
290 Additional Mentions Core Data highlights Core Spotlight available on macos Thermal Notifications available on ios What s New in Cocoa Touch Hall 3 Tuesday 10:20AM What s New in Core Data Grand Ballroom B Wednesday 10:00AM What's New in Core Spotlight for ios and macos Grand Ballroom B Thursday 4:10PM
291 Wrap-Up API Refinements AppKit Foundation
292 Wrap-Up API Refinements AppKit Foundation Release Notes
293 More Information
294 Reminder Tweet your Cocoa development tips! Use #WWDC17 and #cocoatip Cocoa Development Tips Hall 2 Friday 9:00AM
295 Related Sessions What s New in Swift Hall 3 Tuesday 1:50PM Natural Language Processing and your Apps Hall 3 Wednesday 9:00AM What s New in Core Data Grand Ballroom B Wednesday 10:00AM Touch Bar Fundamentals Grand Ballroom A Wednesday 10:00AM What s New in Foundation Hall 2 Wednesday 11:00AM Choosing the Right Cocoa Container View Grand Ballroom A Wednesday 3:10PM Advances in Networking, Part 2 Executive Ballroom Wednesday 4:10PM
296 Related Sessions Advanced Touch Bar Grand Ballroom A Wednesday 5:10PM What's New in Core Spotlight for ios and macos Grand Ballroom B Thursday 4:10PM Cocoa Development Tips Hall 2 Friday 9:00AM File Provider Enhancements Hall 3 Friday 11:00AM Efficient Interactions with Frameworks Hall 2 Friday 1:50PM
297 Labs Cocoa Lab Technology Lab C Wed 11:00AM-1:00PM Foundation Lab Technology Lab C Wed 1:00-3:10PM Core Data Lab Technology Lab C Wed 3:10-5:30PM Cocoa Touch Bar Lab Technology Lab C Thu 9:00-11:00AM Text and Fonts Lab Technology Lab H Thu 1:50-3:50PM Core Data Lab Technology Lab H Thu 4:10-6:00PM Cocoa Lab Technology Lab B Fri 1:50-3:30PM
298
What 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 informationWhat s New in Cocoa #WWDC16. App Frameworks. Session 203
App Frameworks #WWDC16 What s New in Cocoa Session 203 Ali Ozer Director, Cocoa Frameworks Raleigh Ledet Event Wrangler, Cocoa Frameworks Taylor Kelly Engineer, Cocoa Frameworks 2016 Apple Inc. All rights
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 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 informationCocoa Development Tips
Session App Frameworks #WWDC17 Cocoa Development Tips Twenty-nine things you may not know about Cocoa 236 Rachel Goldeen, Cocoa Engineer Vincent Hittson, Cocoa Engineer 2017 Apple Inc. All rights reserved.
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 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 informationAdopting Advanced Features of the New UI
Frameworks #WWDC14 Adopting Advanced Features of the New UI Session 220 Chris Dreessen AppKit Software Engineer! Corbin Dunn AppKit Software Engineer 2014 Apple Inc. All rights reserved. Redistribution
More informationWhat s New in Cocoa #WWDC14. Frameworks. Session 204 Ali Ozer Director of Cocoa Frameworks
Frameworks #WWDC14 What s New in Cocoa Session 204 Ali Ozer Director of Cocoa Frameworks 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from
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 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 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 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 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 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 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 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 informationCreating Audio Apps for watchos
Session #WWDC18 Creating Audio Apps for watchos 504 Neil Desai, watchos Frameworks Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationCS 371L - Mobile Computing (ios) Dr. William C. Bulko. CS 371L Mobile Computing (ios) Introduction
CS 371L - Mobile Computing (ios) Dr. William C. Bulko CS 371L Mobile Computing (ios) Introduction 2014 The Evolution of Computing Mainframes Minicomputers - fridge-size PCs - desktop and deskside Laptops
More informationIntroducing the Photos Frameworks
Media #WWDC14 Introducing the Photos Frameworks Session 511 Adam Swift ios Photos Frameworks 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
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 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 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 informationFinding Bugs Using Xcode Runtime Tools
Session Developer Tools #WWDC17 Finding Bugs Using Xcode Runtime Tools 406 Kuba Mracek, Program Analysis Engineer Vedant Kumar, Compiler Engineer 2017 Apple Inc. All rights reserved. Redistribution or
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 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 informationWhat s New in LLDB. Debug your way to fame and glory #WWDC15. Developer Tools. Session 402
Developer Tools #WWDC15 What s New in LLDB Debug your way to fame and glory Session 402 Kate Stone Software Behavioralist Sean Callanan Master of Expressions Enrico Granata Data Wizard 2015 Apple Inc.
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 informationUnderstanding Undefined Behavior
Session Developer Tools #WWDC17 Understanding Undefined Behavior 407 Fred Riss, Clang Team Ryan Govostes, Security Engineering and Architecture Team Anna Zaks, Program Analysis Team 2017 Apple Inc. All
More informationCS193E Lecture 7. Document-based Applications NSTableView Key-Value Coding
CS193E Lecture 7 Document-based Applications NSTableView Key-Value Coding Agenda Questions? Review: delegates, MVC Document-based apps Table views Key Value Coding Model, View, Controller Controller Model
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 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 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 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 informationlecture 6 Closures, Networking, CocoaPods
lecture 6 Closures, Networking, CocoaPods cs198-001 : spring 2018 announcements no new lab this week - continuation of Pokedex lab + custom app workday (attendance still required) Pokedex due Wednesday
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 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 informationCross Platform Nearby Networking
Core OS #WWDC14 Cross Platform Nearby Networking Session 709 Demijan Klinc Software Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
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 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 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 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 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 informationCS193E Lecture 12. Formatters Cocoa Text More View Drawing
CS193E Lecture 12 Formatters Cocoa Text More View Drawing Quick Scroll View Demo Announcements Questions on previous material or assignment? If you don t get a grade by Sunday, please let us know Some
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 informationStoryboards and Controllers on OS X
Frameworks #WWDC14 Storyboards and Controllers on OS X Contain yourself Session 212 Mike Swingler Interface Builder Engineer Raleigh Ledet AppKit Engineer 2014 Apple Inc. All rights reserved. Redistribution
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 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 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 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 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 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 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 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 informationUser Interfaces. Lecture 15. Application Programming on Mac OS. Hamza Bennani September 4, 2018
User Interfaces Lecture 15 Application Programming on Mac OS Hamza Bennani hamza@hamzabennani.com September 4, 2018 Logistics Office hours: Tue/Thu, 2pm to 3pm. Office: 250 Geoff Wyvill. Acknowledgment:
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 informationCloudKit Tips And Tricks
System Frameworks #WWDC15 CloudKit Tips And Tricks Session 715 Nihar Sharma CloudKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationWhen we re first learning Cocoa (or Java, or Qt, or any other application framework),
MacDevCenter http://www.macdevcenter.com/lpt/a/4752 6 April 2004 The Cocoa Controller Layer by Michael Beam When we re first learning Cocoa (or Java, or Qt, or any other application framework), one of
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 informationEngineering for Testability
Session Developer Tools #WWDC17 Engineering for Testability 414 Brian Croom, Xcode Engineer Greg Tracy, Xcode Engineer 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted
More informationJavaScript for Automation
Services #WWDC14 JavaScript for Automation Session 306 Sal Soghoian Product Manger Automation Technologies 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written
More informationObjective-C Primer. iphone Programmer s Association. Lorenzo Swank September 10, 2008
Objective-C Primer iphone Programmer s Association Lorenzo Swank September 10, 2008 Disclaimer Content was blatantly and unapologetically stolen from the WWDC 2007 Fundamentals of Cocoa session, as well
More informationIntroducing MusicKit. Media #WWDC17. Tim Parthemore, MusicKit Services Joel Lopes Da Silva, ios Music
Session Media #WWDC17 Introducing MusicKit 502 Tim Parthemore, MusicKit Services Joel Lopes Da Silva, ios Music 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without
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 informationWhat s New in Swift #WWDC18. Ted Kremenek, Languages & Runtimes Manager Slava Pestov, Swift Compiler Engineer
Session #WWDC18 What s New in Swift 401 Ted Kremenek, Languages & Runtimes Manager Slava Pestov, Swift Compiler Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted
More informationAdvanced Cocoa Text Tips and Tricks. Aki Inoue Cocoa Engineer
Advanced Cocoa Text Tips and Tricks Aki Inoue Cocoa Engineer 2 Introduction Only on Mac OS Diving deeper Understanding the layout process Getting comfortable with extending and customizing base functionalities
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 informationCocoa Tips and Tricks
Cocoa Tips and Tricks Cool Cocoa code Corbin Dunn Cocoa Software Engineer 2 Introduction Quick and cool Cocoa tips and tricks Learn new things you may not know Focused mostly on AppKit classes 3 What You
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 informationCUSTOM VIEWS. The View Hierarchy. Chapter 12
Chapter 12 CUSTOM VIEWS A ll the visible objects in an application are either windows or views. In this chapter, you will create a subclass of NSView. From time to time, you will create a custom view to
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 informationYour Apps and the Future of macos Security
#WWDC18 Your Apps and the Future of macos Security Pierre-Olivier Martel, Security Engineering Manager Kelly Yancey, OS Security Garrett Jacobson, Trusted Execution 2018 Apple Inc. All rights reserved.
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 informationWhat s New in Core Bluetooth
Session System Frameworks #WWDC17 What s New in Core Bluetooth 712 Craig Dooley, Bluetooth Engineer Duy Phan, Bluetooth Engineer 2017 Apple Inc. All rights reserved. Redistribution or public display not
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 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 informationApple offers a number of resources where you can get Xcode development support:!
Xcode Release Notes About Xcode 6.1 beta 2 Supported Configurations Xcode 6.1 requires a Mac running OS X 10.9.4 or OS X 10.10. It includes SDKs for ios 8 and OS X versions 10.9 and 10.10. To develop apps
More informationThread Sanitizer and Static Analysis
Developer Tools #WWDC16 Thread Sanitizer and Static Analysis Help with finding bugs in your code Session 412 Anna Zaks Manager, Program Analysis Team Devin Coughlin Engineer, Program Analysis Team 2016
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 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 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 informationSWIFT! init(title: String) { self.title = title } // required initializer w/ named parameter
SWIFT! class Session { let title: String // constant non-optional field: can never be null and can never be changed var instruktør: Person? // variable optional field: null is permitted var attendees:
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 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 informationMonday, 1 November The ios System
The ios System System Overview System Overview System Overview System Overview System Overview System Overview Foundation Classes (Useful) Foundation Framework Value and collection classes User defaults
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 informationStanford CS193p. Developing Applications for ios Fall Stanford CS193p. Fall 2013
Developing Applications for ios -14 Today What is this class all about? Description Prerequisites Homework / Final Project ios Overview What s in ios? MVC Object-Oriented Design Concept Objective C (Time
More informationIntroduction to PyObjC
Author Bob Ippolito Conference Introduction to PyObjC PyCon DC, March 2005 Intended Audience Python developers using Mac OS X 10.3 or later Spies from the Linux and Win32 camps Hopefully a GNUstep porter/maintainer
More informationCOMP327 Mobile Computing Session: Lecture Set 1a - Swift Introduction and the Foundation Framework Part 2
COMP327 Mobile Computing Session: 2018-2019 Lecture Set 1a - Swift Introduction and the Foundation Framework Part 2 73 Other Swift Guard Already seen that for optionals it may be necessary to test that
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 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 informationPorting Objective-C to Swift. Richard Ekle
Porting Objective-C to Swift Richard Ekle rick@ekle.org Why do we need this? 1.2 million apps in the ios App Store http://www.statista.com/statistics/276623/numberof-apps-available-in-leading-app-stores/
More informationIntroducing Metal 2. Graphics and Games #WWDC17. Michal Valient, GPU Software Engineer Richard Schreyer, GPU Software Engineer
Session Graphics and Games #WWDC17 Introducing Metal 2 601 Michal Valient, GPU Software Engineer Richard Schreyer, GPU Software Engineer 2017 Apple Inc. All rights reserved. Redistribution or public display
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 informationDeveloping Applications for ios
Developing Applications for ios Lecture 10: Managing and Storing Data Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Content Property Lists Archiving
More informationWhat s New in tvos 12
#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. Agenda Agenda
More informationios Application Development Lecture 2: Seminar and Unit 1
ios Application Development Lecture 2: Seminar and Unit 1 Dr. Simon Völker & Philipp Wacker Media Computing Group RWTH Aachen University Winter Semester 2017/2018 http://hci.rwth-aachen.de/ios Swift 18
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 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 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 information