Date post: | 19-Oct-2014 |
Category: |
Technology |
View: | 535 times |
Download: | 0 times |
Jon Flanders@jon!anders
What’s new in iOS7Xcode
Tuesday, September 3, 13
What You Will Learn
Tuesday, September 3, 13
What You Will Learn
§ The new features in Xcode5 that give you powerful tools for developing for iOS7
Tuesday, September 3, 13
UI Improvements
Tuesday, September 3, 13
UI Improvements
§ Tool bar 30% smaller
Tuesday, September 3, 13
UI Improvements
§ Tool bar 30% smaller§ Documentation breaks out into its own dedicated window
Tuesday, September 3, 13
UI Improvements
§ Tool bar 30% smaller§ Documentation breaks out into its own dedicated window
o Support for tabs
Tuesday, September 3, 13
UI Improvements
§ Tool bar 30% smaller§ Documentation breaks out into its own dedicated window
o Support for tabso Enhanced bookmark support
Tuesday, September 3, 13
UI Improvements
§ Tool bar 30% smaller§ Documentation breaks out into its own dedicated window
o Support for tabso Enhanced bookmark supporto Easy share of items via email or message
Tuesday, September 3, 13
UI Improvements
§ Tool bar 30% smaller§ Documentation breaks out into its own dedicated window
o Support for tabso Enhanced bookmark supporto Easy share of items via email or message
§ Simpli!ed “Open Quickly” dialog
Tuesday, September 3, 13
UI Improvements
§ Tool bar 30% smaller§ Documentation breaks out into its own dedicated window
o Support for tabso Enhanced bookmark supporto Easy share of items via email or message
§ Simpli!ed “Open Quickly” dialog§ Re!ned search navigator
Tuesday, September 3, 13
Project Templates
Tuesday, September 3, 13
Project Templates
§ One new project template
Tuesday, September 3, 13
Project Templates
§ One new project templateo Sprite Kit Game
Tuesday, September 3, 13
Project Templates
§ One new project templateo Sprite Kit Game
§ Under iOS project templates, no more options for...
Tuesday, September 3, 13
Project Templates
§ One new project templateo 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
Project Templates
§ One new project templateo Sprite Kit Game
§ Under iOS project templates, no more options for...o ...using ARC or not – ARC is on by defaulto ...not using Storyboards – Storyboard support is turned on by default
Tuesday, September 3, 13
Automatic Con!guration of Pro!les
Tuesday, September 3, 13
Automatic Con!guration of Pro!les
§ Accounts (under preferences) enables you to add multiple developer program Apple IDs
Tuesday, September 3, 13
Automatic Con!guration of Pro!les
§ Accounts (under preferences) enables you to add multiple developer program Apple IDs
§ You pick the correct team on project settings
Tuesday, September 3, 13
Automatic Con!guration of Pro!les
§ Accounts (under preferences) enables you to add multiple developer program Apple IDs
§ You pick the correct team on project settingso If anything is wrong, Xcode !xes it for you automatically
Tuesday, September 3, 13
Automatic Con!guration of Pro!les
§ Accounts (under preferences) enables you to add multiple developer program Apple IDs
§ You pick the correct team on project settingso If anything is wrong, Xcode !xes it for you automaticallyo No having to mess with provisioning pro!le downloads
Tuesday, September 3, 13
Automatic Con!guration of Pro!les
§ Accounts (under preferences) enables you to add multiple developer program Apple IDs
§ You pick the correct team on project settingso If anything is wrong, Xcode !xes it for you automaticallyo No having to mess with provisioning pro!le downloads
§ Dev pro!le is exportable for working on new or multiple machines
Tuesday, September 3, 13
Automatic Con!guration of Pro!les
§ Accounts (under preferences) enables you to add multiple developer program Apple IDs
§ You pick the correct team on project settingso If anything is wrong, Xcode !xes it for you automaticallyo No having to mess with provisioning pro!le downloads
§ Dev pro!le is exportable for working on new or multiple machineso Import Dev pro!le
Tuesday, September 3, 13
Automatic Con!guration of Pro!les
§ Accounts (under preferences) enables you to add multiple developer program Apple IDs
§ You pick the correct team on project settingso If anything is wrong, Xcode !xes it for you automaticallyo No having to mess with provisioning pro!le downloads
§ Dev pro!le is exportable for working on new or multiple machineso Import Dev pro!le
§ View team details page
Tuesday, September 3, 13
Automatic Con!guration of Pro!les
§ Accounts (under preferences) enables you to add multiple developer program Apple IDs
§ You pick the correct team on project settingso If anything is wrong, Xcode !xes it for you automaticallyo No having to mess with provisioning pro!le downloads
§ Dev pro!le is exportable for working on new or multiple machineso Import Dev pro!le
§ View team details pageo Export one identity
Tuesday, September 3, 13
Capabilities
Tuesday, September 3, 13
Capabilities
§ In the past, con!guring a capability usually involved multiple steps
Tuesday, September 3, 13
Capabilities
§ In the past, con!guring a capability usually involved multiple stepso Modifying provisioning pro!le
Tuesday, September 3, 13
Capabilities
§ In the past, con!guring a capability usually involved multiple stepso Modifying provisioning pro!leo Modifying Info.plist and/or entitlement !les
Tuesday, September 3, 13
Capabilities
§ In the past, con!guring a capability usually involved multiple stepso Modifying provisioning pro!leo Modifying Info.plist and/or entitlement !les
§ Turn on via the new UI and the feature is automatically con!gured
Tuesday, September 3, 13
Capabilities
§ In the past, con!guring a capability usually involved multiple stepso Modifying provisioning pro!leo Modifying Info.plist and/or entitlement !les
§ Turn on via the new UI and the feature is automatically con!guredo iCloud, Game Center, Passbook, In-App Purchases, etc.
Tuesday, September 3, 13
Compiler Enhancements
Tuesday, September 3, 13
Compiler Enhancements
§ LLVM only
Tuesday, September 3, 13
Compiler Enhancements
§ LLVM onlyo No more gcc
Tuesday, September 3, 13
Compiler Enhancements
§ LLVM onlyo No more gcc
§ New feature – Modules
Tuesday, September 3, 13
Compiler Enhancements
§ LLVM onlyo No more gcc
§ New feature – Moduleso @import (binary) replaces #import (textual) for framework libraries
Tuesday, September 3, 13
Compiler Enhancements
§ LLVM onlyo No more gcc
§ New feature – Moduleso @import (binary) replaces #import (textual) for framework librarieso Automatically imports other modules as needed
Tuesday, September 3, 13
Compiler Enhancements
§ LLVM onlyo No more gcc
§ New feature – Moduleso @import (binary) replaces #import (textual) for framework librarieso Automatically imports other modules as needed
§ Compiler
Tuesday, September 3, 13
Compiler Enhancements
§ LLVM onlyo No more gcc
§ New feature – Moduleso @import (binary) replaces #import (textual) for framework librarieso Automatically imports other modules as needed
§ Compilero Auto-vectorizer
Tuesday, September 3, 13
Compiler Enhancements
§ LLVM onlyo No more gcc
§ New feature – Moduleso @import (binary) replaces #import (textual) for framework librarieso Automatically imports other modules as needed
§ Compilero Auto-vectorizero Doc comments appear automatically in quick help for your APIs
Tuesday, September 3, 13
Compiler Enhancements
§ LLVM onlyo No more gcc
§ New feature – Moduleso @import (binary) replaces #import (textual) for framework librarieso Automatically imports other modules as needed
§ Compilero Auto-vectorizero Doc comments appear automatically in quick help for your APIs
§ Static analyzer much more powerful
Tuesday, September 3, 13
Compiler Enhancements
§ LLVM onlyo No more gcc
§ New feature – Moduleso @import (binary) replaces #import (textual) for framework librarieso Automatically imports other modules as needed
§ Compilero Auto-vectorizero Doc comments appear automatically in quick help for your APIs
§ Static analyzer much more powerfulo Can now analyze just a single !le
Tuesday, September 3, 13
Command Line Tools
Tuesday, September 3, 13
Command Line Tools
§ No longer a separate download
Tuesday, September 3, 13
Command Line Tools
§ No longer a separate download§ Tools updated automatically with Xcode
Tuesday, September 3, 13
Performance
Tuesday, September 3, 13
Performance
§ Xcode has moved to ARC
Tuesday, September 3, 13
Performance
§ Xcode has moved to ARCo Contributes to its overall performance enhancements
Tuesday, September 3, 13
Performance
§ Xcode has moved to ARCo Contributes to its overall performance enhancements
§ 2x improvement in nib compilation, searching, and incremental rebuild
Tuesday, September 3, 13
Performance
§ Xcode has moved to ARCo Contributes to its overall performance enhancements
§ 2x improvement in nib compilation, searching, and incremental rebuild§ 5x improvement for device detection
Tuesday, September 3, 13
Performance
§ Xcode has moved to ARCo 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
Interface Builder
Tuesday, September 3, 13
Interface Builder
§ Complete redesign of Auto Layout in IB
Tuesday, September 3, 13
Interface Builder
§ Complete redesign of Auto Layout in IBo Nothing happens until you tell it to
Tuesday, September 3, 13
Interface Builder
§ Complete redesign of Auto Layout in IBo Nothing happens until you tell it too Can automatically add missing constraints
Tuesday, September 3, 13
Interface Builder
§ Complete redesign of Auto Layout in IBo Nothing happens until you tell it too Can automatically add missing constraints
§ Preview using the Assistant Editor
Tuesday, September 3, 13
Interface Builder
§ Complete redesign of Auto Layout in IBo Nothing happens until you tell it too Can automatically add missing constraints
§ Preview using the Assistant Editoro Can see how your UI will work in different devices
Tuesday, September 3, 13
Interface Builder
§ Complete redesign of Auto Layout in IBo Nothing happens until you tell it too Can automatically add missing constraints
§ Preview using the Assistant Editoro 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
Asset Catalog
Tuesday, September 3, 13
Asset Catalog
§ Image management has always been complicated in Xcode
Tuesday, September 3, 13
Asset Catalog
§ Image management has always been complicated in Xcodeo Especially after retina displays and iPad was added for iOS project
Tuesday, September 3, 13
Asset Catalog
§ Image management has always been complicated in Xcodeo Especially after retina displays and iPad was added for iOS project
§ Based on naming convention
Tuesday, September 3, 13
Asset Catalog
§ Image management has always been complicated in Xcodeo Especially after retina displays and iPad was added for iOS project
§ Based on naming conventiono Default.png - [email protected] - [email protected] etc. etc.
Tuesday, September 3, 13
Asset Catalog
§ Image management has always been complicated in Xcodeo Especially after retina displays and iPad was added for iOS project
§ Based on naming conventiono Default.png - [email protected] - [email protected] etc. etc.o AKA image name-mangling hell
Tuesday, September 3, 13
Asset Catalog
§ Image management has always been complicated in Xcodeo Especially after retina displays and iPad was added for iOS project
§ Based on naming conventiono Default.png - [email protected] - [email protected] etc. etc.o AKA image name-mangling hell
§ “Asset Catalog” is a single entry in the Xcode project navigator
Tuesday, September 3, 13
Asset Catalog
§ Image management has always been complicated in Xcodeo Especially after retina displays and iPad was added for iOS project
§ Based on naming conventiono Default.png - [email protected] - [email protected] etc. etc.o AKA image name-mangling hell
§ “Asset Catalog” is a single entry in the Xcode project navigatoro Maintains list of images, including AppIcon and LaunchImages
Tuesday, September 3, 13
Asset Catalog
§ Image management has always been complicated in Xcodeo Especially after retina displays and iPad was added for iOS project
§ Based on naming conventiono Default.png - [email protected] - [email protected] etc. etc.o AKA image name-mangling hell
§ “Asset Catalog” is a single entry in the Xcode project navigatoro Maintains list of images, including AppIcon and LaunchImageso For each image, it shows all resolutions of the image
Tuesday, September 3, 13
Asset Catalog
§ Image management has always been complicated in Xcodeo Especially after retina displays and iPad was added for iOS project
§ Based on naming conventiono Default.png - [email protected] - [email protected] etc. etc.o AKA image name-mangling hell
§ “Asset Catalog” is a single entry in the Xcode project navigatoro Maintains list of images, including AppIcon and LaunchImageso For each image, it shows all resolutions of the imageo Name isn’t important
Tuesday, September 3, 13
Image Slicing
Tuesday, September 3, 13
Image Slicing
§ Xcode now has built-in image slicing for buttons
Tuesday, September 3, 13
Image Slicing
§ Xcode now has built-in image slicing for buttons§ Will automatically suggest ways to slice
Tuesday, September 3, 13
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
Debugger
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB only
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gauges
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcode
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcodeo Less than 1% overhead
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcodeo Less than 1% overhead o Instruments still has more information
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcodeo Less than 1% overhead o Instruments still has more information o Can get to Instruments directly from gauges detail page
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcodeo Less than 1% overhead o Instruments still has more information o Can get to Instruments directly from gauges detail page
§ Breakpoints
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcodeo Less than 1% overhead o Instruments still has more information o Can get to Instruments directly from gauges detail page
§ Breakpointso Breakpoint off button in debug menu
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcodeo Less than 1% overhead o Instruments still has more information o Can get to Instruments directly from gauges detail page
§ Breakpointso Breakpoint off button in debug menu
§ Data tips inline
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcodeo Less than 1% overhead o Instruments still has more information o Can get to Instruments directly from gauges detail page
§ Breakpointso Breakpoint off button in debug menu
§ Data tips inlineo Info prints description
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcodeo Less than 1% overhead o Instruments still has more information o Can get to Instruments directly from gauges detail page
§ Breakpointso Breakpoint off button in debug menu
§ Data tips inlineo Info prints descriptiono Graphical resources
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcodeo Less than 1% overhead o Instruments still has more information o Can get to Instruments directly from gauges detail page
§ Breakpointso Breakpoint off button in debug menu
§ Data tips inlineo Info prints descriptiono Graphical resources
§ Show View Frames and Drawing in debug menu
Tuesday, September 3, 13
Debugger
§ LLVM-LLDB onlyo LLVM-GDB gone
§ Debug gaugeso Some performance information right inside of Xcodeo Less than 1% overhead o Instruments still has more information o Can get to Instruments directly from gauges detail page
§ Breakpointso Breakpoint off button in debug menu
§ Data tips inlineo Info prints descriptiono Graphical resources
§ Show View Frames and Drawing in debug menuo For AppKit (OSX) apps only
Tuesday, September 3, 13
Static Analyzer
Tuesday, September 3, 13
Static Analyzer
§ New analysis checks
Tuesday, September 3, 13
Static Analyzer
§ New analysis checks§ Deeper Objective-C analysis
Tuesday, September 3, 13
Static Analyzer
§ New analysis checks§ Deeper Objective-C analysis§ C++ constructors
Tuesday, September 3, 13
Static Analyzer
§ New analysis checks§ Deeper Objective-C analysis§ C++ constructors§ Analyze a single !le
Tuesday, September 3, 13
Testing
Tuesday, September 3, 13
Testing
§ Test Navigator
Tuesday, September 3, 13
Testing
§ Test Navigatoro Command-U to run all tests
Tuesday, September 3, 13
Testing
§ Test Navigatoro Command-U to run all testso You can run just one test at a time if you want
Tuesday, September 3, 13
Testing
§ Test Navigatoro Command-U to run all testso You can run just one test at a time if you want
§ XCTest
Tuesday, September 3, 13
Testing
§ Test Navigatoro Command-U to run all testso You can run just one test at a time if you want
§ XCTest o Replaces OCTest
Tuesday, September 3, 13
Testing
§ Test Navigatoro Command-U to run all testso You can run just one test at a time if you want
§ XCTest o Replaces OCTesto Can run them from the command line
Tuesday, September 3, 13
Testing
§ Test Navigatoro Command-U to run all testso You can run just one test at a time if you want
§ XCTest o Replaces OCTesto Can run them from the command line
§ Related !les can be pulled up automatically with the Assistant Editor
Tuesday, September 3, 13
Source Control
Tuesday, September 3, 13
Source Control
§ New nib !le support supports auto-merging
Tuesday, September 3, 13
Source Control
§ New nib !le support supports auto-mergingo Finally!!!!!!!
Tuesday, September 3, 13
Source Control
§ New nib !le support supports auto-mergingo Finally!!!!!!!
§ Direct support for branch-based development
Tuesday, September 3, 13
Source Control
§ New nib !le support supports auto-mergingo Finally!!!!!!!
§ Direct support for branch-based development§ Source control menu
Tuesday, September 3, 13
Source Control
§ New nib !le support supports auto-mergingo Finally!!!!!!!
§ Direct support for branch-based development§ Source control menu§ Per-line blame
Tuesday, September 3, 13
Source Control
§ New nib !le support supports auto-mergingo Finally!!!!!!!
§ Direct support for branch-based development§ Source control menu§ Per-line blame§ Source control con!guration
Tuesday, September 3, 13
Source Control
§ New nib !le support supports auto-mergingo Finally!!!!!!!
§ Direct support for branch-based development§ Source control menu§ Per-line blame§ Source control con!guration§ Check out from main screen
Tuesday, September 3, 13
Source Control
§ New nib !le support supports auto-mergingo Finally!!!!!!!
§ Direct support for branch-based development§ Source control menu§ Per-line blame§ Source control con!guration§ Check out from main screen§ Git repository supported on OSX Server
Tuesday, September 3, 13
Bot
Tuesday, September 3, 13
Bot
§ Autonomous agent that runs on OSX Server
Tuesday, September 3, 13
Bot
§ Autonomous agent that runs on OSX Server§ Can execute any project scheme
Tuesday, September 3, 13
Bot
§ Autonomous agent that runs on OSX Server§ Can execute any project scheme
o Builds
Tuesday, September 3, 13
Bot
§ Autonomous agent that runs on OSX Server§ Can execute any project scheme
o Buildso Tests
Tuesday, September 3, 13
Bot
§ Autonomous agent that runs on OSX Server§ Can execute any project scheme
o Buildso Tests
§ Can execute on simulators and/or devices
Tuesday, September 3, 13
Bot
§ Autonomous agent that runs on OSX Server§ Can execute any project scheme
o Buildso Tests
§ Can execute on simulators and/or devices§ Runs automatically on commit or on a schedule
Tuesday, September 3, 13
Bot
§ Autonomous agent that runs on OSX Server§ Can execute any project scheme
o Buildso Tests
§ Can execute on simulators and/or devices§ Runs automatically on commit or on a schedule
o Continuous integration (CI) work#ow possible with no third-party software
Tuesday, September 3, 13
Bot
§ Autonomous agent that runs on OSX Server§ Can execute any project scheme
o Buildso Tests
§ Can execute on simulators and/or devices§ Runs automatically on commit or on a schedule
o Continuous integration (CI) work#ow possible with no third-party software
§ Bot reports integrated into Xcode
Tuesday, September 3, 13
Bot
§ Autonomous agent that runs on OSX Server§ Can execute any project scheme
o Buildso Tests
§ Can execute on simulators and/or devices§ Runs automatically on commit or on a schedule
o Continuous integration (CI) work#ow possible with no third-party software
§ Bot reports integrated into Xcode§ Integration reports also right in Xcode
Tuesday, September 3, 13
Bot
§ Autonomous agent that runs on OSX Server§ Can execute any project scheme
o Buildso Tests
§ Can execute on simulators and/or devices§ Runs automatically on commit or on a schedule
o Continuous integration (CI) work#ow 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
Bot
§ Autonomous agent that runs on OSX Server§ Can execute any project scheme
o Buildso Tests
§ Can execute on simulators and/or devices§ Runs automatically on commit or on a schedule
o Continuous integration (CI) work#ow 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
Summary
Tuesday, September 3, 13
Summary
§ Improvements in Xcode make it much easier to build apps for iOS7
Tuesday, September 3, 13
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