what’s new in cocoa touch...what’s new in cocoa touch session 202 luke hiesterman uikit engineer...

194
© 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. #WWDC14 What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks

Upload: others

Post on 23-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

© 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

#WWDC14

What’s New in Cocoa Touch

Session 202 Luke Hiesterman UIKit Engineer

Frameworks

Page 2: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

iOS 8 Adaptivity

Page 3: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controllers

Page 4: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controllers

Page 5: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controllers

Page 6: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Presentations

Page 7: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Presentations

Page 8: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Presentations

Page 9: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Text and Tables

Page 10: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Text and Tables

Page 11: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Text and Tables

Page 12: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App Extensions

Page 13: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App Extensions

Page 14: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutOrientations, sizes, and margins

Page 15: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsInterface orientation

Page 16: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsInterface orientation

Page 17: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsInterface orientation

Page 18: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsInterface orientation

768

1024

Page 19: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsInterface orientation

768

1024

1024

768

Page 20: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsInterface orientation

1024

768

Page 21: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsSizing

Page 22: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsSizing

Regular Width

Regular Height

Page 23: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Size ClassesThe new interface orientation

Page 24: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Size Classes

Canvas size rather than interface orientation

The new interface orientation

Page 25: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Size Classes

Canvas size rather than interface orientation

Independent horizontal and vertical-size classes

The new interface orientation

Page 26: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Size Classes

Canvas size rather than interface orientation

Independent horizontal and vertical-size classes• Compact

The new interface orientation

Page 27: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Size Classes

Canvas size rather than interface orientation

Independent horizontal and vertical-size classes• Compact

• Regular

The new interface orientation

Page 28: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsSizing

Regular Width

Regular Height

Page 29: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsSizing

Compact Width

Normal Height

Page 30: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive LayoutsSizing

Compact Width

Compact Height

Page 31: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Trait CollectionsEverything you need to know to layout

Page 32: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Trait CollectionsEverything you need to know to layout

horizontalSizeClass

Page 33: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Trait CollectionsEverything you need to know to layout

horizontalSizeClass

verticalSizeClass

Page 34: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Trait CollectionsEverything you need to know to layout

horizontalSizeClass

verticalSizeClass

displayScale

Page 35: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Trait CollectionsEverything you need to know to layout

horizontalSizeClass

verticalSizeClass

displayScale

userInterfaceIdiom

Page 36: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Trait CollectionsEverything you need to know to layout

override func traitCollectionDidChange(previousTraitCollection: UITraitCollection!) { let currentTraits = self.traitCollection let newLayout = currentTraits.horizontalSizeClass == UIUserInterfaceSizeClass.Compact ? self.squaresLayout : self.rectanglesLayout self.collectionView.setCollectionViewLayout(newLayout, animated: true) }

Page 37: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Trait CollectionsEverything you need to know to layout

override func traitCollectionDidChange(previousTraitCollection: UITraitCollection!) { let currentTraits = self.traitCollection let newLayout = currentTraits.horizontalSizeClass == UIUserInterfaceSizeClass.Compact ? self.squaresLayout : self.rectanglesLayout self.collectionView.setCollectionViewLayout(newLayout, animated: true) }

Page 38: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Trait CollectionsEverything you need to know to layout

override func traitCollectionDidChange(previousTraitCollection: UITraitCollection!) { let currentTraits = self.traitCollection let newLayout = currentTraits.horizontalSizeClass == UIUserInterfaceSizeClass.Compact ? self.squaresLayout : self.rectanglesLayout self.collectionView.setCollectionViewLayout(newLayout, animated: true) }

Page 39: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Trait CollectionsEverything you need to know to layout

override func traitCollectionDidChange(previousTraitCollection: UITraitCollection!) { let currentTraits = self.traitCollection let newLayout = currentTraits.horizontalSizeClass == UIUserInterfaceSizeClass.Compact ? self.squaresLayout : self.rectanglesLayout self.collectionView.setCollectionViewLayout(newLayout, animated: true) }

Page 40: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Trait CollectionsEverything you need to know to layout

