What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User...

146
© 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. #WWDC15 What’s New in Notifications Michele Campeotto iOS Notifications Gokul Thirumalai Apple Push Notification Service System Frameworks Session 720

Transcript of What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User...

Page 1: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

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

#WWDC15

What’s New in Notifications

Michele Campeotto iOS NotificationsGokul Thirumalai Apple Push Notification Service

System Frameworks

Session 720

Page 2: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Today

Page 3: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Today

iOS Notifications

Page 4: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Today

iOS Notifications• Silent Notifications

Page 5: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Today

iOS Notifications• Silent Notifications• User Notifications

Page 6: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Today

iOS Notifications• Silent Notifications• User Notifications• Actions

Page 7: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Today

iOS Notifications• Silent Notifications• User Notifications• Actions• Text input — New!

Page 8: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Today

iOS Notifications• Silent Notifications• User Notifications• Actions• Text input

Apple Push Notification Service

— New!

Page 9: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Silent Notifications

Page 10: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Silent Notifications

Notify the app

Page 11: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Silent Notifications

Notify the app

Page 12: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Silent Notifications

Notify the app

{ content-available: 1 }

Page 13: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Silent Notifications

Notify the app

{ content-available: 1 }

downloading…

Page 14: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Silent Notifications

Notify the appEnabled by default

{ content-available: 1 }

downloading…

Page 15: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Silent Notifications

Notify the appEnabled by defaultBackground App Refresh

{ content-available: 1 }

downloading…

Page 16: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Silent Notifications

Notify the appEnabled by defaultBackground App RefreshBest effort { content-available: 1 }

downloading…

Page 17: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Page 18: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Notify the user

Page 19: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Notify the user

Page 20: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Notify the user

Page 21: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Notify the user

Page 22: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Notify the user

Page 23: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Notify the userRequire user permission

Page 24: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Notify the userRequire user permission

Page 25: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Notify the userRequire user permissionCan be disabled

Page 26: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Notify the userRequire user permissionCan be disabled

Page 27: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Page 28: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Remote Notifications

Page 29: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Remote Notifications

Page 30: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Remote Notifications

Page 31: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Remote Notifications{ content-available: 1 }

Page 32: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Remote NotificationsLocal Notifications

Page 33: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Remote NotificationsLocal Notifications

Page 34: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Remote NotificationsLocal Notifications

Page 35: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Remote NotificationsLocal Notifications• Time

Page 36: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications

Remote NotificationsLocal Notifications• Time• Location

Page 37: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications Actions

Page 38: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications Actions

Interactive Notifications

Page 39: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications Actions

Interactive NotificationsCategories

Page 40: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications Actions

Interactive NotificationsCategories

Page 41: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Apple Watch

Page 42: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Apple Watch

Page 43: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Apple Watch

WatchKit In-Depth, Part 1 Pacific Heights Wednesday 9:00AM

WatchKit In-Depth, Part 2 Pacific Heights Wednesday 10:00AM

Page 44: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!
Page 45: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!
Page 46: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

User Notifications Text Input

Page 47: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!
Page 48: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!
Page 49: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input Action

New action

Page 50: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input Action

New action

Page 51: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input Action

New actionEverywhere

Page 52: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input Action

New actionEverywhere

Page 53: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input Action

New actionEverywhereMultiple actions

Page 54: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input Action

New actionEverywhereMultiple actions

Page 55: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionRegistering

Page 56: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionRegistering

let replyAction = UIMutableUserNotificationAction() replyAction.title = "Reply" replyAction.identifier = "comment-reply" replyAction.activationMode = .Background replyAction.requiresAuthentication = false replyAction.behavior = .TextInput

Page 57: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionRegistering

let replyAction = UIMutableUserNotificationAction() replyAction.title = "Reply" replyAction.identifier = "comment-reply" replyAction.activationMode = .Background replyAction.requiresAuthentication = false replyAction.behavior = .TextInput

Page 58: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionRegistering

Page 59: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionRegistering

