1 Developer Tools Kickoff
Session 300 Andreas Wendker
These are confidential sessions—please refrain from streaming, blogging, or taking pictures
2 3 14 Billion Apps Downloaded
4 Xcode 4 Released March 2011
5 6 7 1 Single Window
IB Inside
Assistant
Version Editor
8 1 Single Window LLVM Compiler 2
IB Inside Fix-It
ImprovedBranchingLiveProjectAutomaticUnitSchemesAppArchivesCode QuickIssuesBehaviors Testing JumpValidation& Tabs Code & SnippetsTarget HelpMerging Provisioning Bar Completion Editor One-ClickC++WorkspacesLLDBSubversionGit inBlame LLVM Filtering Assistant Debugger
Version Editor Instruments
9 LLVM Compiler 2 Schemes Improved Code Completion Automatic Provisioning Archives Debugger Single Window Subversion Branching & Merging Git Jump Bar IB Inside Version Editor Live Issues Behaviors LLDB Unit Testing Project & Target Editor Instruments Fix-It One-Click Filtering C++ in LLVM Blame Assistant Tabs Workspaces Quick Help App Validation Code Snippets
10 Smaller Free on Packages Lion
Xcode in Mac App Store
11 Xcode 4.1 Xcode 4.2
12 Xcode 4.1
13 Built for Lion
14 15 Modernize Your Project
16 Assembly & Preprocessing
17 View-based tables New Cocoa controls Mac push notifications Entitlements Editor Custom behaviors
18 Auto Layout
19 Auto Layout
Max Drukman
20 21 22 Demo
23 Xcode 4.2
24 Data Sync
25 Unit Tests
26 System Trace for iOS
27 Networking Activity
28 Simulate Locations
29 30 31 32 33 34 35 36 37 Storyboarding
38 Storyboarding
Jon Hess
39 40 Scenes
41 SeguesScenes
42 43 Demo
44 45 OpenGL ES Performance Detective
46 OpenGL ES Analyzer Instrument
47 OpenGL ES Debugger
48 OpenGL ES Debugger
Matthew Firlik
49 50 Fully-rendered frame OpenGL ES call history Access to all resources Full stack backtraces
51 “MoonTexture Surface” #12
glBindTexture() glUniformMatrix4fv() glDrawElements() “Planet”
52 Demo
53 Mac OS X and iOS
54 Apple LLVMLLVM Compiler 3
55 Fast compile times Better code generation Xcode integration New language features
56 57 Compiler Transition Complete
58 * LLVM-GCCCompiler for Transition Source Compatibility Complete
59 OpenGL JIT Code Completion
Link Time Optimization Open Source
Fix-its LLVM-GCC
Clang C++ Indexer Objective-C Static Analyzer OpenCL JIT Syntax Coloring * LLVM-GCC for Source Compatibility
60 61 Garbage Collection Reduces crashes No object cleanup code Development ease
62 Garbage Collection Garbage builds up Performance stutters Nondeterministic Reduces crashes No object cleanup code Development ease
63 Manual Memory Instantly freed objects Smooth performance Predictable behavior Mistakes cause crashes Write a lot of code Development pain
64 Manual Memory Garbage Collection Instantly freed objects Garbage builds up Smooth performance Performance stutters Predictable behavior Nondeterministic Mistakes cause crashes Reduces crashes Write a lot of code No object cleanup code Development pain Development ease
65 Instantly freed objects Smooth performance Predictable behavior Reduces crashes No object cleanup code Development ease
66 Automatic Reference Counting
67 Automatic Reference Counting
Chris Lattner
68 -(void)logSomething { ! NSString *string = !!! [[NSString alloc] init];
! NSLog(@"%@\n", string);
! [string release]; }
69 Xcode Static Analyzer
70 -(void)logSomething { ! NSString *string = 1 !!!1 [[NSString alloc] init]; ! NSLog(@"%@\n", string);
! } 1 Leak
71 retain release autorelease
72 @autoreleasepoolNSAutoreleasePool { }
73 MyApp
MyWindow 21 Leak
MyView 1
74 MyApp
MyWindow 10
weak MyView 10
75 Leaks Crashes
76 ARC Migration Tool
77 Step #1 Check for issues
Step #2 Convert your code
Step #3 Present diffs
78 Demo
79 retain/release @autoreleasepool autoreleased getters
80 iOS 5 Mac OS X 10.7
81 iOS 5 and 4 Mac OS X 10.7
82 iOS 5 and 4 Mac OS X 10.7 and 10.6
83 ARC
84 85 Xcode 4.1
86 Xcode 4.2
87 88