override func traitCollectionDidChange(previousTraitCollection: UITraitCollection!) { let currentTraits = self.traitCollection let newLayout = currentTraits.horizontalSizeClass == UIUserInterfaceSizeClass.Compact ? self.squaresLayout : self.rectanglesLayout self.collectionView.setCollectionViewLayout(newLayout, animated: true) }

Page 41: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Margins

Page 42: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Layout Guide

Layout Guide

Adaptive Margins

Page 43: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Layout Guide

Layout MarginLayout Margin

Layout Guide

Adaptive Margins

Page 44: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive MarginsAuto Layout support

Page 45: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive MarginsAuto Layout support

New margin NSLayoutAttributes

Page 46: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive MarginsAuto Layout support

New margin NSLayoutAttributes• LeftMargin

Page 47: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive MarginsAuto Layout support

New margin NSLayoutAttributes• LeftMargin

• RightMargin

Page 48: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive MarginsAuto Layout support

New margin NSLayoutAttributes• LeftMargin

• RightMargin

• LeadingMargin

Page 49: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive MarginsAuto Layout support

New margin NSLayoutAttributes• LeftMargin

• RightMargin

• LeadingMargin

• …etc

Page 50: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

More Adaptive Layout Information

• Building Adaptive Apps with UIKit Mission Wednesday 10:15AM

Page 51: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controllers

Page 52: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

RotationWhat is rotation, really?

Page 53: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

RotationWhat is rotation, really?

Rotation is an animated bounds change

Page 54: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

RotationWhat is rotation, really?

Rotation is an animated bounds change

Page 55: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

RotationWhat is rotation, really?

Rotation is an animated bounds change

Page 56: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

RotationWhat is rotation, really?

Page 57: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

RotationWhat is rotation, really?

Compact Width

Regular Height

Page 58: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

RotationWhat is rotation, really?

Regular Width

Compact Height

Page 59: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

RotationDeprecations

Page 60: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

RotationDeprecations

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration; -(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration; -(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation; -(BOOL)shouldAutomaticallyForwardRotationMethods; -(UIInterfaceOrientation)interfaceOrientation; -(void)rotatingHeaderView; -(void)rotatingFooterView;

Page 61: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) { [self.collectionView.collectionViewLayout.numberOfColumns = [self columnsForSize:size]; } completion:nil]; }

RotationNew hotness

Page 62: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) { [self.collectionView.collectionViewLayout.numberOfColumns = [self columnsForSize:size]; } completion:nil]; }

RotationNew hotness

Page 63: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) { [self.collectionView.collectionViewLayout.numberOfColumns = [self columnsForSize:size]; } completion:nil]; }

RotationNew hotness

Page 64: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controller HierarchiesSimplifying and unifying code

Page 65: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controller HierarchiesSimplifying and unifying code

Split View Controller

Page 66: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controller HierarchiesSimplifying and unifying code

Navigation Controller

Split View Controller

Page 67: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controller HierarchiesSimplifying and unifying code

Page 68: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controller HierarchiesSimplifying and unifying code

Split View Controller

Page 69: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controller HierarchiesSimplifying and unifying code

Navigation Controller

Split View Controller

Page 70: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controller Hierarchies

Page 71: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controller Hierarchies

Page 72: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive View Controller Hierarchies

Page 73: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

UISplitViewControlleriOS 8 workhorse

Page 74: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

UISplitViewControlleriOS 8 workhorse

Now available on all devices

Page 75: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

UISplitViewControlleriOS 8 workhorse

Now available on all devices

Handles primary-secondary pattern transparently

Page 76: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

UISplitViewControlleriOS 8 workhorse

Now available on all devices

Handles primary-secondary pattern transparently

Enhanced customizability

Page 77: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

More View Controller Information

• View Controller Advancements in iOS 8 Mission Wednesday 9:00AM

Page 78: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive PresentationsPopovers, search results, and alerts

Page 79: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

View Controller PresentationsPresent how you want, where you want, when you want

Page 80: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

View Controller PresentationsPresent how you want, where you want, when you want

