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 4 Released March 2011

5 6 7 1 Single Window

IB Inside

Assistant

Version Editor

8 1 Single Window LLVM 2

IB Inside Fix-It

ImprovedBranchingLiveProjectAutomaticUnitSchemesAppArchivesCode QuickIssuesBehaviors Testing JumpValidation& Tabs Code & SnippetsTarget HelpMerging Provisioning Bar Completion Editor One-ClickC++WorkspacesLLDBSubversionGit inBlame LLVM Filtering Assistant

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