The document discusses new features in Xcode 5 that help develop for iOS 7. Key points include:
- Xcode features a redesigned user interface with an improved tool bar and separate documentation window.
- New project templates are available, including a Sprite Kit game template. Automatic reference counting (ARC) is now mandatory.
- Capabilities configuration is simplified through a new user interface that automatically handles provisioning profiles and plist/entitlement files.
- Performance has been improved through ARC adoption, faster compilation and searching, and reduced device detection time.
6. UI Improvements
§ Tool bar 30% smaller
§ Documentation breaks out into its own dedicated window
Tuesday, September 3, 13
7. UI Improvements
§ Tool bar 30% smaller
§ Documentation breaks out into its own dedicated window
o
Support for tabs
Tuesday, September 3, 13
8. UI Improvements
§ Tool bar 30% smaller
§ Documentation breaks out into its own dedicated window
o
o
Support for tabs
Enhanced bookmark support
Tuesday, September 3, 13
9. UI Improvements
§ Tool bar 30% smaller
§ Documentation breaks out into its own dedicated window
o
o
o
Support for tabs
Enhanced bookmark support
Easy share of items via email or message
Tuesday, September 3, 13
10. UI Improvements
§ Tool bar 30% smaller
§ Documentation breaks out into its own dedicated window
o
o
o
Support for tabs
Enhanced bookmark support
Easy share of items via email or message
§ Simplified “Open Quickly” dialog
Tuesday, September 3, 13
11. UI Improvements
§ Tool bar 30% smaller
§ Documentation breaks out into its own dedicated window
o
o
o
Support for tabs
Enhanced bookmark support
Easy share of items via email or message
§ Simplified “Open Quickly” dialog
§ Refined search navigator
Tuesday, September 3, 13
15. Project Templates
§ One new project template
o
Sprite Kit Game
§ Under iOS project templates, no more options for...
Tuesday, September 3, 13
16. Project Templates
§ One new project template
o
Sprite Kit Game
§ Under iOS project templates, no more options for...
o
...using ARC or not – ARC is on by default
Tuesday, September 3, 13
17. Project Templates
§ One new project template
o
Sprite Kit Game
§ Under iOS project templates, no more options for...
o
o
...using ARC or not – ARC is on by default
...not using Storyboards – Storyboard support is turned on by default
Tuesday, September 3, 13
19. Automatic Configuration of Profiles
§ Accounts (under preferences) enables you to add multiple developer
program Apple IDs
Tuesday, September 3, 13
20. Automatic Configuration of Profiles
§ Accounts (under preferences) enables you to add multiple developer
program Apple IDs
§ You pick the correct team on project settings
Tuesday, September 3, 13
21. Automatic Configuration of Profiles
§ Accounts (under preferences) enables you to add multiple developer
program Apple IDs
§ You pick the correct team on project settings
o
If anything is wrong, Xcode fixes it for you automatically
Tuesday, September 3, 13
22. Automatic Configuration of Profiles
§ Accounts (under preferences) enables you to add multiple developer
program Apple IDs
§ You pick the correct team on project settings
o
o
If anything is wrong, Xcode fixes it for you automatically
No having to mess with provisioning profile downloads
Tuesday, September 3, 13
23. Automatic Configuration of Profiles
§ Accounts (under preferences) enables you to add multiple developer
program Apple IDs
§ You pick the correct team on project settings
o
o
If anything is wrong, Xcode fixes it for you automatically
No having to mess with provisioning profile downloads
§ Dev profile is exportable for working on new or multiple machines
Tuesday, September 3, 13
24. Automatic Configuration of Profiles
§ Accounts (under preferences) enables you to add multiple developer
program Apple IDs
§ You pick the correct team on project settings
o
o
If anything is wrong, Xcode fixes it for you automatically
No having to mess with provisioning profile downloads
§ Dev profile is exportable for working on new or multiple machines
o
Import Dev profile
Tuesday, September 3, 13
25. Automatic Configuration of Profiles
§ Accounts (under preferences) enables you to add multiple developer
program Apple IDs
§ You pick the correct team on project settings
o
o
If anything is wrong, Xcode fixes it for you automatically
No having to mess with provisioning profile downloads
§ Dev profile is exportable for working on new or multiple machines
o
Import Dev profile
§ View team details page
Tuesday, September 3, 13
26. Automatic Configuration of Profiles
§ Accounts (under preferences) enables you to add multiple developer
program Apple IDs
§ You pick the correct team on project settings
o
o
If anything is wrong, Xcode fixes it for you automatically
No having to mess with provisioning profile downloads
§ Dev profile is exportable for working on new or multiple machines
o
Import Dev profile
§ View team details page
o
Export one identity
Tuesday, September 3, 13
28. Capabilities
§ In the past, configuring a capability usually involved multiple steps
Tuesday, September 3, 13
29. Capabilities
§ In the past, configuring a capability usually involved multiple steps
o
Modifying provisioning profile
Tuesday, September 3, 13
30. Capabilities
§ In the past, configuring a capability usually involved multiple steps
o
o
Modifying provisioning profile
Modifying Info.plist and/or entitlement files
Tuesday, September 3, 13
31. Capabilities
§ In the past, configuring a capability usually involved multiple steps
o
o
Modifying provisioning profile
Modifying Info.plist and/or entitlement files
§ Turn on via the new UI and the feature is automatically configured
Tuesday, September 3, 13
32. Capabilities
§ In the past, configuring a capability usually involved multiple steps
o
o
Modifying provisioning profile
Modifying Info.plist and/or entitlement files
§ Turn on via the new UI and the feature is automatically configured
o
iCloud, Game Center, Passbook, In-App Purchases, etc.
Tuesday, September 3, 13
37. Compiler Enhancements
§ LLVM only
o
No more gcc
§ New feature – Modules
o
@import (binary) replaces #import (textual) for framework libraries
Tuesday, September 3, 13
38. Compiler Enhancements
§ LLVM only
o
No more gcc
§ New feature – Modules
o
o
@import (binary) replaces #import (textual) for framework libraries
Automatically imports other modules as needed
Tuesday, September 3, 13
39. Compiler Enhancements
§ LLVM only
o
No more gcc
§ New feature – Modules
o
o
@import (binary) replaces #import (textual) for framework libraries
Automatically imports other modules as needed
§ Compiler
Tuesday, September 3, 13
40. Compiler Enhancements
§ LLVM only
o
No more gcc
§ New feature – Modules
o
o
@import (binary) replaces #import (textual) for framework libraries
Automatically imports other modules as needed
§ Compiler
o
Auto-vectorizer
Tuesday, September 3, 13
41. Compiler Enhancements
§ LLVM only
o
No more gcc
§ New feature – Modules
o
o
@import (binary) replaces #import (textual) for framework libraries
Automatically imports other modules as needed
§ Compiler
o
o
Auto-vectorizer
Doc comments appear automatically in quick help for your APIs
Tuesday, September 3, 13
42. Compiler Enhancements
§ LLVM only
o
No more gcc
§ New feature – Modules
o
o
@import (binary) replaces #import (textual) for framework libraries
Automatically imports other modules as needed
§ Compiler
o
o
Auto-vectorizer
Doc comments appear automatically in quick help for your APIs
§ Static analyzer much more powerful
Tuesday, September 3, 13
43. Compiler Enhancements
§ LLVM only
o
No more gcc
§ New feature – Modules
o
o
@import (binary) replaces #import (textual) for framework libraries
Automatically imports other modules as needed
§ Compiler
o
o
Auto-vectorizer
Doc comments appear automatically in quick help for your APIs
§ Static analyzer much more powerful
o
Can now analyze just a single file
Tuesday, September 3, 13
49. Performance
§ Xcode has moved to ARC
o
Contributes to its overall performance enhancements
Tuesday, September 3, 13
50. Performance
§ Xcode has moved to ARC
o
Contributes to its overall performance enhancements
§ 2x improvement in nib compilation, searching, and incremental rebuild
Tuesday, September 3, 13
51. Performance
§ Xcode has moved to ARC
o
Contributes to its overall performance enhancements
§ 2x improvement in nib compilation, searching, and incremental rebuild
§ 5x improvement for device detection
Tuesday, September 3, 13
52. Performance
§ Xcode has moved to ARC
o
Contributes to its overall performance enhancements
§ 2x improvement in nib compilation, searching, and incremental rebuild
§ 5x improvement for device detection
§ 4x improvement in new tab creation
Tuesday, September 3, 13
55. Interface Builder
§ Complete redesign of Auto Layout in IB
o
Nothing happens until you tell it to
Tuesday, September 3, 13
56. Interface Builder
§ Complete redesign of Auto Layout in IB
o
o
Nothing happens until you tell it to
Can automatically add missing constraints
Tuesday, September 3, 13
57. Interface Builder
§ Complete redesign of Auto Layout in IB
o
o
Nothing happens until you tell it to
Can automatically add missing constraints
§ Preview using the Assistant Editor
Tuesday, September 3, 13
58. Interface Builder
§ Complete redesign of Auto Layout in IB
o
o
Nothing happens until you tell it to
Can automatically add missing constraints
§ Preview using the Assistant Editor
o
Can see how your UI will work in different devices
Tuesday, September 3, 13
59. Interface Builder
§ Complete redesign of Auto Layout in IB
o
o
Nothing happens until you tell it to
Can automatically add missing constraints
§ Preview using the Assistant Editor
o
Can see how your UI will work in different devices
§ IB upgrades your nibs to iOS7/Xcode 5 format only if you give your assent
Tuesday, September 3, 13
61. Asset Catalog
§ Image management has always been complicated in Xcode
Tuesday, September 3, 13
62. Asset Catalog
§ Image management has always been complicated in Xcode
o
Especially after retina displays and iPad was added for iOS project
Tuesday, September 3, 13
63. Asset Catalog
§ Image management has always been complicated in Xcode
o
Especially after retina displays and iPad was added for iOS project
§ Based on naming convention
Tuesday, September 3, 13
64. Asset Catalog
§ Image management has always been complicated in Xcode
o
Especially after retina displays and iPad was added for iOS project
§ Based on naming convention
o
Default.png - Default@2x.png - Default-568@2x.png etc. etc.
Tuesday, September 3, 13
65. Asset Catalog
§ Image management has always been complicated in Xcode
o
Especially after retina displays and iPad was added for iOS project
§ Based on naming convention
o
o
Default.png - Default@2x.png - Default-568@2x.png etc. etc.
AKA image name-mangling hell
Tuesday, September 3, 13
66. Asset Catalog
§ Image management has always been complicated in Xcode
o
Especially after retina displays and iPad was added for iOS project
§ Based on naming convention
o
o
Default.png - Default@2x.png - Default-568@2x.png etc. etc.
AKA image name-mangling hell
§ “Asset Catalog” is a single entry in the Xcode project navigator
Tuesday, September 3, 13
67. Asset Catalog
§ Image management has always been complicated in Xcode
o
Especially after retina displays and iPad was added for iOS project
§ Based on naming convention
o
o
Default.png - Default@2x.png - Default-568@2x.png etc. etc.
AKA image name-mangling hell
§ “Asset Catalog” is a single entry in the Xcode project navigator
o
Maintains list of images, including AppIcon and LaunchImages
Tuesday, September 3, 13
68. Asset Catalog
§ Image management has always been complicated in Xcode
o
Especially after retina displays and iPad was added for iOS project
§ Based on naming convention
o
o
Default.png - Default@2x.png - Default-568@2x.png etc. etc.
AKA image name-mangling hell
§ “Asset Catalog” is a single entry in the Xcode project navigator
o
o
Maintains list of images, including AppIcon and LaunchImages
For each image, it shows all resolutions of the image
Tuesday, September 3, 13
69. Asset Catalog
§ Image management has always been complicated in Xcode
o
Especially after retina displays and iPad was added for iOS project
§ Based on naming convention
o
o
Default.png - Default@2x.png - Default-568@2x.png etc. etc.
AKA image name-mangling hell
§ “Asset Catalog” is a single entry in the Xcode project navigator
o
o
o
Maintains list of images, including AppIcon and LaunchImages
For each image, it shows all resolutions of the image
Name isn’t important
Tuesday, September 3, 13
71. Image Slicing
§ Xcode now has built-in image slicing for buttons
Tuesday, September 3, 13
72. Image Slicing
§ Xcode now has built-in image slicing for buttons
§ Will automatically suggest ways to slice
Tuesday, September 3, 13
73. Image Slicing
§ Xcode now has built-in image slicing for buttons
§ Will automatically suggest ways to slice
o
You can accept, or manually change it
Tuesday, September 3, 13
79. Debugger
§ LLVM-LLDB only
o
LLVM-GDB gone
§ Debug gauges
o
o
Some performance information right inside of Xcode
Less than 1% overhead
Tuesday, September 3, 13
80. Debugger
§ LLVM-LLDB only
o
LLVM-GDB gone
§ Debug gauges
o
o
o
Some performance information right inside of Xcode
Less than 1% overhead
Instruments still has more information
Tuesday, September 3, 13
81. Debugger
§ LLVM-LLDB only
o
LLVM-GDB gone
§ Debug gauges
o
o
o
o
Some performance information right inside of Xcode
Less than 1% overhead
Instruments still has more information
Can get to Instruments directly from gauges detail page
Tuesday, September 3, 13
82. Debugger
§ LLVM-LLDB only
o
LLVM-GDB gone
§ Debug gauges
o
o
o
o
Some performance information right inside of Xcode
Less than 1% overhead
Instruments still has more information
Can get to Instruments directly from gauges detail page
§ Breakpoints
Tuesday, September 3, 13
83. Debugger
§ LLVM-LLDB only
o
LLVM-GDB gone
§ Debug gauges
o
o
o
o
Some performance information right inside of Xcode
Less than 1% overhead
Instruments still has more information
Can get to Instruments directly from gauges detail page
§ Breakpoints
o
Breakpoint off button in debug menu
Tuesday, September 3, 13
84. Debugger
§ LLVM-LLDB only
o
LLVM-GDB gone
§ Debug gauges
o
o
o
o
Some performance information right inside of Xcode
Less than 1% overhead
Instruments still has more information
Can get to Instruments directly from gauges detail page
§ Breakpoints
o
Breakpoint off button in debug menu
§ Data tips inline
Tuesday, September 3, 13
85. Debugger
§ LLVM-LLDB only
o
LLVM-GDB gone
§ Debug gauges
o
o
o
o
Some performance information right inside of Xcode
Less than 1% overhead
Instruments still has more information
Can get to Instruments directly from gauges detail page
§ Breakpoints
o
Breakpoint off button in debug menu
§ Data tips inline
o
Info prints description
Tuesday, September 3, 13
86. Debugger
§ LLVM-LLDB only
o
LLVM-GDB gone
§ Debug gauges
o
o
o
o
Some performance information right inside of Xcode
Less than 1% overhead
Instruments still has more information
Can get to Instruments directly from gauges detail page
§ Breakpoints
o
Breakpoint off button in debug menu
§ Data tips inline
o
o
Info prints description
Graphical resources
Tuesday, September 3, 13
87. Debugger
§ LLVM-LLDB only
o
LLVM-GDB gone
§ Debug gauges
o
o
o
o
Some performance information right inside of Xcode
Less than 1% overhead
Instruments still has more information
Can get to Instruments directly from gauges detail page
§ Breakpoints
o
Breakpoint off button in debug menu
§ Data tips inline
o
o
Info prints description
Graphical resources
§ Show View Frames and Drawing in debug menu
Tuesday, September 3, 13
88. Debugger
§ LLVM-LLDB only
o
LLVM-GDB gone
§ Debug gauges
o
o
o
o
Some performance information right inside of Xcode
Less than 1% overhead
Instruments still has more information
Can get to Instruments directly from gauges detail page
§ Breakpoints
o
Breakpoint off button in debug menu
§ Data tips inline
o
o
Info prints description
Graphical resources
§ Show View Frames and Drawing in debug menu
o
For AppKit (OSX) apps only
Tuesday, September 3, 13
100. Testing
§ Test Navigator
o
o
Command-U to run all tests
You can run just one test at a time if you want
§ XCTest
o
o
Replaces OCTest
Can run them from the command line
Tuesday, September 3, 13
101. Testing
§ Test Navigator
o
o
Command-U to run all tests
You can run just one test at a time if you want
§ XCTest
o
o
Replaces OCTest
Can run them from the command line
§ Related files can be pulled up automatically with the Assistant Editor
Tuesday, September 3, 13
103. Source Control
§ New nib file support supports auto-merging
Tuesday, September 3, 13
104. Source Control
§ New nib file support supports auto-merging
o
Finally!!!!!!!
Tuesday, September 3, 13
105. Source Control
§ New nib file support supports auto-merging
o
Finally!!!!!!!
§ Direct support for branch-based development
Tuesday, September 3, 13
106. Source Control
§ New nib file support supports auto-merging
o
Finally!!!!!!!
§ Direct support for branch-based development
§ Source control menu
Tuesday, September 3, 13
107. Source Control
§ New nib file support supports auto-merging
o
Finally!!!!!!!
§ Direct support for branch-based development
§ Source control menu
§ Per-line blame
Tuesday, September 3, 13
108. Source Control
§ New nib file support supports auto-merging
o
§
§
§
§
Finally!!!!!!!
Direct support for branch-based development
Source control menu
Per-line blame
Source control configuration
Tuesday, September 3, 13
109. Source Control
§ New nib file support supports auto-merging
o
§
§
§
§
§
Finally!!!!!!!
Direct support for branch-based development
Source control menu
Per-line blame
Source control configuration
Check out from main screen
Tuesday, September 3, 13
110. Source Control
§ New nib file support supports auto-merging
o
§
§
§
§
§
§
Finally!!!!!!!
Direct support for branch-based development
Source control menu
Per-line blame
Source control configuration
Check out from main screen
Git repository supported on OSX Server
Tuesday, September 3, 13
113. Bot
§ Autonomous agent that runs on OSX Server
§ Can execute any project scheme
Tuesday, September 3, 13
114. Bot
§ Autonomous agent that runs on OSX Server
§ Can execute any project scheme
o
Builds
Tuesday, September 3, 13
115. Bot
§ Autonomous agent that runs on OSX Server
§ Can execute any project scheme
o
o
Builds
Tests
Tuesday, September 3, 13
116. Bot
§ Autonomous agent that runs on OSX Server
§ Can execute any project scheme
o
o
Builds
Tests
§ Can execute on simulators and/or devices
Tuesday, September 3, 13
117. Bot
§ Autonomous agent that runs on OSX Server
§ Can execute any project scheme
o
o
Builds
Tests
§ Can execute on simulators and/or devices
§ Runs automatically on commit or on a schedule
Tuesday, September 3, 13
118. Bot
§ Autonomous agent that runs on OSX Server
§ Can execute any project scheme
o
o
Builds
Tests
§ Can execute on simulators and/or devices
§ Runs automatically on commit or on a schedule
o
Continuous integration (CI) workflow possible with no third-party software
Tuesday, September 3, 13
119. Bot
§ Autonomous agent that runs on OSX Server
§ Can execute any project scheme
o
o
Builds
Tests
§ Can execute on simulators and/or devices
§ Runs automatically on commit or on a schedule
o
Continuous integration (CI) workflow possible with no third-party software
§ Bot reports integrated into Xcode
Tuesday, September 3, 13
120. Bot
§ Autonomous agent that runs on OSX Server
§ Can execute any project scheme
o
o
Builds
Tests
§ Can execute on simulators and/or devices
§ Runs automatically on commit or on a schedule
o
Continuous integration (CI) workflow possible with no third-party software
§ Bot reports integrated into Xcode
§ Integration reports also right in Xcode
Tuesday, September 3, 13
121. Bot
§ Autonomous agent that runs on OSX Server
§ Can execute any project scheme
o
o
Builds
Tests
§ Can execute on simulators and/or devices
§ Runs automatically on commit or on a schedule
o
Continuous integration (CI) workflow possible with no third-party software
§ Bot reports integrated into Xcode
§ Integration reports also right in Xcode
o
Can see commits and go right to blame
Tuesday, September 3, 13
122. Bot
§ Autonomous agent that runs on OSX Server
§ Can execute any project scheme
o
o
Builds
Tests
§ Can execute on simulators and/or devices
§ Runs automatically on commit or on a schedule
o
Continuous integration (CI) workflow possible with no third-party software
§ Bot reports integrated into Xcode
§ Integration reports also right in Xcode
o
Can see commits and go right to blame
§ Team scoreboard
Tuesday, September 3, 13
125. Summary
§ Improvements in Xcode make it much easier to build apps for iOS7
§ New unit test and CI features make team development with Xcode much
smoother
Tuesday, September 3, 13