Page 81: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

View Controller PresentationsPresent how you want, where you want, when you want

Page 82: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

PopoversAdaptive Presentations

Page 83: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Popovers

Natural presentation in regular width

Adaptive Presentations

Page 84: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive PresentationsPopovers

Natural presentation in regular width

FullScreen or OverFullScreen in compact width

Page 85: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Search Results

Page 86: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Search Results

UISearchDisplayController replaced by UISearchController

Page 87: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Search Results

UISearchDisplayController replaced by UISearchController

UIViewController subclass

Page 88: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Search Results

UISearchDisplayController replaced by UISearchController

UIViewController subclass

All the power of adaptive presentations and hierarchies is included

Page 89: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Search Results

UISearchDisplayController replaced by UISearchController

UIViewController subclass

All the power of adaptive presentations and hierarchies is included

Customizable UI

Page 90: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Alerts

Page 91: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Alerts

UIAlertController replaces UIAlertView and UIActionSheet

Page 92: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Alerts

UIAlertController replaces UIAlertView and UIActionSheet

UIAlertController is a view controller subclass

Page 93: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Alerts

UIAlertController replaces UIAlertView and UIActionSheet

UIAlertController is a view controller subclass

Adapts styling to context

Page 94: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Alerts

Page 95: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Adaptive Alerts

Page 96: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

More Adaptive Presentations

• A Look Inside Presentation Controllers Mission Thursday 11:30AM

Page 97: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Testing with the iOS Simulator

Page 98: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Testing with the iOS Simulator

Page 99: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Testing with the iOS Simulator

Page 100: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Customizing User Interface

Page 101: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Visual Effects

Page 102: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Visual Effects

UIVisualEffectView

Page 103: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Visual Effects

UIVisualEffectView• UIBlurEffect

Page 104: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Visual Effects

UIVisualEffectView • UIBlurEffect

• UIVibrancyEffect

Page 105: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Visual Effects

UIVisualEffectView • UIBlurEffect

• UIVibrancyEffect

Vibrant Separators

Page 106: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Image Assets

override func viewDidAppear(animated: Bool) { self.imageView.image = UIImage(named: "My-Dog", inBundle: nil, compatibleWithTraitCollection: self.traitCollection) }

Page 107: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Image Assets

override func viewDidAppear(animated: Bool) { self.imageView.image = UIImage(named: "My-Dog", inBundle: nil, compatibleWithTraitCollection: self.traitCollection) }

Page 108: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Image Assets

override func viewDidAppear(animated: Bool) { self.imageView.image = UIImage(named: "My-Dog", inBundle: nil, compatibleWithTraitCollection: self.traitCollection) }

Page 109: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Image Assets

override func viewDidAppear(animated: Bool) { self.imageView.image = UIImage(named: "My-Dog", inBundle: nil, compatibleWithTraitCollection: self.traitCollection) }

Page 110: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Condensing Bars

Page 111: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Condensing Bars

Page 112: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Condensing Bars

Page 113: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Condensing Bars

Page 114: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

More Interface Customizations

• Creating Custom iOS User Interfaces Marina Wednesday 3:15PM

Page 115: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Self-sizing Table Cells

Page 116: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Self-sizing Table Cells

Variable row heights without tableView:heightForRowAtIndexPath:

Page 117: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Self-sizing Table Cells

Variable row heights without tableView:heightForRowAtIndexPath:

Table cells can encapsulate sizing logic

Page 118: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Self-sizing Table Cells

Variable row heights without tableView:heightForRowAtIndexPath:

Table cells can encapsulate sizing logic

Supports Auto Layout

Page 119: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Self-sizing Table Cells

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)identifier { if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@“V:|-myTextView-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(myTextView)]]; ! [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@“H:|-myTextView-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(myTextView)]]; ! } return self; }

Page 120: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Self-sizing Table Cells

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)identifier { if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@“V:|-myTextView-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(myTextView)]]; ! [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@“H:|-myTextView-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(myTextView)]]; ! } return self; }

