There are two new frameworks available on iOS 10 that allow developers to leverage more interactive and robust system notifications. UserNotifications.framework gives developers more control over the timing of their local notifications, which can now be displayed based on various time and location parameters.
For example, if you want a notification to appear when a user walks into a store, the new framework gives you that option without having to monitor geofences from your application.
iOS 10 also introduces UserNotificationsUi.framework, which, as you may have guessed, allows some basic controls over how your app’s notifications look and react to user input. We’re still talking about Apple here, so don’t expect complete control, but you can now build an app extension that can communicate with incoming notifications. This allows your app to serve up live content or visual displays directly within the notification.
The feature getting the most buzz from the iOS 10 beta so far is iMessage. Most people are having fun decorating their chats with new animations, stickers, drawings, and handwritten messages But at the same time, there are some other features available to app developers that are flying under the radar.
Developers can now create apps within the standard iOS Message app. These can be extensions of a regular iOS app, or a standalone iMessage app. The new framework provides the ability to present a custom user interface that allows users to create input, interact with your app, or share custom messages – all directly within iMessage.
Messages themselves now also have an interactive option using the MSSession class, so users on both ends of a message can update it on the fly for collaboration or gaming.
Finally, developers can leverage Siri to get things done – even when your app isn’t open. We have been waiting for this innovation for years – so why is it not being shouted from the rooftops? Unfortunately, SiriKit is only available for specific domains, like messaging, payments, and workouts (see the full list here).
If your app can leverage one or more of these domains, then all it takes is an app extension to handle various user intents (e.g.: “Have MyWorkoutApp start a run”). You can define intents easily, and SiriKit handles all the language processing to match a user command with the correct function within your app.
However, if you are like me and your app doesn’t leverage one of Apple’s pre-approved domains, you’re out of luck for now. Hopefully Apple will expand on SiriKit support in upcoming versions.
As app extensions become more prevalent, it’s clear that Apple is ramping up support for developers to utilize core iOS features. Beyond the highlights above, developers can also extend Maps and the Phone app for their own use within iOS 10 (following Apple’s constraints, of course).
This is good news for developers, as more and more of the OS is becoming accessible. Best of all, this is likely just the beginning. Now that the extension architecture is maturing, we can look forward to quicker enhancements and more features unlocked for third-party development.