let category = UIMutableUserNotificationCategory() category.identifier = "reply" category.actions = [ replyAction ]

Page 60: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionRegistering

let category = UIMutableUserNotificationCategory() category.identifier = "reply" category.actions = [ replyAction ]

let settings = UIUserNotificationSettings(forTypes: [ .Sound , .Alert ], categories: [ category ])

Page 61: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionRegistering

let category = UIMutableUserNotificationCategory() category.identifier = "reply" category.actions = [ replyAction ]

let settings = UIUserNotificationSettings(forTypes: [ .Sound , .Alert ], categories: [ category ])

UIApplication.sharedApplication().registerUserNotificationSettings(settings)

Page 62: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionReceiving

protocol UIApplicationDelegate {

func application(application: UIApplication, handleActionWithIdentifier identifier: String?,       forRemoteNotification notification: [ NSObject : AnyObject ], withResponseInfo responseInfo: [ NSObject : AnyObject ],            completionHandler completionHandler: () -> Void)

}

Page 63: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionReceiving

protocol UIApplicationDelegate {

func application(application: UIApplication, handleActionWithIdentifier identifier: String?,       forRemoteNotification notification: [ NSObject : AnyObject ], withResponseInfo responseInfo: [ NSObject : AnyObject ],            completionHandler completionHandler: () -> Void)

}

Page 64: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionReceiving

protocol UIApplicationDelegate {

func application(application: UIApplication, handleActionWithIdentifier identifier: String?,        forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [ NSObject : AnyObject ],            completionHandler completionHandler: () -> Void)

}

Page 65: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionReceiving

protocol UIApplicationDelegate {

func application(application: UIApplication, handleActionWithIdentifier identifier: String?,        forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [ NSObject : AnyObject ],            completionHandler completionHandler: () -> Void)

}

Page 66: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionHandling the response

func application(application: UIApplication, handleActionWithIdentifier identifier: String?,        forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [ NSObject : AnyObject ],           completionHandler completionHandler: () -> Void) {

if identifier == "comment-reply", let response = responseInfo[UIUserNotificationActionResponseTypedTextKey], responseText = response as? String { viewController.appendText(responseText) } }

completionHandler() }

Page 67: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionHandling the response

func application(application: UIApplication, handleActionWithIdentifier identifier: String?,        forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [ NSObject : AnyObject ],           completionHandler completionHandler: () -> Void) {

if identifier == "comment-reply", let response = responseInfo[UIUserNotificationActionResponseTypedTextKey], responseText = response as? String { viewController.appendText(responseText) } }

completionHandler() }

Page 68: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionHandling the response

func application(application: UIApplication, handleActionWithIdentifier identifier: String?,        forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [ NSObject : AnyObject ],           completionHandler completionHandler: () -> Void) {

if identifier == "comment-reply", let response = responseInfo[UIUserNotificationActionResponseTypedTextKey], responseText = response as? String { viewController.appendText(responseText) } }

completionHandler() }

Page 69: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionHandling the response

func application(application: UIApplication, handleActionWithIdentifier identifier: String?,        forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [ NSObject : AnyObject ],          completionHandler completionHandler: () -> Void) {

if identifier == "comment-reply", let response = responseInfo[UIUserNotificationActionResponseTypedTextKey], responseText = response as? String { viewController.appendText(responseText) } }

completionHandler() }

Page 70: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionHandling the response

func application(application: UIApplication, handleActionWithIdentifier identifier: String?,       forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [ NSObject : AnyObject ],           completionHandler completionHandler: () -> Void) {

if identifier == "comment-reply", let response = responseInfo[UIUserNotificationActionResponseTypedTextKey], responseText = response as? String { viewController.appendText(responseText) } }

completionHandler() }

Page 71: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Text Input ActionHandling the response

func application(application: UIApplication, handleActionWithIdentifier identifier: String?,       forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [ NSObject : AnyObject ],           completionHandler completionHandler: () -> Void) {

if identifier == "comment-reply", let response = responseInfo[UIUserNotificationActionResponseTypedTextKey], responseText = response as? String { viewController.appendText(responseText) } }