Page 121: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Self-sizing Table Cells

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)identifier { if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@“V:|-myTextView-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(myTextView)]]; ! [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@“H:|-myTextView-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(myTextView)]]; ! } return self; }

Page 122: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Self-sizing Table Cells

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString*)identifier { if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@“V:|-myTextView-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(myTextView)]]; ! [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@“H:|-myTextView-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(myTextView)]]; ! } return self; }

Page 123: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

More Table Views

• What’s New in Table and Collection Views Presidio Thursday 10:15AM

Page 124: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App Extensions

Page 125: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Page 126: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Page 127: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Page 128: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Page 129: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Page 130: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Page 131: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Page 132: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Photos

Page 133: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Photos

Sharing

Page 134: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Photos

Sharing

Widgets

Page 135: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Photos

Sharing

Widgets

Actions without UI

Page 136: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Photos

Sharing

Widgets

Actions without UI

Document providers

Page 137: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

App ExtensionsExtending the system

Photos

Sharing

Widgets

Actions without UI

Document providers

Custom keyboards

Page 138: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

More App Extensions

• Creating Extensions for iOS and OS X, Part 1 Mission Tuesday 2:00PM

• Creating Extensions for iOS and OS X, Part 2 Mission Wednesday 11:30AM

Page 139: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Notification Updates

Page 140: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Notification Updates

Page 141: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Notification Updates

User approval required for UI only

Page 142: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Notification Updates

User approval required for UI only

Notifications can have user actions

Page 143: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Notification Updates

User approval required for UI only

Notifications can have user actions

Location-based notifications

Page 144: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Notification Updates

User approval required for UI only

Notifications can have user actions

Location-based notifications

Increased push payload size (256 bytes 1k)

Page 145: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

More Notifications

• What’s New in iOS Notifications Nob Hill Wednesday 2:00PM

Page 146: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Document Picker

Page 147: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

UIDocumentPickerViewController

Page 148: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

UIDocumentPickerViewController

Page 149: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

UIDocumentPickerViewController

System UI for selecting documents

Page 150: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

UIDocumentPickerViewController

System UI for selecting documents• Local documents

Page 151: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

UIDocumentPickerViewController

System UI for selecting documents• Local documents

• iCloud documents

Page 152: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

UIDocumentPickerViewController

System UI for selecting documents• Local documents

• iCloud documents

• Third-party document providers

Page 153: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

More Document Support

• Building a Document-based App Marina Thursday 11:30AM

Page 154: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

SDK Modernization

Page 155: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

SDK Modernization

Page 156: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

SDK Modernization

NS_DESIGNATED_INITIALIZER

Page 157: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

SDK Modernization

NS_DESIGNATED_INITIALIZER

id instancetype

Page 158: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

SDK Modernization

NS_DESIGNATED_INITIALIZER

id instancetype

Additional @properties

Page 159: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Handoff

Page 160: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Handoff

Page 161: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Handoff

User activities shared between multiple devices

Page 162: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Handoff

User activities shared between multiple devices

Built-in support in UIKit and AppKit

Page 163: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Handoff

• Adopting Handoff on iOS and OS X Mission Wednesday 2:00PM

Page 164: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

More Goodies in iOS

Page 165: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Notification CenterCustom widgets

Page 166: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Photos

• Introducing the Photos Framework Nob Hill Thursday 10:15AM

Page 167: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Photos

• Introducing the Photos Framework Nob Hill Thursday 10:15AM

Read/write access to photos library

Page 168: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Photos

• Introducing the Photos Framework Nob Hill Thursday 10:15AM

Read/write access to photos library

Custom CoreImage filters

Page 169: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

CloudKit

• Introducing CloudKit Mission Tuesday 3:15PM

• Advanced CloudKit Mission Thursday 3:15PM

Page 170: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

CloudKit

More control over data you put in the cloud

• Introducing CloudKit Mission Tuesday 3:15PM

• Advanced CloudKit Mission Thursday 3:15PM

Page 171: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

CloudKit

More control over data you put in the cloud

Build client-server apps without building a server

• Introducing CloudKit Mission Tuesday 3:15PM

