Listen

Description

Discussion - Notifications in iOS 10

Brief breakdown of WWDC sessions related to notifications

What’s New in the Apple Push Notification Service
Introduction to Notifications
Advanced Notifications

New stuff

APNS Token-based authentication
UserNotifications (and UserNotificationsUI) Framework (Unifies Remote and Local Notifications)
Access to user-defined notification settings
Expanded content

Titles
Subtitles
Media attachments

Scheduling and handling within Extensions
In-app presentation
Removal/update of pending notifications
Dismissal actions
Service Extensions

APNS Token-based authentication

Uses JSON Web Tokens (libraries widely available to assist with token generation)
For server-side solutions where using a certificate isn’t practical/feasible
Addresses issue of certificate expiration (though tokens also expire, new ones can be generated on the fly)

UserNotifications Framework

Provides a single notifications API across iOS, watchOS and tvOS

iOS: Full support for scheduling and management of notifications
watchOS: Support for forwarded notifications and local notifications on the watch
tvOS: Support for badging app icons

Key components/concepts:

UNUserNotificationCenter

Authorization requests
Scheduling via requests (by providing content and triggers)

UNNotificationRequest

Identifier
Content
Trigger

UNMutableNotificationContent
UNNotificationAttachment

Audio
Images
Video

Triggers

Push (UNPushNotificationTrigger is not instantiated by apps)
UNTimeIntervalNotificationTrigger
UNCalendarNotificationTrigger
UNLocationNotificationTrigger

UNUserNotificationCenterDelegate Protocol

userNotificationCenter:willPresentNotification:withCompletionHandler:
userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler

UNNotificationCategory - defines a type of notification, allows actionable notifications and content extensions
UNNotificationAction - represents a task you can perform in response to a notification
UNNotificationServiceExtension - Entry point for service extensions. Allows you to process the payload of a push notification before it is presented (eg: end-to-end encryption or notification attachments). Use in conjunction with “mutable-content: 1” in the aps portion of an APNS payload.

UserNotificationsUI Framework

Provides the UNNotificationContentExtension protocol
View controllers adopt this protocol, using the VC’s view to display the notification contents
Custom content is sandwiched between a header with the application icon and title and the default notification payload (default payload can be hidden using an attribute in the Info.plist)
No user interaction
Actions are displayed and extensions can respond to them by intercepting action responses
Protocol provides a didRecieveNotification: method you can use to set up UI in response to the notification

Picks

Darryl

New Swift, Core Data and Cocoa Books - Use Your Loaf

John

List of Public Slack Groups
Mr Robot returns to USA Network July 13