completionHandler() }

Page 72: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Apple Watch

Page 73: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Apple Watch

Page 74: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Apple Watch

WatchKit In-Depth, Part 1 Pacific Heights Wednesday 9:00AM

WatchKit In-Depth, Part 2 Pacific Heights Wednesday 10:00AM

Page 75: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

One More Thing…

Page 76: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

One More Thing…

iOS 8 compatibility

Page 77: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Summary

Page 78: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Summary

iOS Notifications

Page 79: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Summary

iOS Notifications• Silent Notifications

Page 80: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Summary

iOS Notifications• Silent Notifications• User Notifications

Page 81: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Summary

iOS Notifications• Silent Notifications• User Notifications• Actions

Page 82: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Summary

iOS Notifications• Silent Notifications• User Notifications• Actions• Text input — New!

Page 83: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Summary

iOS Notifications• Silent Notifications• User Notifications• Actions• Text input• Apple Watch

— New!

Page 84: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Apple Push Notification Service

Gokul ThirumalaiApple Push Notification Service

Page 85: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Apple Push Notification Service

ReviewNew Provider API

Page 86: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Flow

APNS

Client App

Provider

Page 87: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Flow

APNS

Client App

Provider

Page 88: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Flow

APNS

Client App

Provider

Page 89: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Flow

APNS

Client App

Provider

Page 90: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Flow

APNS

Client App

Provider

Page 91: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Flow

APNS

Client App

Provider

Page 92: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Feedback

APNS Provider

APNSFeedback

Page 93: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Feedback

APNS Provider

APNSFeedback

Page 94: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Feedback

APNS Provider

APNSFeedback

Page 95: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Feedback

APNS Provider

APNSFeedback

Page 96: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Feedback

APNS Provider

APNSFeedback

Page 97: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Large Device TokensComing in 2016

Page 98: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

New Provider API

Page 99: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!
Page 100: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2

Page 101: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2

Page 102: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2

Request-response

Page 103: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2

Request-responseMultiplexed

Page 104: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2

Request-responseMultiplexedBinary

Page 105: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Flow

APNS

Client App

Provider

Page 106: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Flow

APNS

Client App

ProviderHTTP/2

Page 107: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIConnection

APNS Provider

Page 108: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIConnection

APNS Provider

Page 109: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIConnection

APNS Provider

SETTINGS

Page 110: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIRequest

APNS Provider

Page 111: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIRequest

APNS ProviderPOST

Page 112: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

POST…

HTTP/2 Provider APIRequest

APNS ProviderPOST… POST

Page 113: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIResponse

APNS Provider

Page 114: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIResponse

APNS Provider200 OK

Page 115: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

400 BAD REQUEST

HTTP/2 Provider APIResponse

APNS Provider{ ‘reason’ : ... }

Page 116: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIRequest example

HEADERS - END_STREAM + END_HEADERS :authority = api.push.apple.com :method = POST :path = /3/device/ad2bcd38f6773cdad050411... content-length = 41 apns-id = de305d54-75b4-431b-adb2-eb6b9e546014 apns-expiration = 0

DATA + END_STREAM { "aps" : { "alert" : "Hello HTTP/2" } }

Page 117: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIRequest example

HEADERS - END_STREAM + END_HEADERS :authority = api.push.apple.com :method = POST :path = /3/device/ad2bcd38f6773cdad050411... content-length = 41 apns-id = de305d54-75b4-431b-adb2-eb6b9e546014 apns-expiration = 0

DATA + END_STREAM { "aps" : { "alert" : "Hello HTTP/2" } }

Page 118: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIRequest example

HEADERS - END_STREAM + END_HEADERS :authority = api.push.apple.com :method = POST :path = /3/device/ad2bcd38f6773cdad050411... content-length = 41 apns-id = de305d54-75b4-431b-adb2-eb6b9e546014 apns-expiration = 0