• Advanced CloudKit Mission Thursday 3:15PM

Page 172: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

HealthKit

• Introducing HealthKit Mission Tuesday 10:15AM

Page 173: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

HealthKit

Access information from biometric accessories in one framework

• Introducing HealthKit Mission Tuesday 10:15AM

Page 174: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

HomeKit

• Introducing HomeKit Mission Tuesday 4:30PM

Page 175: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

HomeKit

Access information from connected home accessories in one framework

• Introducing HomeKit Mission Tuesday 4:30PM

Page 176: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Local Authentication

• Keychain and Authentication with Touch ID Nob Hill Wednesday 10:15AM

Page 177: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Local Authentication

Leverage biometric authentication in your app

• Keychain and Authentication with Touch ID Nob Hill Wednesday 10:15AM

Page 178: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Local Authentication

Leverage biometric authentication in your app• TouchID

• Keychain and Authentication with Touch ID Nob Hill Wednesday 10:15AM

Page 179: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

SceneKit

• What's New in SceneKit Pacific Heights Thursday 10:15AM

• Building a Game with SceneKit Pacific Heights Thursday 11:30AM

Page 180: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

SceneKit

Cross-platform 3D rendering for iOS

• What's New in SceneKit Pacific Heights Thursday 10:15AM

• Building a Game with SceneKit Pacific Heights Thursday 11:30AM

Page 181: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Core Location

• What's New in Core Location Marina Tuesday 2:00PM

• Taking Core Location Indoors Marina Tuesday 3:15PM

Page 182: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Core Location

Indoor location

• What's New in Core Location Marina Tuesday 2:00PM

• Taking Core Location Indoors Marina Tuesday 3:15PM

Page 183: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Core Location

Indoor location

Power-saving location updates

• What's New in Core Location Marina Tuesday 2:00PM

• Taking Core Location Indoors Marina Tuesday 3:15PM

Page 184: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Core Location

Indoor location

Power-saving location updates

Always vs. when-in-use user approval

• What's New in Core Location Marina Tuesday 2:00PM

• Taking Core Location Indoors Marina Tuesday 3:15PM

Page 185: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Summary

Page 186: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Summary

Simplify layout with size classes

Page 187: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Summary

Simplify layout with size classes

Unify iPhone and iPad code with adaptive view controllers

Page 188: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Summary

Simplify layout with size classes

Unify iPhone and iPad code with adaptive view controllers

Integrate into the system experience with app extensions

Page 189: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Summary

Simplify layout with size classes

Unify iPhone and iPad code with adaptive view controllers

Integrate into the system experience with app extensions

Expand your tool set with new frameworks in iOS 8

Page 190: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

More Information

Jake Behrens Frameworks Evangelist [email protected]

Documentation http://developer.apple.com

Apple Developer Forums http://devforums.apple.com

Page 191: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

• Introducing HealthKit Mission Tuesday 10:15AM

• What's New in Core Location Marina Tuesday 2:00PM

• Introducing CloudKit Mission Tuesday 3:15PM

• Taking Core Location Indoors Marina Tuesday 3:15PM

• Introducing HomeKit Mission Tuesday 4:30PM

• Keychain and Authentication with Touch ID Nob Hill Wednesday 10:15AM

• Advanced CloudKit Mission Thursday 3:15PM

Related Sessions

Page 192: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Related Sessions

• Introducing the Photos Framework Nob Hill Thursday 10:15AM

• What's New in SceneKit Pacific Heights Thursday 10:15AM

• Building a Game with SceneKit Pacific Heights Thursday 11:30AM

Page 193: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers

Labs

• Cocoa Touch Lab Frameworks Lab A Tuesday 12:30PM

• Cocoa Touch Lab Frameworks Lab A Wednesday 11:30AM

• Cocoa Touch Lab Frameworks Lab A Thursday 2:00PM

Page 194: What’s New in Cocoa Touch...What’s New in Cocoa Touch Session 202 Luke Hiesterman UIKit Engineer Frameworks iOS 8 Adaptivity Adaptive View Controllers Adaptive View Controllers