What s New in LLDB. Debug your way to fame and glory #WWDC15. Developer Tools. Session 402
|
|
- Lilian Henry
- 5 years ago
- Views:
Transcription
1 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. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
2 The Year s Highlights Changes big and small
3 Since WWDC 2014
4 Since WWDC 2014 Shipped Swift debugger
5 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL
6 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise
7 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements
8 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements Swift types show inherited Objective-C fields
9 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements Swift types Help includes command aliases
10 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements Swift types help Help includes command aliases
11 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements Swift types help Help includes command aliases
12 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements Swift types help Help includes command aliases expression -O --
13 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements Swift types help Help includes command aliases expression -O -- po
14 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements Swift types help Help includes command aliases Improved data formatting expression -O -- po
15 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements Swift types help Help includes command aliases Improved data formatting expression -O -- po - Set<T>, NSIndexPath
16 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements Swift types help Help includes command aliases Improved data formatting expression -O -- po - Set<T>, NSIndexPath printf() prototype for expressions
17 Since WWDC 2014 Shipped Swift debugger Shipped Swift REPL LLDB in disguise Numerous improvements Swift types help Help includes command aliases Improved data formatting expression -O -- po - Set<T>, NSIndexPath printf() prototype for expressions Improved disassembly
18 Recent Breakpoint Enhancements Named breakpoints Multiple non-unique names allowed Other breakpoint commands take names
19 Recent Breakpoint Enhancements Named breakpoints breakpoint set -N name Multiple non-unique names allowed Other breakpoint commands take names
20 Recent Breakpoint Enhancements Named breakpoints breakpoint set -N name Multiple non-unique names allowed Other breakpoint commands take names breakpoint enable name breakpoint disable name breakpoint delete name
21 Recent Breakpoint Enhancements Named breakpoints breakpoint set -N name Multiple non-unique names allowed Other breakpoint commands take names breakpoint enable name Breakpoints in ~/.lldbinit Create default breakpoints when LLDB starts Inherited by all debug targets breakpoint disable name breakpoint delete name
22 Recent Breakpoint Enhancements Named breakpoints breakpoint set -N name Multiple non-unique names allowed Other breakpoint commands take names breakpoint enable name Breakpoints in ~/.lldbinit Create default breakpoints when LLDB starts Inherited by all debug targets breakpoint disable name breakpoint delete name breakpoint set -n malloc -N memory breakpoint set -n free -N memory breakpoint disable memory
23 Xcode 7
24 Xcode 7 Improvements in expression evaluation Swift 2 support Objective-C module support
25 Xcode 7 Improvements in expression evaluation Swift 2 support Objective-C module support Improved data formatters Vector types in Objective-C and Swift Custom data formatters written in Swift
26 Xcode 7 Improvements in expression evaluation Swift 2 support Objective-C module support Improved data formatters Vector types in Objective-C and Swift Custom data formatters written in Swift Address Sanitizer integration
27 Xcode 7 Improvements in expression evaluation memory history Swift 2 support Objective-C module support memory read Improved data formatters Vector types in Objective-C and Swift Custom data formatters written in Swift memory write memory find Address Sanitizer integration
28 Xcode 7 Improvements in expression evaluation memory history Swift 2 support Objective-C module support memory read Improved data formatters Vector types in Objective-C and Swift Custom data formatters written in Swift memory write memory find Address Sanitizer integration Type lookup command Built-in type documentation
29 Type Lookup
30 Type Lookup (lldb)
31 Type Lookup (lldb) type lookup ErrorType protocol ErrorType { var _domain: Swift.String { get } var _code: Swift.Int { get } } (lldb)
32 Type Lookup (lldb) type lookup ErrorType protocol ErrorType { var _domain: Swift.String { get } var _code: Swift.Int { get } } (lldb) type lookup Comparable protocol Comparable : _Comparable, Equatable { func <=(lhs: Self, rhs: Self) -> Swift.Bool func >=(lhs: Self, rhs: Self) -> Swift.Bool func >(lhs: Self, rhs: Self) -> Swift.Bool }
33 Type Lookup (lldb) type lookup ErrorType protocol ErrorType { var _domain: Swift.String { get } type lookup var _code: Swift.Int { get } } (lldb) type lookup Comparable protocol Comparable : _Comparable, Equatable { func <=(lhs: Self, rhs: Self) -> Swift.Bool func >=(lhs: Self, rhs: Self) -> Swift.Bool func >(lhs: Self, rhs: Self) -> Swift.Bool }
34 Compilers in LLDB Making Swift and Objective-C better and easier to debug
35 Overview Objective-C expression improvements Swift error-handling support
36 Overview Objective-C expression improvements Swift error-handling support
37 Objective-C and Swift in LLDB Obj-C
38 Objective-C and Swift in LLDB Obj-C
39 Objective-C and Swift in LLDB Obj-C
40 Objective-C and Swift in LLDB Obj-C
41 How Swift Works in LLDB (lldb)
42 How Swift Works in LLDB (lldb) p for i in (0..<5) { print(i) }
43 How Swift Works in LLDB (lldb) p for i in (0..<5) { print(i) } expression -- p
44 How Swift Works in LLDB (lldb) p for i in (0..<5) { print(i) } expression -- p
45 How Swift Works in LLDB LLDB Your Program (lldb) p for i in (0..<5) { print(i) } expression -- p
46 How Swift Works in LLDB Swift LLDB Your Program (lldb) p for i in (0..<5) { print(i) } expression -- p
47 How Swift Works in LLDB Swift LLDB Added Code Your Program (lldb) p for i in (0..<5) { print(i) } expression -- p
48 How Swift Works with Your Variables Swift LLDB Added Code Your Program (lldb)
49 How Swift Works with Your Variables Swift LLDB Added Code Your Program (lldb) p for i in (0..<3) { print(names[i]) }
50 How Swift Works with Your Variables Swift LLDB Added Code Your Program (lldb) p for i in (0..<3) { print(names[i]) } Kate Sean Enrico
51 How Swift Works with Your Variables Swift Added Code Data LLDB Your Program (lldb) p for i in (0..<3) { print( names[i]) } Kate Sean Enrico
52 How Swift Works with the SDK Swift Added Code Data LLDB Your Program (lldb)
53 How Swift Works with the SDK Swift Added Code Data LLDB Your Program (lldb) p NSApplication.sharedApplication()
54 How Swift Works with the SDK Swift Added Code Data LLDB Your Program (lldb) p NSApplication.sharedApplication() (NSApplication) $R1 = 0x { AppKit.NSResponder = { NSObject = { isa = NSApplication } _nextresponder = nil } }
55 How Swift Works with the SDK Swift Added Code Data LLDB Your Program SDK Module (lldb) p NSApplication.sharedApplication() (NSApplication) $R1 = 0x { AppKit.NSResponder = { NSObject = { isa = NSApplication } _nextresponder = nil } }
56 How Swift Works with the SDK Swift Added Code Data Class LLDB Your Program SDK Module (lldb) p NSApplication.sharedApplication() (NSApplication) $R1 = 0x { AppKit.NSResponder = { NSObject = { isa = NSApplication } _nextresponder = nil } }
57 It s All Automatic!
58 It s All Automatic! in Swift
59 Let s Try the Same Thing in Objective-C! (lldb)
60 Let s Try the Same Thing in Objective-C! (lldb) p NSLog(@ %d, i)
61 Let s Try the Same Thing in Objective-C! (lldb) p NSLog(@ %d, i) error: 'NSLog' has unknown return type; cast the call to its declared return type error: 1 errors parsing expression
62 Let s Try the Same Thing in Objective-C! (lldb) p NSLog(@ %d, i) error: 'NSLog' has unknown return type; cast the call to its declared return type error: 1 errors parsing expression How it s defined What LLDB sees void NSLog(NSString *format,...)??? NSLog(...)
63 Let s Try the Same Thing in Objective-C! (lldb) p NSLog(@ %d, i) :50: DemoApp[58380: ] 0
64 Let s Try the Same Thing in Objective-C! (lldb)
65 Let s Try the Same Thing in Objective-C! (lldb) p NSMakeRect(0, 0, 10, 10)
66 Let s Try the Same Thing in Objective-C! (lldb) p NSMakeRect(0, 0, 10, 10) error: use of undeclared identifier NSMakeRect error: 1 errors parsing expression
67 Let s Try the Same Thing in Objective-C! (lldb) p NSMakeRect(0, 0, 10, 10) error: use of undeclared identifier NSMakeRect error: 1 errors parsing expression NS_INLINE NSRect NSMakeRect( How it s defined CGFloat, CGFloat, CGFloat, CGFloat) What LLDB sees
68 Let s Try the Same Thing in Objective-C! (lldb) p NSMakeRect(0, 0, 10, 10) (NSRect) $0 = (origin = (x = 0, y = 0), size = (width = 10, height = 10))
69 Let s Try the Same Thing in Objective-C! (lldb)
70 Let s Try the Same Thing in Objective-C! (lldb) p [NSApplication sharedapplication].undomanager
71 Let s Try the Same Thing in Objective-C! (lldb) p [NSApplication sharedapplication].undomanager error: property undomanager not found on object of type id error: 1 errors parsing expression
72 Let s Try the Same Thing in Objective-C! (lldb) p [NSApplication sharedapplication].undomanager error: property undomanager not found on object of type id error: 1 errors parsing expression How it s defined What LLDB sees -(NSApplication*)sharedApplication -(id)sharedapplication
73 Let s Try the Same Thing in Objective-C! (lldb) p [NSApplication sharedapplication].undomanager (NSUndoManager * nullable) $1 = nil
74 The Information Is Right There!
75 The Information Is Right There! Your Code names, MyFunc(), MyView
76 The Information Is Right There! Your Code names, MyFunc(), MyView SDK Functions NSLog, NSMakeRect
77 The Information Is Right There! Your Code names, MyFunc(), MyView SDK Functions NSLog, NSMakeRect SDK Classes NSView, NSApplication *
78 The Information Is Right There! Your Code names, MyFunc(), MyView SDK Functions NSLog, NSMakeRect SDK Classes NSView, NSApplication * SDK Constants NSASCIIStringEncoding
79 The Information Is Right There! Your Code names, MyFunc(), MyView SDK Functions NSLog, NSMakeRect SDK Classes NSView, NSApplication * SDK Constants NSASCIIStringEncoding Macros INT_MAX, MAX()
80 The Information Is Right There! Your Code names, MyFunc(), MyView SDK Functions NSLog, NSMakeRect SDK Classes NSView, NSApplication * SDK Constants NSASCIIStringEncoding Macros INT_MAX, MAX()
81 The Information Is Right There! Your Code names, MyFunc(), MyView SDK Functions NSLog, NSMakeRect SDK Classes NSView, NSApplication SDK Constants NSASCIIStringEncoding Macros INT_MAX, MAX()
82 AppKit
83 UIKit
84 Overview Objective-C expression improvements Swift error-handling support
85 Handling Errors in Swift Expressions
86 Handling Errors in Swift Expressions Expressions can handle Swift errors
87 Handling Errors in Swift Expressions Expressions can handle Swift errors No need to try in LLDB
88 Handling Errors in Swift Expressions Expressions can handle Swift errors No need to try in LLDB (lldb)
89 Handling Errors in Swift Expressions Expressions can handle Swift errors No need to try in LLDB (lldb) expr ThisFunctionThrows()
90 Handling Errors in Swift Expressions Expressions can handle Swift errors No need to try in LLDB (lldb) expr ThisFunctionThrows() (a.enumerror) $E0 = SeriousError
91 Handling Errors in Swift Expressions Expressions can handle Swift errors No need to try in LLDB (lldb) expr ThisFunctionThrows() (a.enumerror) $E0 = SeriousError Works in the REPL, too!
92 Handling Errors in Swift Expressions Expressions can handle Swift errors No need to try in LLDB (lldb) expr ThisFunctionThrows() (a.enumerror) $E0 = SeriousError Works in the REPL, too! 1>
93 Handling Errors in Swift Expressions Expressions can handle Swift errors No need to try in LLDB (lldb) expr ThisFunctionThrows() (a.enumerror) $E0 = SeriousError Works in the REPL, too! 1> ThisFunctionThrows()
94 Handling Errors in Swift Expressions Expressions can handle Swift errors No need to try in LLDB (lldb) expr ThisFunctionThrows() (a.enumerror) $E0 = SeriousError Works in the REPL, too! 1> ThisFunctionThrows() $E0: EnumError = MyError
95 Stopping When Swift Errors Occur
96 Stopping When Swift Errors Occur Use breakpoints
97 Stopping When Swift Errors Occur Use breakpoints On Objective-C exceptions
98 Stopping When Swift Errors Occur Use breakpoints On Objective-C exceptions (lldb)
99 Stopping When Swift Errors Occur Use breakpoints On Objective-C exceptions (lldb) br s -E objc
100 Stopping When Swift Errors Occur Use breakpoints On Objective-C exceptions breakpoint set -E language (lldb) br s -E objc
101 Stopping When Swift Errors Occur Use breakpoints On Objective-C exceptions breakpoint set -E language (lldb) br s -E objc Breakpoint 1: where = libobjc.a.dylib`objc_exception_throw, address = 0x00007fff9046bd18
102 Stopping When Swift Errors Occur Use breakpoints On Objective-C exceptions breakpoint set -E language (lldb) br s -E objc Breakpoint 1: where = libobjc.a.dylib`objc_exception_throw, address = 0x00007fff9046bd18 On Swift errors
103 Stopping When Swift Errors Occur Use breakpoints On Objective-C exceptions breakpoint set -E language (lldb) br s -E objc Breakpoint 1: where = libobjc.a.dylib`objc_exception_throw, address = 0x00007fff9046bd18 On Swift errors (lldb)
104 Stopping When Swift Errors Occur Use breakpoints On Objective-C exceptions breakpoint set -E language (lldb) br s -E objc Breakpoint 1: where = libobjc.a.dylib`objc_exception_throw, address = 0x00007fff9046bd18 On Swift errors (lldb) br s -E swift
105 Stopping When Swift Errors Occur Use breakpoints On Objective-C exceptions breakpoint set -E language (lldb) br s -E objc Breakpoint 1: where = libobjc.a.dylib`objc_exception_throw, address = 0x00007fff9046bd18 On Swift errors (lldb) br s -E swift Breakpoint 1: where = libswiftcore.dylib`swift_willthrow, address = 0x f71e0
106 Stopping on Specific Errors
107 Stopping on Specific Errors Supported for Swift
108 Stopping on Specific Errors Supported for Swift (lldb)
109 Stopping on Specific Errors Supported for Swift (lldb) br s -E swift -O EnumError Breakpoint 1: where = libswiftcore.dylib`swift_willthrow, (lldb) address = 0x f71e0
110 Stopping on Specific Errors Supported for Swift (lldb) br s -E swift -O EnumError Breakpoint 1: where = libswiftcore.dylib`swift_willthrow, (lldb) address = 0x f71e0 breakpoint set -E language -O type-name
111 Stopping on Specific Errors Supported for Swift (lldb) br s -E swift -O EnumError Breakpoint 1: where = libswiftcore.dylib`swift_willthrow, (lldb) address = 0x f71e0 continue 25 if input > { -> 27 throw EnumError.ImportantError 28 } 29 else if input > { breakpoint set -E language -O type-name
112 Of Course, You Can Still Catch Them 1>
113 Of Course, You Can Still Catch Them 1> import Foundation 2>
114 Of Course, You Can Still Catch Them 1> import Foundation 2> do { throw NSError(domain: My domain, code: 0, userinfo:nil) } catch let x { print(x) }
115 Of Course, You Can Still Catch Them 1> import Foundation 2> do { throw NSError(domain: My domain, code: 0, userinfo:nil) } catch let x { print(x) } Error Domain=My domain Code=0 The operation couldn t be completed. (My domain error 0.)
116 Presentation Is Everything Formatted data is comprehended data
117 Examining Data
118 Examining Data frame variable
119 Examining Data frame variable expression --
120 Examining Data frame variable expression -- p
121 Examining Data frame variable expression -- p expression -O --
122 Examining Data frame variable expression -- p expression -O -- po
123 The Frame Variable Command
124 The Frame Variable Command frame variable
125 The Frame Variable Command (lldb) frame variable (Int, String) mytuple = (0 = 12, 1 = Hello World ) (Int) theyear = 1984 frame variable
126 The Frame Variable Command (lldb) frame variable (Int, String) mytuple = (0 = 12, 1 = Hello World ) (Int) theyear = 1984 (lldb) frame variable theyear (Int) theyear = 1984 frame variable
127 The Frame Variable Command (lldb) frame variable (Int, String) mytuple = (0 = 12, 1 = Hello World ) (Int) theyear = 1984 (lldb) frame variable theyear (Int) theyear = 1984 frame variable (lldb) frame variable -format hex theyear (Int) theyear = 0x c0
128 The Frame Variable Command (lldb) frame variable (Int, String) mytuple = (0 = 12, 1 = Hello World ) (Int) theyear = 1984 children (lldb) frame variable theyear (Int) theyear = 1984 frame variable (lldb) frame variable -format hex theyear (Int) theyear = 0x c0
129 The Expression Command
130 The Expression Command expression -- p
131 The Expression Command (lldb) p theyear + 1 (Int) $R0 = 1985 expression -- p
132 The Expression Command (lldb) p theyear + 1 (Int) $R0 = 1985 (lldb) p String($R0 + 1) (String) $R1 = 1986 expression -- p
133 The Expression Command (lldb) p theyear + 1 (Int) $R0 = 1985 (lldb) p String($R0 + 1) (String) $R1 = 1986 expression -- p (lldb) expr -format hex - [1,2,3] ([Int]) $R0 = 3 values { [0] = 0x [1] = 0x [2] = 0x }
134 The Expression Command (lldb) p theyear + 1 (Int) $R0 = 1985 (lldb) p String($R0 + 1) (String) $R1 = 1986 expression -- p (lldb) expr -format hex - [1,2,3] ([Int]) $R0 = 3 values { [0] = 0x [1] = 0x [2] = 0x } children
135 The po Command
136 The po Command expression -O -- po
137 The po Command (lldb) po [[MyView alloc] initwithframe: myframe] <MyView: 0x > expression -O -- po
138 The po Command (lldb) po [[MyView alloc] initwithframe: myframe] <MyView: 0x > < NSArrayI 0x10050b2a0>( 1, 2, 3 ) expression -O -- po
139 The po Command (lldb) po [[MyView alloc] initwithframe: myframe] <MyView: 0x > < NSArrayI 0x10050b2a0>( 1, 2, 3 ) expression -O -- po (lldb) Hello World Hello World
140 Formatting Models
141 Formatting Models frame variable expression -- p expression -O -- po does not run code runs your code runs your code uses LLDB formatters uses LLDB formatters + code to format object
142 Formatting Models frame variable expression -- p expression -O -- po does not run code runs your code runs your code uses LLDB formatters uses LLDB formatters + code to format object
143 Formatting Models frame variable expression -- p expression -O -- po does not run code runs your code runs your code uses LLDB formatters uses LLDB formatters + code to format object
144 Formatting Models
145 Formatting Models Out-of-process formatting Data and formatter are separate Easy access to debugger s object model Easier to keep program state intact
146 Formatting Models Out-of-process formatting Data and formatter are separate Easy access to debugger s object model Easier to keep program state intact In-process formatting Data and formatter live together Easy access to your object model Care required to keep program state intact
147 In-Process Swift Formatting
148 In-Process Swift Formatting Powers playgrounds since day one
149 In-Process Swift Formatting Powers playgrounds since day one Now Public API Also powers LLDB po command
150 In-Process Swift Formatting
151 In-Process Swift Formatting Four Swift protocols
152 In-Process Swift Formatting Four Swift protocols CustomStringConvertible CustomDebugStringConvertible CustomPlaygroundQuickLookable CustomReflectable
153 In-Process Swift Formatting Four Swift protocols CustomStringConvertible CustomDebugStringConvertible CustomPlaygroundQuickLookable CustomReflectable Partial opt-in possible
154 CustomStringConvertible String representation of the object Used by the print() function, and string interpolation
155 CustomStringConvertible String representation of the object Used by the print() function, and string interpolation struct BottlesOfBeer : CustomStringConvertible { var Count: Int var description: String { return \(Count) bottles of beer on the wall } }
156 CustomDebugStringConvertible Debugger-specific String representation of the object Used by debugprint() (and print() if necessary)
157 CustomDebugStringConvertible Debugger-specific String representation of the object Used by debugprint() (and print() if necessary) extension BottlesOfBeer : CustomDebugStringConvertible { var debugdescription: String { return \(Count) bottles of stout on the wall. } }
158 CustomPlaygroundQuickLookable Graphical representation for display in playgrounds
159 CustomPlaygroundQuickLookable
160 CustomReflectable
161 CustomReflectable Allows vending an entirely custom children hierarchy
162 CustomReflectable Allows vending an entirely custom children hierarchy Returns a Mirror for an object Representation of an object s structure
163 Temperature Data
164 Temperature Data struct Timestamp { var Hour: Int var Minute: Int } struct TemperatureData { var Time: Timestamp var Temperature: Float }
165 Temperature Data struct Timestamp { var Hour: Int var Minute: Int } struct TemperatureData { var Time: Timestamp var Temperature: Float } let Temps = [ TemperatureData(Time: Timestamp(Hour: 6, Minute: 30), Temperature: 10), TemperatureData(Time: Timestamp(Hour: 18, Minute: 30), Temperature: 34) ]
166 Temperature Data
167 Temperature Data (lldb) po Temps
168 Temperature Data (lldb) po Temps 2 elements [0] : TemperatureData Time : Timestamp - Hour : 6 - Minute : 30 - Temperature : 10 [1] : TemperatureData Time : Timestamp - Hour : 18 - Minute : 30 - Temperature : 34
169 Temperature Data (lldb) po Temps 2 elements [0] : TemperatureData Time : Timestamp - Hour : 6 - Minute : 30 - Temperature : 10 [1] : TemperatureData Time : Timestamp - Hour : 18 - Minute : 30 - Temperature : 34 Time on one line, AM/PM format
170 Temperature Data (lldb) po Temps 2 elements [0] : TemperatureData Time : Timestamp - Hour : 6 - Minute : 30 - Temperature : 10 [1] : TemperatureData Time : Timestamp - Hour : 18 - Minute : 30 - Temperature : 34 Temperature in F Time on one line, AM/PM format
171 Step 1: Time on One Line
172 Step 1: Time on One Line extension Timestamp : CustomStringConvertible { var description: String { let formatter = NSDateFormatter() formatter.datestyle = NSDateFormatterStyle.NoStyle formatter.timestyle = NSDateFormatterStyle.ShortStyle formatter.timezone = NSTimeZone(forSecondsFromGMT: 0) let date = NSDate(timeIntervalSince1970: NSTimeInterval(60 * (Minute + (60*Hour)))) return formatter.stringfromdate(date) } }
173 Step 2: Fahrenheit Degrees
174 Step 2: Fahrenheit Degrees extension TemperatureData : CustomReflectable { func custommirror() -> Mirror { return Mirror(self, children: [ Time : \(Time), Temp C : Temperature, Temp F : 1.8*Temperature+32 } } ])
175 Step 2: Fahrenheit Degrees extension TemperatureData : CustomReflectable { func custommirror() -> Mirror { return Mirror(self, children: [ Time : \(Time), CustomStringConvertible from previous slide Temp C : Temperature, Temp F : 1.8*Temperature+32 } } ])
176 Temperature Data
177 Temperature Data (lldb) po Temps
178 Temperature Data (lldb) po Temps 2 elements [0] : TemperatureData - Time : 6:30 AM - Temp C : 10 - Temp F : 50 [1] : TemperatureData - Time : 6:30 PM - Temp C : 34 - Temp F : 93.2
179 Temperature Data (lldb) po Temps 2 elements [0] : TemperatureData - Time : 6:30 AM - Temp C : 10 - Temp F : 50 [1] : TemperatureData - Time : 6:30 PM - Temp C : 34 - Temp F : 93.2 That s hot!
180 At Runtime Too! Conformances can also be added while debugging
181 At Runtime Too! Conformances can also be added while debugging but not changed
182 At Runtime Too! Conformances can also be added while debugging but not changed They can also be added in the REPL
183 And in Playgrounds!
184 And in Playgrounds!
185 Summary
186 Summary More information available more often
187 Summary More information available more often Objective-C runtime
188 Summary More information available more often Objective-C runtime SDK modules
189 Summary More information available more often Objective-C runtime SDK modules In-process formatting
190 More Information LLDB Documentation Swift Language Documentation Apple Developer Forums Stefan Lesser Developer Tools Evangelist
191 Related Sessions Authoring Rich Playgrounds Presidio Wednesday 10:00AM Advanced Debugging and the Address Sanitizer Mission Friday 9:00AM
192
Advanced Debugging and the Address Sanitizer
Developer Tools #WWDC15 Advanced Debugging and the Address Sanitizer Finding your undocumented features Session 413 Mike Swingler Xcode UI Infrastructure Anna Zaks LLVM Program Analysis 2015 Apple Inc.
More informationOptimizing Swift Performance Session 409
Developer Tools #WWDC15 Optimizing Swift Performance Session 409 Nadav Rotem Manager, Swift Performance Team Michael Gottesman Engineer, Swift Performance Team Joe Grzywacz Engineer, Performance Tools
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 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 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 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 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 informationProfiling in Depth. Do you know where your code is? Session 412. Kris Markel Performance Tools Engineer Chad Woolf Performance Tools Engineer
Developer Tools #WWDC15 Profiling in Depth Do you know where your code is? Session 412 Kris Markel Performance Tools Engineer Chad Woolf Performance Tools Engineer 2015 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 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 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 informationDebugging and Profiling
Debugging & Profiling Dr.-Ing. Thomas Springer M.Sc. Martin Weißbach Errors in Swift conditions can occur that require a deviation from the predefined control flow in order to handle e.g. a file does not
More informationBuilding Better Apps with Value Types in Swift Session 414
Developer Tools #WWDC15 Building Better Apps with Value Types in Swift Session 414 Doug Gregor Language Lawyer Bill Dudney Arranger of Bits 2015 Apple Inc. All rights reserved. Redistribution or public
More informationTo use Xcode s Continuous Integration service with this Xcode beta, you need OS X with OS X Server 4.0.
Xcode Release Notes About Xcode 6.3 beta Supported Configurations Xcode 6.3 requires a Mac running OS X 10.10. Xcode 6.3 includes SDKs for ios 8.3 and OS X versions 10.9 and 10.10. To develop apps targeting
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 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 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 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 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 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 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 informationXcode & Swift: Introduction
Dr.-Ing. Thomas Springer M.Sc. Martin Weißbach Concept You need Apple Computer Xcode 8 (ios device) Hands on course to learn how to program ios 1/1/0 means 45min lecture, 45min seminar introducing concepts
More informationWhat s New in the LLVM Compiler. Chris Lattner LLVM Chief Architect
What s New in the LLVM Compiler Chris Lattner LLVM Chief Architect 2 Apple Compiler Evolution Renovating the Apple compiler landscape Phasing out GCC-based tools Driving innovation in LLVM-based technologies
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 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 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 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 informationXcode 6 and ios 8 What s New for Software Developers
Xcode 6 and ios 8 What s New for Software Developers August 2014 Norman McEntire! norman.mcentire@servin.com Slides and Video of this presentation will be posted on Tuesday Aug 26 here: http://servin.com!1
More informationiphone Application Programming Lab 2: MVC and Delegation + A01 discussion
Lab 2: MVC and Delegation + A01 discussion Nur Al-huda Hamdan RWTH Aachen University Winter Semester 2015/2016 http://hci.rwth-aachen.de/iphone Learning Objectives Discuss A01 + demo Concepts: debugging
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 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 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 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 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 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 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 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 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 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 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 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 informationQuestions. Exams: no. Get by without own Mac? Why ios? ios vs Android restrictions. Selling in App store how hard to publish? Future of Objective-C?
Questions Exams: no Get by without own Mac? Why ios? ios vs Android restrictions Selling in App store how hard to publish? Future of Objective-C? Grading: Lab/homework: 40%, project: 40%, individual report:
More informationSwift. Introducing swift. Thomas Woodfin
Swift Introducing swift Thomas Woodfin Content Swift benefits Programming language Development Guidelines Swift benefits What is Swift Benefits What is Swift New programming language for ios and OS X Development
More informationThe Compiler So Far. CSC 4181 Compiler Construction. Semantic Analysis. Beyond Syntax. Goals of a Semantic Analyzer.
The Compiler So Far CSC 4181 Compiler Construction Scanner - Lexical analysis Detects inputs with illegal tokens e.g.: main 5 (); Parser - Syntactic analysis Detects inputs with ill-formed parse trees
More informationPower, Performance, and Diagnostics
Core OS #WWDC14 Power, Performance, and Diagnostics What's new in GCD and XPC Session 716 Daniel Steffen Darwin Runtime Engineer 2014 Apple Inc. All rights reserved. Redistribution or public display not
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 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 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 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 informationApple offers a number of resources where you can get Xcode development support:!
Xcode Release Notes About Xcode 6.1 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 targeting
More informationXcode Tricks. ios App Development Fall 2010 Lecture 13
Xcode Tricks ios App Development Fall 2010 Lecture 13 Questions? Announcements Reminder: Assignment #3 due Monday, October 18 th by 11:59pm Today s Topics Building & Running Code Troubleshooting Debugging
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 informationIntroducing LLDB for Linux on Arm and AArch64. Omair Javaid
Introducing LLDB for Linux on Arm and AArch64 Omair Javaid Agenda ENGINEERS AND DEVICES WORKING TOGETHER Brief introduction and history behind LLDB Status of LLDB on Linux and Android Linaro s contributions
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 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 informationMastering Xcode for iphone OS Development Part 1. Todd Fernandez Sr. Manager, IDEs
Mastering Xcode for iphone OS Development Part 1 Todd Fernandez Sr. Manager, IDEs 2 3 Customer Reviews Write a Review Current Version (1) All Versions (24) Gorgeous and Addictive Report a Concern by Play
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 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 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 informationIntroduction to Swift. Dr. Sarah Abraham
Introduction to Swift Dr. Sarah Abraham University of Texas at Austin CS329e Fall 2018 What is Swift? Programming language for developing OSX, ios, WatchOS, and TvOS applications Best of C and Objective-C
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 informationRuby: Introduction, Basics
Ruby: Introduction, Basics Computer Science and Engineering College of Engineering The Ohio State University Lecture 3 Ruby vs Java: Similarities Imperative and object-oriented Classes and instances (ie
More informationWorking with Metal Overview
Graphics and Games #WWDC14 Working with Metal Overview Session 603 Jeremy Sandmel GPU Software 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
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 informationCSE 351. GDB Introduction
CSE 351 GDB Introduction Lab 2 Out either tonight or tomorrow Due April 27 th (you have ~12 days) Reading and understanding x86_64 assembly Debugging and disassembling programs Today: General debugging
More informationIntroductory ios Development
Instructor s Introductory ios Development Unit 3 - Objective-C Classes Introductory ios Development 152-164 Unit 3 - Swift Classes Quick Links & Text References Structs vs. Classes Structs intended for
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 informationC-Programming. CSC209: Software Tools and Systems Programming. Paul Vrbik. University of Toronto Mississauga
C-Programming CSC209: Software Tools and Systems Programming Paul Vrbik University of Toronto Mississauga https://mcs.utm.utoronto.ca/~209/ Adapted from Dan Zingaro s 2015 slides. Week 2.0 1 / 19 What
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 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 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 informationCSE 431S Type Checking. Washington University Spring 2013
CSE 431S Type Checking Washington University Spring 2013 Type Checking When are types checked? Statically at compile time Compiler does type checking during compilation Ideally eliminate runtime checks
More informationCocoa. Last Week... Music 3SI: Introduction to Audio/Multimedia App. Programming. Today... Why Cocoa? Wikipedia - Cocoa
Music 3SI: Introduction to Audio/Multimedia App. Programming IDE (briefly) VST Plug-in Assignment 1 hints Last Week... Week #5-5/5/2006 CCRMA, Department of Music Stanford University 1 2 Today... Cocoa
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 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 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 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 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 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 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 informationECEN 449 Microprocessor System Design. Review of C Programming
ECEN 449 Microprocessor System Design Review of C Programming 1 Objectives of this Lecture Unit Review C programming basics Refresh es programming g skills s 2 1 Basic C program structure # include
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 informationPLUX ios Application Programming Interface. Documentation - ios API
PLUX ios Application Programming Interface Documentation - ios API 1. Introduction The PLUX ios Application Programming Interface brings to ios applications all the functionalities of PLUX devices. The
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 informationLocalizing with Xcode 6
Tools #WWDC14 Localizing with Xcode 6 Best practices and new workflows Session 412 Zoltan Foley-Fisher Xcode Software Engineer! Chris Hanson Xcode Software Engineer 2014 Apple Inc. All rights reserved.
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 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 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 Cocoa. App Frameworks #WWDC17. Ali Ozer Daphne Larose
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.
More informationCS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square)
CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) Introduction This semester, through a project split into 3 phases, we are going
More informationRichard Mallion. Swift for Admins #TEAMSWIFT
Richard Mallion Swift for Admins #TEAMSWIFT Apple Introduces Swift At the WWDC 2014 Keynote, Apple introduced Swift A new modern programming language It targets the frameworks for Cocoa and Cocoa Touch
More informationios: Objective-C Primer
ios: Objective-C Primer Jp LaFond Jp.LaFond+e76@gmail.com TF, CS76 Announcements n-puzzle feedback this week (if not already returned) ios Setup project released Android Student Choice project due Tonight
More informationGame Center Techniques, Part 1
Game Center Techniques, Part 1 Get Your Game On Gabriel Belinsky Senior Software Engineer 2 Game Center Friends Leaderboards Achievements Multiplayer gaming 3 What You ll Learn Game Center API basics Authenticate
More informationKevin van Vechten Core OS
Kevin van Vechten Core OS 2 3 Bill Bumgarner 4 (lambda (a) (add a d)) 10 timesrepeat:[pen turn:d; draw] z.each { val puts(val + d.to_s)} repeat(10, ^{ putc('0'+ d); }); 5 6 7 8 ^ 9 [myset objectspassingtest:
More informationFast Introduction to Object Oriented Programming and C++
Fast Introduction to Object Oriented Programming and C++ Daniel G. Aliaga Note: a compilation of slides from Jacques de Wet, Ohio State University, Chad Willwerth, and Daniel Aliaga. Outline Programming
More informationA Fast Review of C Essentials Part I
A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types
More informationPolymorphism COSC346
Polymorphism COSC346 Polymorphism OOP Polymorphism refers to the ability of different class objects to respond to the same method(s) From the perspective of the message sender, the receiver can take different
More informationFix Bugs Faster Using Activity Tracing
Core OS #WWDC14 Fix Bugs Faster Using Activity Tracing Session 714 Eric Clements Core OS Engineering 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written
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 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 information