DATA + END_STREAM { "aps" : { "alert" : "Hello HTTP/2" } }

Page 119: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIRequest example

HEADERS - END_STREAM + END_HEADERS :authority = api.push.apple.com :method = POST :path = /3/device/ad2bcd38f6773cdad050411... content-length = 41 apns-id = de305d54-75b4-431b-adb2-eb6b9e546014 apns-expiration = 0

DATA + END_STREAM { "aps" : { "alert" : "Hello HTTP/2" } }

Page 120: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIRequest example

HEADERS - END_STREAM + END_HEADERS :authority = api.push.apple.com :method = POST :path = /3/device/ad2bcd38f6773cdad050411... content-length = 41 apns-id = de305d54-75b4-431b-adb2-eb6b9e546014 apns-expiration = 0

DATA + END_STREAM { "aps" : { "alert" : "Hello HTTP/2" } }

Page 121: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIResponse example

HEADERS + END_STREAM + END_HEADERS :status = 200

Page 122: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIResponse example

HEADERS - END_STREAM + END_HEADERS :status = 400 content-type = application/json content-length = 31

DATA + END_STREAM { "reason": "BadDeviceToken" }

Page 123: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIResponse example

HEADERS - END_STREAM + END_HEADERS :status = 400 content-type = application/json content-length = 31

DATA + END_STREAM { "reason": "BadDeviceToken" }

Page 124: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIResponse example

HEADERS - END_STREAM + END_HEADERS :status = 400 content-type = application/json content-length = 31

DATA + END_STREAM { "reason": "BadDeviceToken" }

Page 125: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

HTTP/2 Provider APIResponse example

HEADERS - END_STREAM + END_HEADERS :status = 400 content-type = application/json content-length = 31

DATA + END_STREAM { "reason": "BadDeviceToken" }

Page 126: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!
Page 127: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Instant Feedback

Page 128: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Instant Feedback

APNS Provider

APNSFeedback

Page 129: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Instant Feedback

APNS Provider

Page 130: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Instant Feedback

APNS ProviderRequest

Feedback in Response

Page 131: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Instant FeedbackResponse example

HEADERS - END_STREAM + END_HEADERS :status = 410 content-type = application/json content-length = 48

DATA + END_STREAM { "timestamp": 1432819882 }

Page 132: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Instant FeedbackResponse example

HEADERS - END_STREAM + END_HEADERS :status = 410 content-type = application/json content-length = 48

DATA + END_STREAM { "timestamp": 1432819882 }

Page 133: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Simplified Certificate Handling

Page 134: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Simplified Certificate Handling

Page 135: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Simplified Certificate Handling

Application push

Page 136: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Simplified Certificate Handling

Application pushVOIP push

Page 137: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Simplified Certificate Handling

Application pushVOIP pushWatch Complication push

Page 138: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Simplified Certificate Handling

Application pushVOIP pushWatch Complication pushDevelopment and production environments

Page 139: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Simplified Certificate Handling

Application pushVOIP pushWatch Complication pushDevelopment and production environments

One Certificat

e

Page 140: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

2KB

Page 141: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

4 KB

Page 142: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

New Provider APIReview

HTTP/2 request-responseInstant feedbackSimplified certificate handling4KB

Page 143: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

More Information

Documentationhttp://developer.apple.com/notifications/

Technical SupportApple Developer Forumshttp://developer.apple.com/forums

Developer Technical Supporthttp://developer.apple.com/support/technical

General InquiriesPaul Danbold, Core OS [email protected]

Page 144: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Related Sessions

Creating Complications with ClockKit Pacific Heights Wednesday 11:00AM

Networking with NSURLSession Pacific Heights Thursday 9:00AM

Introducing Watch Connectivity Pacific Heights Thursday 11:00AM

Page 145: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!

Related Labs

Notifications Lab Frameworks Lab E Friday 2:30PM

Page 146: What’s New in Notifications€¦ · Today iOS Notifications • Silent Notifications • User Notifications • Actions • Text input Apple Push Notification Service — New!